diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 7 | ||||
-rw-r--r-- | backend/api/api/Controllers/ModelController.cs | 3 | ||||
-rw-r--r-- | backend/api/api/Controllers/PredictorController.cs | 6 | ||||
-rw-r--r-- | backend/api/api/Controllers/UserController.cs | 11 | ||||
-rw-r--r-- | backend/api/api/Interfaces/IPredictorService.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/ExperimentService.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/PredictorService.cs | 5 |
7 files changed, 29 insertions, 5 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index 849d9884..c93ac9db 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -251,9 +251,14 @@ namespace api.Controllers return NotFound($"Dataset with ID = {id} or user with ID = {uploaderId} not found"); dataset.lastUpdated = DateTime.UtcNow; - _datasetService.Update(uploaderId, id, dataset); + if (!dataset.isPreProcess) + { + FileModel fileModel = _fileService.getFile(dataset.fileId); + _mlConnectionService.PreProcess(dataset, fileModel.path, uploaderId); + } + return Ok($"Dataset with ID = {id} updated"); } diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs index be30ae6f..c574de28 100644 --- a/backend/api/api/Controllers/ModelController.cs +++ b/backend/api/api/Controllers/ModelController.cs @@ -81,10 +81,9 @@ namespace api.Controllers [ServiceFilter(typeof(MlApiCheckActionFilter))] public async Task<ActionResult<string>> Epoch([FromBody] Epoch info) { - var model=_modelService.GetOneModel(info.ModelId); var user = _userService.GetUserById(model.uploaderId); - + if((model.epochs>100 && info.EpochNum%Math.Round(Math.Sqrt(model.epochs))==0) || model.epochs<=100 ||model.epochs-1==info.EpochNum) if (ChatHub.CheckUser(user._id)) foreach (var connection in ChatHub.getAllConnectionsOfUser(user._id)) await _ichat.Clients.Client(connection).SendAsync("NotifyEpoch",model.name,info.ModelId,info.Stat,model.epochs,info.EpochNum); diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs index 3a9e6649..6ff7746a 100644 --- a/backend/api/api/Controllers/PredictorController.cs +++ b/backend/api/api/Controllers/PredictorController.cs @@ -160,7 +160,11 @@ namespace api.Controllers var model = _modelService.GetOneModel(predictor.modelId); if (model == null || user==null) return BadRequest("Model not found or user doesnt exist"); - _predictorService.Create(predictor); + Predictor p=_predictorService.Exists(predictor.modelId, predictor.experimentId); + if (p == null) + _predictorService.Create(predictor); + else + _predictorService.Update(p._id, predictor); if (ChatHub.CheckUser(user._id)) foreach(var connection in ChatHub.getAllConnectionsOfUser(user._id)) await _ichat.Clients.Client(connection).SendAsync("NotifyPredictor", predictor._id,model.name); diff --git a/backend/api/api/Controllers/UserController.cs b/backend/api/api/Controllers/UserController.cs index 9f736679..9796afc2 100644 --- a/backend/api/api/Controllers/UserController.cs +++ b/backend/api/api/Controllers/UserController.cs @@ -125,7 +125,16 @@ namespace api.Controllers if (username == null) return BadRequest(); - return Ok(userService.Update(username, user)); + if (user.Username != username) + { + User user2 = userService.GetUserByUsername(user.Username); + if (user2 == null) + return Ok(userService.Update(username, user)); + else + return BadRequest("Username already exists!"); + } + else + return Ok(userService.Update(username, user)); } // DELETE api/<UserController>/5 diff --git a/backend/api/api/Interfaces/IPredictorService.cs b/backend/api/api/Interfaces/IPredictorService.cs index 16f0432a..8a8308be 100644 --- a/backend/api/api/Interfaces/IPredictorService.cs +++ b/backend/api/api/Interfaces/IPredictorService.cs @@ -12,5 +12,6 @@ namespace api.Services List<Predictor> GetPublicPredictors(); List<Predictor> SortPredictors(string userId, bool ascdsc, int latest); void Update(string id, Predictor predictor); + public Predictor Exists(string modelId, string experimentId); } }
\ No newline at end of file diff --git a/backend/api/api/Services/ExperimentService.cs b/backend/api/api/Services/ExperimentService.cs index dde9111d..40dad224 100644 --- a/backend/api/api/Services/ExperimentService.cs +++ b/backend/api/api/Services/ExperimentService.cs @@ -56,5 +56,6 @@ namespace api.Services _experiment.DeleteOne(experiment => (experiment.uploaderId == userId && experiment._id == id)); _predictor.DeleteMany(predictor => (predictor.uploaderId == userId && predictor.experimentId == id)); } + } } diff --git a/backend/api/api/Services/PredictorService.cs b/backend/api/api/Services/PredictorService.cs index 756cc943..3c088a81 100644 --- a/backend/api/api/Services/PredictorService.cs +++ b/backend/api/api/Services/PredictorService.cs @@ -62,5 +62,10 @@ namespace api.Services { _predictor.ReplaceOne(predictor => predictor._id == id, predictor); } + public Predictor Exists(string modelId, string experimentId) + { + Predictor p=_predictor.Find(pre=> pre.modelId == modelId && pre.experimentId==experimentId).FirstOrDefault(); + return p; + } } } |