diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 68 | ||||
-rw-r--r-- | backend/api/api/Interfaces/IFileService.cs | 2 | ||||
-rw-r--r-- | backend/api/api/Services/FileService.cs | 6 | ||||
-rw-r--r-- | backend/api/api/Services/FillAnEmptyDb.cs | 20 |
4 files changed, 89 insertions, 7 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index a6ebe8ac..7602a621 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -148,7 +148,75 @@ namespace api.Controllers return Ok(); } } + // POST api/<DatasetController>/stealDs + [HttpPost("stealDs")] + [Authorize(Roles = "User,Guest")] + public async Task<ActionResult<Dataset>> StealDs([FromBody] Dataset dataset) + { + string uploaderId = getUserId(); + + dataset.uploaderId = uploaderId; + + //da li ce preko tokena da se ubaci username ili front salje + //dataset.username = usernameToken; + //username = "" ako je GUEST DODAO + var existingDataset = _datasetService.GetOneDatasetN(dataset.uploaderId, dataset.name); + + if (existingDataset != null) + return NotFound($"Dataset with this name already exists"); + else + { + dataset.dateCreated = DateTime.Now; + dataset.lastUpdated = DateTime.Now; + dataset.isPublic = false; + + FileModel fileModel = _fileService.getFile(dataset.fileId); + string folderName = "UploadedFiles"; + var folderPath = Path.Combine(Directory.GetCurrentDirectory(), folderName, uploaderId); + + string ext = ".csv"; + + //nesto + + //Check Directory + if (!Directory.Exists(folderPath)) + { + Directory.CreateDirectory(folderPath); + } + //Index file if same filename + var fullPath = Path.Combine(folderPath, dataset.name + ext); + int i = 0; + + while (System.IO.File.Exists(fullPath)) + { + i++; + fullPath = Path.Combine(folderPath, dataset.name + i.ToString() + ext); + } + + dataset.fileId = ""; + + _fileService.CopyFile(fileModel.path, fullPath); + + + FileModel fileModel1 = new FileModel(); + fileModel1.type = ext; + fileModel1.path = fullPath; + fileModel1.uploaderId = uploaderId; + fileModel1.date = DateTime.Now.ToUniversalTime(); + fileModel1 = _fileService.Create(fileModel1); + + dataset.fileId = fileModel1._id; + + //nesto + + + dataset.isPreProcess = false; + _datasetService.Create(dataset); + _mlConnectionService.PreProcess(dataset, fileModel.path, uploaderId); + return Ok(); + } + } // PUT api/<DatasetController>/{name} [HttpPut("{id}")] diff --git a/backend/api/api/Interfaces/IFileService.cs b/backend/api/api/Interfaces/IFileService.cs index e061dfdb..00dc0002 100644 --- a/backend/api/api/Interfaces/IFileService.cs +++ b/backend/api/api/Interfaces/IFileService.cs @@ -9,5 +9,7 @@ namespace api.Services public FileModel getFile(string id); bool CheckDb(); string GetFileId(string fullPath); + bool CopyFile(string sourceFile, string destinacionFile); + } }
\ No newline at end of file diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs index ea3fe56e..6ef74ca1 100644 --- a/backend/api/api/Services/FileService.cs +++ b/backend/api/api/Services/FileService.cs @@ -59,5 +59,11 @@ namespace api.Services return file._id; } + + public bool CopyFile(string sourceFile, string destinacionFile) + { + File.Copy(sourceFile, destinacionFile, true); + return true; + } } } diff --git a/backend/api/api/Services/FillAnEmptyDb.cs b/backend/api/api/Services/FillAnEmptyDb.cs index fc169853..28f293ce 100644 --- a/backend/api/api/Services/FillAnEmptyDb.cs +++ b/backend/api/api/Services/FillAnEmptyDb.cs @@ -53,7 +53,7 @@ namespace api.Services dataset._id = ""; dataset.uploaderId = "000000000000000000000000"; - dataset.name = "Titanik dataset"; + dataset.name = "Titanik dataset(public)"; dataset.description = "Titanik dataset"; dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; @@ -61,7 +61,7 @@ namespace api.Services dataset.accessibleByLink = true; dataset.dateCreated = DateTime.Now; dataset.lastUpdated = DateTime.Now; - dataset.delimiter = ""; + dataset.delimiter = ","; dataset.columnInfo = new ColumnInfo[] { }; dataset.columnInfo = new[] { @@ -84,7 +84,7 @@ namespace api.Services dataset.nullRows = 708; dataset.isPreProcess = true; dataset.cMatrix = new float[11][]; - dataset.cMatrix[0] = new float[] {1f,-0.005006660707294941f, -0.03514399379491806f,-0.03855886310338974f,0.04293888062238693f,0.03684719651937485f}; + dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f }; _datasetService.Create(dataset); @@ -173,14 +173,14 @@ namespace api.Services dataset._id = ""; dataset.uploaderId = "000000000000000000000000"; dataset.name = "Diamonds dataset"; - dataset.description = "Diamonds dataset"; + dataset.description = "Diamonds dataset(public)"; dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; dataset.isPublic = true; dataset.accessibleByLink = true; dataset.dateCreated = DateTime.Now; dataset.lastUpdated = DateTime.Now; - dataset.delimiter = ""; + dataset.delimiter = ","; dataset.columnInfo = new[] { new ColumnInfo( "Unnamed: 0", true, 0, 26969.5f, 0, 53939, 26969.5f, new string[]{ }, new int[] {}, new float[] {}, 0.01f,0.1f ), @@ -199,6 +199,9 @@ namespace api.Services dataset.nullCols = 0; dataset.nullRows = 0; dataset.isPreProcess = true; + dataset.cMatrix = new float[11][]; + dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f }; + _datasetService.Create(dataset); @@ -295,14 +298,14 @@ namespace api.Services dataset._id = ""; dataset.uploaderId = "000000000000000000000000"; dataset.name = "Iris dataset"; - dataset.description = "Iris dataset"; + dataset.description = "Iris dataset(public) "; dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; dataset.isPublic = true; dataset.accessibleByLink = true; dataset.dateCreated = DateTime.Now; dataset.lastUpdated = DateTime.Now; - dataset.delimiter = ""; + dataset.delimiter = ","; dataset.columnInfo = new[] { new ColumnInfo( "sepal_length", true, 0, 5.8433332443237305f, 4.300000190734863f, 7.900000095367432f, 5.800000190734863f, new string[]{ }, new int[] {}, new float[] {}, 0.01f, 0.1f ), @@ -314,6 +317,9 @@ namespace api.Services dataset.nullCols = 150; dataset.nullRows = 0; dataset.isPreProcess = true; + dataset.cMatrix = new float[11][]; + dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f }; + _datasetService.Create(dataset); |