public HafModel FetchHealthAssessment([FromUri] HafFilter filter) { HafModel model; _logger.Info("Health Assessment (FetchHealthAssessment) CustomerId : " + filter.CustomerId); try { if (filter == null && filter.CustomerId <= 0 && filter.EventId <= 0) { model = new HafModel { IsSuccess = false, EventId = filter.EventId, CustomerId = filter.CustomerId }; } else { model = _customerHafQuestionService.Get(filter); model.IsSuccess = true; } } catch (Exception exception) { _logger.Error(string.Format("While fechinging health assessment exception {0}", exception.StackTrace)); model = new HafModel { IsSuccess = false }; } return(model); }
public HafModel Get(HafFilter filter) { var theEvent = _eventRepository.GetById(filter.EventId); if (!theEvent.HealthAssessmentTemplateId.HasValue || theEvent.HealthAssessmentTemplateId.Value <= 0) { return(null); } var customer = _customerRepository.GetCustomer(filter.CustomerId); var template = _healthAssessmentTemplateRepository.GetById(theEvent.HealthAssessmentTemplateId.Value); var genericQuestionIds = new List <long>(); var list = new List <KeyValuePair <long, List <long> > >(); IsFemale = customer.Gender == Gender.Female; //Get Generic Question from Event Templates genericQuestionIds.AddRange(template.QuestionIds); var order = _orderRepository.GetOrder(filter.CustomerId, filter.EventId); var eventpackageId = order.OrderDetails.Where(od => od.OrderItemStatus.OrderStatusState == OrderStatusState.FinalSuccess && od.OrderItem.OrderItemType == OrderItemType.EventPackageItem).Select(od => od.OrderItem.ItemId).FirstOrDefault(); var isKynIntegrationEnabled = _eventPodRepository.IsKynIntegrationEnabled(filter.EventId); var eventTestIds = new List <long>(); if (eventpackageId > 0) { var eventPackage = _eventPackageRepository.GetById(eventpackageId); if (eventPackage.HealthAssessmentTemplateId.HasValue && eventPackage.HealthAssessmentTemplateId.Value > 0) { var packageTemplate = _healthAssessmentTemplateRepository.GetById(eventPackage.HealthAssessmentTemplateId.Value); genericQuestionIds.AddRange(packageTemplate.QuestionIds); } eventTestIds.AddRange(eventPackage.Tests.Select(t => t.Id)); } list.Add(new KeyValuePair <long, List <long> >(0, genericQuestionIds)); eventTestIds.AddRange(order.OrderDetails.Where(od => od.OrderItemStatus.OrderStatusState == OrderStatusState.FinalSuccess && od.OrderItem.OrderItemType == OrderItemType.EventTestItem).Select(od => od.OrderItem.ItemId)); var eventTests = _eventTestRepository.GetbyIds(eventTestIds); var testWiseQuestion = GetTestQuestionKeyValuePairs(eventTestIds, isKynIntegrationEnabled, eventTests); if (testWiseQuestion != null) { list.AddRange(testWiseQuestion); } var hafModel = GetHafModel(list, eventTests, filter.EventId, filter.CustomerId, filter.SetChildQuestion, filter.VersionNumber) ?? new HafModel(); hafModel.EventId = filter.EventId; hafModel.CustomerId = filter.CustomerId; return(hafModel); }