/// <summary> /// Create a study and store it in the repository /// </summary> /// <param name="studyDto"></param> /// <returns></returns> public int CreateStudy(StudyDto studyDto) { var study = ConvertStudy(studyDto); _studyExecutionController.ExecuteStudy(study); _studyStorageManager.Save(study); return study.ID; }
public StudyDto CreaStudyDto() { var teamDto = new TeamDto { Id = 1 }; var criteria1 = new CriteriaDto { Name = "Name1", Rule = CriteriaDto.CriteriaRule.SmallerThan, DataMatch = new[] {"2000"}, DataType = DataFieldDto.DataType.String, Description = "Check if the year is before 2000" }; var criteria2 = new CriteriaDto { Name = "Is about...", DataType = DataFieldDto.DataType.Boolean, Rule = CriteriaDto.CriteriaRule.Equals, DataMatch = new[] {"true"}, Description = "Check if the item is about snails." }; var stage1 = new StageDto { Name = "stage1", Criteria = criteria1, DistributionRule = StageDto.Distribution.HundredPercentOverlap, ReviewerIDs = new[] {1, 2}, ValidatorIDs = new[] {3}, VisibleFields = new[] {StageDto.FieldType.Title, StageDto.FieldType.Author} }; var stage2 = new StageDto { Name = "stage2", Criteria = criteria2, DistributionRule = StageDto.Distribution.HundredPercentOverlap, ReviewerIDs = new[] {3, 2}, ValidatorIDs = new[] {4}, VisibleFields = new[] {StageDto.FieldType.Title, StageDto.FieldType.Author} }; var studyDto = new StudyDto { Name = "testStudy", Team = teamDto, Items = Resources.bibtex, Stages = new[] {stage1, stage2} }; return studyDto; }
/// <summary> /// Convert a studyDTO to a study object /// </summary> /// <param name="studyDto">DTO to be converted</param> /// <returns></returns> private Study ConvertStudy(StudyDto studyDto) { var study = new Study { IsFinished = false, Name = studyDto.Name, Team = _teamStorage.GetTeam(studyDto.Team.Id), Items = new List<Item>(), Stages = new List<Stage>() }; //Parse items var parser = new BibTexParser(new ItemValidator()); var fileString = Encoding.Default.GetString(studyDto.Items); study.Items = parser.Parse(fileString); var firstStage = true; foreach (var stageDto in studyDto.Stages) { var stage = CreateStage(stageDto); study.Stages.Add(stage); if (firstStage) { stage.IsCurrentStage = true; } firstStage = false; } return study; }
public bool UpdateStudy(int studyId, StudyDto studyDto) { var oldStudy = _studyStorageManager.Get(studyId); var updatedStudy = ConvertStudy(studyDto); oldStudy.Name = updatedStudy.Name; updatedStudy.Items.AddRange(oldStudy.Items); updatedStudy.ID = oldStudy.ID; List<Stage> tempList = new List<Stage>(); if (oldStudy.Stages.Count != updatedStudy.Stages.Count) { tempList.AddRange(oldStudy.Stages.ToList().GetRange(0, oldStudy.Stages.Count - 1)); tempList.AddRange(updatedStudy.Stages.ToList() .GetRange(oldStudy.Stages.Count - 1, updatedStudy.Stages.Count - 1)); oldStudy.Stages = tempList; } _studyStorageManager.Update(oldStudy); return true; }