public void PollForCallQueue() { try { _logger.Info("Entering Single Health Plan Fill Event Polling Agent"); var callQueue = _callQueueRepository.GetCallQueueByCategory(HealthPlanCallQueueCategory.FillEventsHealthPlan); var criterias = _healthPlanCallQueueCriteriaService.GetHealthPlanCallQueueCriteriaNotGenerated(callQueue.Id); var healthPlanIds = criterias.Where(x => x.HealthPlanId != null).Select(x => x.HealthPlanId.Value).ToArray(); var healthPlans = _corporateAccountRepository.GetByIds(healthPlanIds); foreach (var criteria in criterias) { try { _logger.Info("Single Health Plan Fill Event Polling Agent"); _healthPlanCallQueueAssignmentRepository.DeleteByCriteriaId(criteria.Id); _healthPlanFillEventCallQueueRepository.DeleteByCriteriaId(criteria.Id); if (criteria.HealthPlanId.HasValue) { var healthPlan = healthPlans.First(x => x.Id == criteria.HealthPlanId.Value); _healthPlanCallRoundService.SaveHealthPlanFillEventCallQueueCustomers(healthPlan, criteria, callQueue, _logger); } criteria.IsQueueGenerated = true; criteria.LastQueueGeneratedDate = DateTime.Now; _healthPlanCallQueueCriteriaService.Save(criteria); } catch (Exception exception) { _logger.Error(string.Format("Error while generating call queue customer data for Criteria Id: {0} \n message: {1} stack trace {2}", criteria.Id, exception.Message, exception.StackTrace)); } } callQueue.IsQueueGenerated = true; callQueue.LastQueueGeneratedDate = DateTime.Now; _callQueueRepository.Save(callQueue); } catch (Exception ex) { _logger.Error(string.Format("Error while pulling single call round call queue. Message {0} \n Stack Trace {1}", ex.Message, ex.StackTrace)); } }
public void PollForHealthPlanCallQueue() { try { var callQueue = _callQueueRepository.GetCallQueueByCategory(HealthPlanCallQueueCategory.FillEventsHealthPlan); var healthPlans = _corporateAccountRepository.GetAllHealthPlan(); _logger.Info("Started Healthfair Fill Event call Queue For Generated Call Queues For 24 hrs"); if (callQueue != null) { try { var criteria = _healthPlanCallQueueCriteria.GetQueueCriteriasByQueueId(callQueue.Id); criteria = criteria.Where(x => x.IsQueueGenerated).OrderByDescending(x => x.Id); foreach (var queueCriteria in criteria) { try { _healthPlanCallQueueAssignment.DeleteByCriteriaId(queueCriteria.Id); _healthPlanFillEventCallQueueRepository.DeleteByCriteriaId(queueCriteria.Id); //if (queueCriteria.IsDefault) //{ // foreach (var corporateAccount in healthPlans) // { // _healthPlanCallRoundService.SaveHealthPlanFillEventCallQueueCustomers(corporateAccount, queueCriteria, callQueue, _logger); // } //} //else if (queueCriteria.HealthPlanId.HasValue && !healthPlans.IsNullOrEmpty()) { var corporateAccount = healthPlans.First(x => x.Id == queueCriteria.HealthPlanId.Value); _healthPlanCallRoundService.SaveHealthPlanFillEventCallQueueCustomers(corporateAccount, queueCriteria, callQueue, _logger); } queueCriteria.IsQueueGenerated = true; queueCriteria.LastQueueGeneratedDate = DateTime.Now; _healthPlanCallQueueCriteria.Save(queueCriteria); } catch (Exception ex) { _logger.Error(string.Format("error health plan call queue. callQueueId: {0} CriteriaId {1} ", callQueue.Id, queueCriteria.Id)); _logger.Error(string.Format("Message {0} stack trace: {1} ", ex.Message, ex.StackTrace)); } } } catch (Exception exception) { _logger.Error(string.Format("error health plan call queue. callQueueId: {0} ", callQueue.Id)); _logger.Error(string.Format("Message {0} stack trace: {1} ", exception.Message, exception.StackTrace)); } callQueue.IsQueueGenerated = true; callQueue.LastQueueGeneratedDate = DateTime.Now; _callQueueRepository.Save(callQueue); } } catch (Exception exception) { _logger.Error(string.Format("error health plan call queue.")); _logger.Error(string.Format("Message {0} stack trace: {1} ", exception.Message, exception.StackTrace)); } }