aboutsummaryrefslogtreecommitdiff
path: root/backend/api/api/Services/ExperimentService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'backend/api/api/Services/ExperimentService.cs')
-rw-r--r--backend/api/api/Services/ExperimentService.cs28
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));
}
}
}