diff options
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 12 | ||||
-rw-r--r-- | backend/api/api/Models/Dataset.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/DatasetService.cs | 20 | ||||
-rw-r--r-- | backend/api/api/Services/IDatasetService.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/IMlConnectionService.cs | 2 | ||||
-rw-r--r-- | backend/api/api/Services/MlConnectionService.cs | 11 |
6 files changed, 28 insertions, 19 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index 8a3485dd..6eb1b9e6 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -139,9 +139,8 @@ namespace api.Controllers return BadRequest(); var dataset = _datasetService.GetOneDataset(username, name); - if (dataset == null) - return NotFound($"Dataset with name = {name} not found or dataset is not public"); + return NotFound($"Dataset with name = {name} not found or dataset is not public or not preprocessed"); return dataset; } @@ -176,11 +175,10 @@ namespace api.Controllers { FileModel fileModel = _fileService.getFile(dataset.fileId); - Dataset newDataset =await _mlConnectionService.PreProcess(dataset,fileModel.path); - - _datasetService.Create(newDataset); - - return CreatedAtAction(nameof(Get), new { id = newDataset._id }, newDataset); + dataset.isPreProcess = false; + _datasetService.Create(dataset); + _mlConnectionService.PreProcess(dataset,fileModel.path); + return Ok(); } } diff --git a/backend/api/api/Models/Dataset.cs b/backend/api/api/Models/Dataset.cs index 17974d1d..2b3efa3c 100644 --- a/backend/api/api/Models/Dataset.cs +++ b/backend/api/api/Models/Dataset.cs @@ -25,6 +25,7 @@ namespace api.Models public ColumnInfo[] columnInfo { get; set; } public int totalNulls; + public bool isPreProcess { get; set; } } } diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 2ff271f3..c43bd236 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -16,7 +16,7 @@ namespace api.Services public List<Dataset> SearchDatasets(string name, string username) { - return _dataset.Find(dataset => dataset.name == name && dataset.isPublic == true).ToList(); + return _dataset.Find(dataset => dataset.name == name && dataset.isPublic == true && dataset.isPreProcess).ToList(); } //kreiranje dataseta @@ -34,12 +34,12 @@ namespace api.Services public List<Dataset> GetMyDatasets(string username) { - return _dataset.Find(dataset => dataset.username == username).ToList(); + return _dataset.Find(dataset => dataset.username == username && dataset.isPreProcess).ToList(); } public List<Dataset> GetGuestDatasets() { //Join Igranonica public datasetove sa svim temp uploadanim datasetovima - List<Dataset> datasets= _dataset.Find(dataset => dataset.username == "Igrannonica" && dataset.isPublic == true).ToList(); + List<Dataset> datasets= _dataset.Find(dataset => dataset.username == "Igrannonica" && dataset.isPublic == true && dataset.isPreProcess).ToList(); datasets.AddRange(_dataset.Find(dataset => dataset.username == "").ToList()); return datasets; } @@ -47,7 +47,7 @@ namespace api.Services //poslednji datasetovi public List<Dataset> SortDatasets(string username, bool ascdsc, int latest) { - List<Dataset> list = _dataset.Find(dataset => dataset.username == username).ToList(); + List<Dataset> list = _dataset.Find(dataset => dataset.username == username && dataset.isPreProcess).ToList(); if(ascdsc) list = list.OrderBy(dataset => dataset.lastUpdated).ToList(); @@ -59,25 +59,29 @@ namespace api.Services public List<Dataset> GetPublicDatasets() { - return _dataset.Find(dataset => dataset.isPublic == true).ToList(); + return _dataset.Find(dataset => dataset.isPublic == true && dataset.isPreProcess).ToList(); } public Dataset GetOneDataset(string username, string name) { - return _dataset.Find(dataset => dataset.username == username && dataset.name == name).FirstOrDefault(); + return _dataset.Find(dataset => dataset.username == username && dataset.name == name && dataset.isPreProcess).FirstOrDefault(); } //odraditi za pretragu getOne public Dataset GetOneDataset(string id) { - return _dataset.Find(dataset => dataset._id == id).FirstOrDefault(); + return _dataset.Find(dataset => dataset._id == id && dataset.isPreProcess).FirstOrDefault(); } //ako je potrebno da se zameni name ili ekstenzija - public void Update(string username, string name, Dataset dataset) + public void Update(string username, string name, Dataset dataset ) { _dataset.ReplaceOne(dataset => dataset.username == username && dataset.name == name, dataset); } + public void Update(Dataset dataset) + { + _dataset.ReplaceOne(x=>x._id==dataset._id, dataset); + } } diff --git a/backend/api/api/Services/IDatasetService.cs b/backend/api/api/Services/IDatasetService.cs index 8e62ba43..89856c5b 100644 --- a/backend/api/api/Services/IDatasetService.cs +++ b/backend/api/api/Services/IDatasetService.cs @@ -15,5 +15,6 @@ namespace api.Services void Update(string username, string name, Dataset dataset); void Delete(string username, string name); public List<Dataset> GetGuestDatasets(); + public void Update(Dataset dataset); } } diff --git a/backend/api/api/Services/IMlConnectionService.cs b/backend/api/api/Services/IMlConnectionService.cs index 490f2df7..ea73fb0f 100644 --- a/backend/api/api/Services/IMlConnectionService.cs +++ b/backend/api/api/Services/IMlConnectionService.cs @@ -6,7 +6,7 @@ namespace api.Services public interface IMlConnectionService { Task<string> SendModelAsync(object model, object dataset); - Task<Dataset> PreProcess(Dataset dataset, string filePath); + Task PreProcess(Dataset dataset, string filePath); //Task<Dataset> PreProcess(Dataset dataset, byte[] file, string filename); } }
\ No newline at end of file diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs index a04a323b..66f7882a 100644 --- a/backend/api/api/Services/MlConnectionService.cs +++ b/backend/api/api/Services/MlConnectionService.cs @@ -9,10 +9,12 @@ namespace api.Services public class MlConnectionService : IMlConnectionService { private RestClient client; + private readonly IDatasetService _datasetService; - public MlConnectionService() + public MlConnectionService(IDatasetService datasetService) { this.client = new RestClient("http://127.0.0.1:5543"); + _datasetService=datasetService; } public async Task<string> SendModelAsync(object model, object dataset) @@ -22,7 +24,7 @@ namespace api.Services var result = await this.client.ExecuteAsync(request); return result.Content; //Response od ML microservisa } - public async Task<Dataset> PreProcess(Dataset dataset,string filePath)//(Dataset dataset,byte[] file,string filename) + public async Task PreProcess(Dataset dataset,string filePath)//(Dataset dataset,byte[] file,string filename) { var request=new RestRequest("preprocess", Method.Post);//USKLADITI SA ML API request.AddParameter("dataset", JsonConvert.SerializeObject(dataset)); @@ -31,7 +33,10 @@ namespace api.Services request.AddHeader("Content-Type", "multipart/form-data"); var result=await this.client.ExecuteAsync(request); Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content); - return newDataset; + newDataset.isPreProcess = true; + _datasetService.Update(newDataset); + + return; } } |