diff options
Diffstat (limited to 'backend/api/api/Services/ExperimentService.cs')
-rw-r--r-- | backend/api/api/Services/ExperimentService.cs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/backend/api/api/Services/ExperimentService.cs b/backend/api/api/Services/ExperimentService.cs index 539e4c08..dde9111d 100644 --- a/backend/api/api/Services/ExperimentService.cs +++ b/backend/api/api/Services/ExperimentService.cs @@ -7,10 +7,13 @@ namespace api.Services public class ExperimentService : IExperimentService { private readonly IMongoCollection<Experiment> _experiment; + private readonly IMongoCollection<Predictor> _predictor; + public ExperimentService(IUserStoreDatabaseSettings settings, IMongoClient mongoClient) { var database = mongoClient.GetDatabase(settings.DatabaseName); _experiment = database.GetCollection<Experiment>(settings.ExperimentCollectionName); + _predictor = database.GetCollection<Predictor>(settings.PredictorCollectionName); } public Experiment Create(Experiment experiment) @@ -20,31 +23,38 @@ namespace api.Services } public Experiment Get(string id) { - return _experiment.Find(exp=>exp._id == id).FirstOrDefault(); + return _experiment.Find(exp => exp._id == id).FirstOrDefault(); } public Experiment Get(string uploaderId, string name) { - return _experiment.Find(exp => exp.uploaderId == uploaderId && exp.name == name ).FirstOrDefault(); + return _experiment.Find(exp => exp.uploaderId == uploaderId && exp.name == name).FirstOrDefault(); } public void Update(string id, Experiment experiment) { _experiment.ReplaceOne(experiment => experiment._id == id, experiment); } - public List<Experiment> GetMyExperiments(string id) + public List<Experiment> GetMyExperiments(string userId) { - return _experiment.Find(e=>e.uploaderId==id).ToList(); + return _experiment.Find(experiment => experiment.uploaderId == userId).ToList(); } - public Experiment GetOneExperiment(string userId, string name) + public Experiment GetOneExperiment(string userId, string id) { - return _experiment.Find(experiment => experiment.uploaderId == userId && experiment.name == name).FirstOrDefault(); + return _experiment.Find(experiment => experiment.uploaderId == userId && experiment._id == id).FirstOrDefault(); } - public void Update(string userId, string id, Experiment experiment) + public Experiment Update(string userId, string id, Experiment experiment) { _experiment.ReplaceOne(experiment => experiment.uploaderId == userId && experiment._id == id, experiment); + return _experiment.Find(experiment => experiment.uploaderId == userId && experiment._id == id).FirstOrDefault(); + } + + public void Delete(string userId, string id) + { + _experiment.DeleteOne(experiment => (experiment.uploaderId == userId && experiment._id == id)); + _predictor.DeleteMany(predictor => (predictor.uploaderId == userId && predictor.experimentId == id)); } } } |