public Object CreateSurveysResult(long personId, [FromBody] WebSurveysResult webSurveysResult) { WebJsonResponse response = new WebJsonResponse(); try { Guid token = WebRequestHeaders.GetAuthorizationToken(this); PersonContent person = ClientRepository.GetPerson(token); if (!ClientRepository.CheckPersonRights(person.Id, personId)) { return new HttpResponseMessage(HttpStatusCode.MethodNotAllowed); } //if (!ClientRepository.CheckAuthorization(token, personId)) //{ // return new HttpResponseMessage(HttpStatusCode.Unauthorized); //} // Manual mapping SurveysResult surveysResult = new SurveysResult() { MethodsType = webSurveysResult.MethodsType, MethodsId = webSurveysResult.MethodsId }; if (webSurveysResult.ParentId.HasValue) { surveysResult.Parent = new SurveysResult() {Id = webSurveysResult.ParentId.Value}; } response.Data = Mapper.Map<SurveysResult, WebSurveysResult>(_surveysResultRepository.CreateSurveysResult(personId, surveysResult)); response.Status = true; } catch (UnauthorizedException) { return new HttpResponseMessage(HttpStatusCode.Unauthorized); } catch (Exception exception) { response.Error = String.Format("exception message: {0} \ninner exception: {1} \nstacktrace: {2}", exception.Message, exception.InnerException, exception.StackTrace); } return response; }
public SurveysResult CreateSurveysResult(long personId, SurveysResult surveysResult) { using (var surveysResultRepository = new BaseRepository<SurveysResult>()) { Person person = surveysResultRepository.Context.Persons.FirstOrDefault(x => x.Id == personId); if (person == null) { throw new PersonDoesNotExistException(); } // TODO : Add methods type check (Test, Package) if (!TestRepository.CheckTestPackage(surveysResult.MethodsType, surveysResult.MethodsId)) { throw new TestPackageDoesNotExistException(); } // Check Parent if (surveysResult.Parent != null) { SurveysResult parentSurveyResult = surveysResultRepository.GetAllItems.FirstOrDefault( x => x.Id == surveysResult.Parent.Id); if (parentSurveyResult == null) { throw new SurveysResultDoesNotExistException(); } surveysResult.Parent = parentSurveyResult; } surveysResult.Person = person; surveysResult.Date = DateTime.Now; surveysResult.Name = String.Empty; if (!surveysResultRepository.Create(surveysResult).Status) { throw new CreateException(); } // Create empty data conclusions ServiceRepository serviceRepository = new ServiceRepository(); List<Service> services = serviceRepository.GetServices(surveysResult.MethodsType, surveysResult.MethodsId); ConclusionRepository conclusionRepository = new ConclusionRepository(); List<Conclusion> conclusions = new List<Conclusion>(); foreach (var service in services) { conclusions.Add(conclusionRepository.CreateConclusion(service.Id, surveysResult.Id)); } surveysResult.Conclusions = conclusions; return surveysResult; } }
public SurveysResult CreateSurveysResult(long curatorId, CuratorSurveysContent curatorSurveysContent) { using(var surveysResultRepository = new BaseRepository<SurveysResult>()) { Client curator = surveysResultRepository.Context.Clients.FirstOrDefault(x => x.Id == curatorId); if(curator == null) { throw new UserDoesNotExistException(); } Person personRelated = surveysResultRepository.Context.Persons.FirstOrDefault(x => x.Id == curator.PersonId); if(personRelated == null) { throw new PersonDoesNotExistException(); } String methodsType = Constraints.KMethodsTypeCuratorGroup; // Add row in SurveysResults SurveysResult surveysResult = new SurveysResult() { MethodsType = methodsType, Date = DateTime.Now, Person = personRelated, Name = curatorSurveysContent.Name, }; surveysResultRepository.Create(surveysResult); // Add rows in SurveysPersonsGroups foreach(var personId in curatorSurveysContent.Persons) { Person person = surveysResultRepository.Context.Persons.FirstOrDefault(x => x.Id == personId); if(person != null) { SurveysPersonsGroup surveysPersonsGroup = new SurveysPersonsGroup() { Person = person, SurveysResult = surveysResult, AccessKey = CodeGenerator.Generate() }; surveysResultRepository.Context.SurveysPersonsGroups.Add(surveysPersonsGroup); } } surveysResultRepository.Context.SaveChanges(); //Add rows in SurveysMethodicsGroupItems foreach(var methodic in curatorSurveysContent.Methodics) { SurveysMethodicsGroupItem surveysMethodicsGroupItem = new SurveysMethodicsGroupItem() { MethodsId = methodic.MethodsId, MethodsType = methodic.MethodsType, SurveysResultId = surveysResult.Id }; surveysResultRepository.Context.SurveysMethodicsGroupItems.Add(surveysMethodicsGroupItem); } surveysResultRepository.Context.SaveChanges(); return surveysResult; } }