private Answer CreateAnswer(MyTaskViewModel model, Guid idAccount, MyTaskQuestionsViewModel question, MyTaskServicesDetailViewModel serviceDetail) { var answer = new Answer() { IdAccount = idAccount, IdMerchant = model.IdMerchant, IdQuestion = question.Id, IdServiceDetail = serviceDetail.Id, IdTask = model.IdTask, DateCreation = DateTime.Now, StatusRegister = CStatusRegister.Active }; answer = _answerDao.InsertOrUpdate(answer); return(answer); }
private void CreateAnswer(MyTaskViewModel model, Guid idAccount, MyTaskServicesDetailViewModel serviceDetail) { foreach (var question in serviceDetail.QuestionCollection) { if (question.IdQuestionDetail == Guid.Empty && string.IsNullOrEmpty(question.Answer)) { continue; } if (question.IdQuestionDetail != Guid.Empty || (question.CodeTypePoll == CTypePoll.Open && !string.IsNullOrEmpty(question.Answer))) { var answer = //_answerDao.GetAnswerValueByQuestion(question.Id, model.IdTask, idAccount) ?? CreateAnswer(model, idAccount, question, serviceDetail); CreateAnswerDetail(answer, question); } } }
private void LoadQuestion(Guid idTask, Guid idAccount, MyTaskServicesDetailViewModel section) { foreach (var question in section.QuestionCollection) { var answer = _answerDao.GetAnswerValueByQuestion(question.Id, idTask, idAccount); if (answer == null) { continue; } if (question.CodeTypePoll == CTypePoll.Open) { var answers = _answerDao.GetAnswerListByQuestion(question.Id, idTask, idAccount); foreach ( var answerDetail in answers.SelectMany( answerItem => answerItem.AnswerDetails.Where(answerDetail => answerDetail.CopyNumber == question.CopyNumber))) { question.Answer = answerDetail.AnswerValue; } } if (question.CodeTypePoll == CTypePoll.One) { foreach (var item in answer.AnswerDetails) { if ((item.IdQuestionDetail != Guid.Empty && item.IdQuestionDetail != null) && item.CopyNumber == question.CopyNumber) { question.IdQuestionDetail = (Guid)item.IdQuestionDetail; question.IdAnswer = item.IdAnswer; } } } if (question.CodeTypePoll == CTypePoll.Image) { var answers = _answerDao.GetAnswerListByQuestion(question.Id, idTask, idAccount); foreach ( var answerDetail in answers.SelectMany( answerItem => answerItem.AnswerDetails.Where(answerDetail => answerDetail.CopyNumber == question.CopyNumber))) { question.Answer = answerDetail.AnswerValue; } } foreach (var questionDetail in from questionDetail in question.QuestionDetailCollection let answerDetail = _answerDetailDao.GetAnswerDetail(questionDetail.Id, questionDetail.CopyNumber, answer.Id, idAccount) where answerDetail != null select questionDetail) { questionDetail.Checked = true; break; } } }
public List <MyTaskServicesViewModel> GetServiceListFromCampaign(Guid idCampaign, Guid idAccount, Guid idTask) { int numero_seccion = 0; var servicesParalel = new ConcurrentBag <MyTaskServicesViewModel>(); var campaignServices = _redisCache.Get <List <MyTaskServicesViewModel> >("CampaignServices:" + idCampaign); string idseccion = ""; if (campaignServices == null || idseccion != "") { var services = _campaignServicesDao.GetCampaignServicesByCampaign(idCampaign, idAccount); services.AsParallel() .ForAll(s => { servicesParalel.Add(new MyTaskServicesViewModel() { Code = s.Service.Code, Id = s.Service.Id, Name = s.Service.Name, Template = s.Service.Template, ServiceDetailCollection = GetSectionsFromService(s.IdService, idAccount, idTask) }); }); campaignServices = servicesParalel.ToList(); _redisCache.Set("CampaignServices:" + idCampaign, campaignServices); } //agregar seccion si es dinamica if (campaignServices != null) { int camp = 0; foreach (var q in campaignServices) { var s = q.ServiceDetailCollection.Where(x => x.IsDynamic == true).ToList(); if (s != null) { foreach (var a in s) { var preguntas = _questionDao.GetQuestion(a.Id).ToList(); numero_seccion = 0; foreach (var qtarea in preguntas) { var respuestas = _answerDao.GetAnswerListByQuestionAccount(qtarea.Id, idAccount, idTask).ToList().Count; if (respuestas > 1) { numero_seccion = respuestas; } } if (numero_seccion > 1) { int numero = 0; foreach (var n in q.ServiceDetailCollection.Where(x => x.Id == a.Id).ToList()) { if (numero > 0) { q.ServiceDetailCollection.Remove(n); } else { foreach (var ques in n.QuestionCollection) { ques.sequence = 0; } } numero++; } numero = 0; for (int numRep = 0; numRep < numero_seccion - 1; numRep++) { MyTaskServicesDetailViewModel SeccionInsertar = new MyTaskServicesDetailViewModel(); SeccionInsertar = GetSectionsFromServiceID(q.Id, idAccount, a.Id, numero + 1); q.ServiceDetailCollection.Insert(SeccionInsertar.Order, SeccionInsertar); numero++; } } else { var num = q.ServiceDetailCollection.Where(x => x.Id == a.Id).ToList(); int numero = 0; foreach (var n in q.ServiceDetailCollection.Where(x => x.Id == a.Id).ToList()) { if (numero > 0) { q.ServiceDetailCollection.Remove(n); } numero++; } } } } campaignServices[camp].ServiceDetailCollection.OrderBy(x => x.Order).ToList(); camp++; } } return(campaignServices); }