diff options
Diffstat (limited to 'backend/api/api/Services/ExperimentService.cs')
-rw-r--r-- | backend/api/api/Services/ExperimentService.cs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/backend/api/api/Services/ExperimentService.cs b/backend/api/api/Services/ExperimentService.cs index 7bdf9a6e..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,21 +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(experiment => experiment.uploaderId == userId).ToList(); + + } + + public Experiment GetOneExperiment(string userId, string id) + { + return _experiment.Find(experiment => experiment.uploaderId == userId && experiment._id == id).FirstOrDefault(); + } + + public Experiment Update(string userId, string id, Experiment experiment) { - return _experiment.Find(e=>e.uploaderId==id).ToList(); + _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)); } } } |