public Service GenerateQuestion(Service service, string position, Guid currentSection, Guid currentQuestion) { var type = _typePollDao.GetByCode(CTypePoll.Open); //var section = service.ServiceDetails.FirstOrDefault(s => s.Id == idSection); var section = GetCurrentSection(service, currentSection); var question = section.Questions.FirstOrDefault(q => q.Id == currentQuestion); var order = 1; switch (position) { case CService.BeforeQuestion: order = question.Order; break; case CService.AfterQuestion: order = question.Order + 1; break; case CService.LastQuestion: if (section.Questions.Any()) { order = section.Questions.Max(q => q.Order) + 1; } break; } service = UpdateServiceQuestionSchema(service, currentSection, section, order, type); return(service); }
/// <summary> /// Adicionar Pregunta /// </summary> /// <param name="idServiceDetail"></param> /// <param name="position"></param> /// <returns></returns> private Question AddQuestion(Guid idServiceDetail, int position = -1) { var oneQuestion = new Question { IdServiceDetail = idServiceDetail, TypePoll = _typePollDao.GetByCode(CTypePoll.Many) }; oneQuestion.IdTypePoll = oneQuestion.TypePoll.Id; oneQuestion.HasPhoto = CQuestion.NoHasPhotos; oneQuestion.CountPhoto = 0; if (-1 == position) { oneQuestion.Order = GetMax(idServiceDetail) + 1; } else { oneQuestion.Order = position; } oneQuestion.StatusRegister = CStatusRegister.Active; oneQuestion.Title = CService.InsertQuestion; oneQuestion.Weight = 0; return(oneQuestion); }
/// <summary> /// Dame la encuesta por código /// </summary> /// <param name="code"></param> /// <returns></returns> public TypePoll GetByCode(string code) { return(_typePollDao.GetByCode(code)); }