Пример #1
0
        public void PollForHealthPlanUncontactedCustomer()
        {
            try
            {
                _logger.Info("Entering Health Plan Uncontacted Customers Polling Agent For 24 hrs");
                var callQueue   = _callQueueRepository.GetCallQueueByCategory(HealthPlanCallQueueCategory.UncontactedCustomers);
                var healthPlans = _corporateAccountRepository.GetAllHealthPlan();

                if (callQueue != null)
                {
                    // _callQueueCustomerRepository.DeleteCallQueueCustomersHasNotBeenCalled(callQueue.Id);

                    var criteria = _healthPlanCallQueueCriteria.GetQueueCriteriasByQueueId(callQueue.Id);

                    criteria = criteria.Where(x => x.IsQueueGenerated);

                    foreach (var queueCriteria in criteria)
                    {
                        try
                        {
                            _healthPlanCallQueueAssignmentRepository.DeleteByCriteriaId(queueCriteria.Id);
                            //if (queueCriteria.IsDefault)
                            //{
                            //    foreach (var corporateAccount in healthPlans)
                            //    {
                            //        _healthPlanCallRoundService.SaveHealthPlanUncontactedCustomerCallQueue(corporateAccount, queueCriteria, callQueue, _logger);
                            //    }
                            //}
                            //else
                            if (queueCriteria.HealthPlanId.HasValue && !healthPlans.IsNullOrEmpty())
                            {
                                var corporateAccount = healthPlans.First(x => x.Id == queueCriteria.HealthPlanId.Value);
                                _healthPlanCallRoundService.SaveHealthPlanUncontactedCustomerCallQueue(corporateAccount, queueCriteria, callQueue, _logger);
                            }

                            queueCriteria.IsQueueGenerated       = true;
                            queueCriteria.LastQueueGeneratedDate = DateTime.Now;
                            _healthPlanCallQueueCriteria.Save(queueCriteria);
                        }
                        catch (Exception exception)
                        {
                            _logger.Error("call Queue Id " + callQueue.Id);
                            _logger.Error("criteria Id " + queueCriteria.Id);
                            _logger.Error("Message " + exception.Message);
                            _logger.Error("Stack Trace " + exception.StackTrace);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                _logger.Error(string.Format("Message {0} stack trace: {1} ", exception.Message, exception.StackTrace));
            }
        }