Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }