private void UpdateFastingStatus(KynHealthAssessmentEditModel model, long eventcustomerResultid)
 {
     if (model.FastingStatus == (long)FastingStatus.Fasting || model.FastingStatus == (long)FastingStatus.NonFasting)
     {
         var eventCustomerResult = _eventCustomerResultRepository.GetById(eventcustomerResultid);
         eventCustomerResult.IsFasting = model.FastingStatus == (long)FastingStatus.Fasting;
         _eventCustomerResultRepository.Save(eventCustomerResult);
     }
 }
        public CheckListFormEditModel GetCustomerCheckListEdtiModel(Customer customer, CorporateAccount account, EventCustomer eventCustomer)
        {
            var preApporvedTestNames = _eventCustomerPreApprovedTestRepository.GetPreApprovedTestNameByEventCustomerId(eventCustomer.Id);
            var result = _eventCustomerResultRepository.GetById(eventCustomer.Id);

            var template = _checkListTemplateRepository.GetTemplateByEventId(eventCustomer.EventId);

            if (template == null && account.CheckListTemplateId.HasValue)
            {
                template = _checkListTemplateRepository.GetById(account.CheckListTemplateId.Value);
            }
            else if (template == null)
            {
                template = _checkListTemplateRepository.GetDefaultTemplate();
            }

            var templateGroup           = _checkListGroupRepository.GetAllGroups();
            var checkListQuestion       = _checkListQuestionRepository.GetAllQuestionsForTemplateId(template.Id);
            var checklistGroupQuestions = _checkListTemplateRepository.GetAllGroupQuestionsForTemplateId(template.Id);

            var version    = _checkListAnswerRepository.GetLatestVersion(eventCustomer.Id);
            var answerList = new List <CheckListAnswer>();

            if (version > 0)
            {
                answerList = _checkListAnswerRepository.GetAllAnswerByEventCustomerId(eventCustomer.Id, version).ToList();
            }

            return(new CheckListFormEditModel
            {
                CustomerId = customer.CustomerId,
                PreApporvedTestNames = preApporvedTestNames,
                EventId = eventCustomer.EventId,
                Name = customer.Name,
                DoB = customer.DateOfBirth,
                //HealthPlanName = (template.HealthPlanId.HasValue && account != null) ? account.Name : string.Empty,
                EventCustomerId = eventCustomer.Id,
                CheckListQuestion = _checkListQuestionAnswerEditModelFactory.CheckListQuestionAnswerEditModel(checkListQuestion, answerList, templateGroup, checklistGroupQuestions),
                IsEditable = result == null || result.ResultState < (long)TestResultStateNumber.PreAudit,
                Gender = customer.Gender
            });
        }
Esempio n. 3
0
        public void PollForPriorityInQueueNotification()
        {
            try
            {
                var eventCustomerResultIds = _customerEventPriorityInQueueDataRepository.GetEventCustomerResultIdsForPriorityInQueueNotification(_settings.DaysToCheckPriorityInQueue);
                if (eventCustomerResultIds == null || !eventCustomerResultIds.Any())
                {
                    _logger.Info("No records found for priority in queue");
                }

                foreach (var eventCustomerResultId in eventCustomerResultIds)
                {
                    try
                    {
                        var eventCustomerResult = _eventCustomerResultRepository.GetById(eventCustomerResultId);

                        _logger.Info(string.Format("Checking Priority In Queue mail for EventId {0}, CustomerId {1}", eventCustomerResult.EventId, eventCustomerResult.CustomerId));

                        var messageAlreadySent = _eventCustomerNotificationRepository.GetByEventCustomerId(eventCustomerResultId, NotificationTypeAlias.PriorityInQueueCustomer);
                        if (messageAlreadySent != null)
                        {
                            _logger.Info(string.Format("Priority In Queue mail has been already sent for EventId {0}, CustomerId {1}", eventCustomerResult.EventId, eventCustomerResult.CustomerId));
                            continue;
                        }

                        var priorityInQueueNotificationModel = _emailNotificationModelsFactory.GetPriorityInQueueNotificationModel(eventCustomerResult.EventId, eventCustomerResult.CustomerId, "", eventCustomerResultId);

                        var notifications = _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.PriorityInQueueCustomer, EmailTemplateAlias.PriorityInQueueCustomer, priorityInQueueNotificationModel, 0, 1, "Priority in queue Customer");
                        if (notifications != null && notifications.Any())
                        {
                            _logger.Info(string.Format("Priority In Queue mail has been queued for EventId {0}, CustomerId {1}", eventCustomerResult.EventId, eventCustomerResult.CustomerId));

                            var notification = notifications.First();
                            var eventCustomerNotification = new EventCustomerNotification {
                                EventCustomerId = eventCustomerResultId, NotificationId = notification.Id, NotificationTypeId = notification.NotificationType.Id
                            };
                            _eventCustomerNotificationRepository.Save(eventCustomerNotification);
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(string.Format("Error for priority in queue for EventCustomerResultId {0}. \n Message : {1}, \n Stack Trace : {2}", eventCustomerResultId, ex.Message, ex.StackTrace));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error(string.Format("Error while polling data for priority in queue. \n Message : {0}, \n Stack Trace : {1}", ex.Message, ex.StackTrace));
            }
        }
Esempio n. 4
0
        public ActionResult SetPriorityInQueue(PriorityInQueueEditModel priorityInQueueModel)
        {
            var eventCustomerResult = _eventCustomerResultRepository.GetById(priorityInQueueModel.EventCustomerResultId);

            if (eventCustomerResult == null)
            {
                return(Json(new { Message = "You cannot mark the customer as priority in queue as there is no result data for the customer.", IsSuccess = false, IsTestSaved = false }));
            }
            if (!priorityInQueueModel.IsPriorityInQueue)
            {
                var priorityInQueueTests = _priorityInQueueRepository.GetByEventCustomerResultId(priorityInQueueModel.EventCustomerResultId);
                if (priorityInQueueTests != null && priorityInQueueTests.Any())
                {
                    return(Json(new { Message = "Customer can not be removed from priority list as some tests are marked as Proirity in queue.", IsSuccess = false, IsTestSaved = true }));
                }
            }
            _priorityInQueueService.UpdatePriorityinQueue(priorityInQueueModel, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);

            return(Json(new { Message = "Priority In queue marked successfully", IsSuccess = true, IsTestSaved = true }));
        }