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