private void ErrorMailSend(MemberTermByAbsenceFilter filter, ILogger logger)
 {
     try
     {
         var fileNotPostedModel = _emailNotificationModelsFactory.GetAbsenceByMemberViewModel(filter.Tag, filter.CorporateUploadId);
         _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.AbsenceByMember, EmailTemplateAlias.AbsenceByMember, fileNotPostedModel, 0, 1, "Absence By Member");
     }
     catch (Exception ex)
     {
         logger.Error("Error while sending File Not Posted notification");
         logger.Error("Message:" + ex.Message);
         logger.Error("Stack Trace:" + ex.StackTrace);
     }
 }
        private void UpdateMemberByFilter(MemberTermByAbsenceFilter filter)
        {
            int pageNumber = 1;
            int errorCount = 0;

            while (true)
            {
                int totalRecords;
                try
                {
                    _logger.Info("Fetching Records for: Page Number " + PageSize + " Filter " + filter);
                    var customerIds = _customerRepository.GetCustomerForTermByAbsence(pageNumber, PageSize, filter, out totalRecords);
                    _logger.Info("Fetched Records for: Page Number " + PageSize + " Filter " + filter);

                    if (customerIds.IsNullOrEmpty())
                    {
                        break;
                    }
                    _logger.Info("Starting: Total Records: " + totalRecords);

                    UpdateMemberEligibility(customerIds);

                    _logger.Info("Completed: Total Records: " + totalRecords);
                    errorCount = 0;
                }
                catch (Exception ex)
                {
                    errorCount++;
                    _logger.Info("Error occurred while Fetching Records");
                    _logger.Info("Error Message: " + ex.Message);
                    _logger.Info("Error Stack Trace: " + ex.StackTrace);
                }

                if (errorCount >= 3)
                {
                    ErrorMailSend(filter, _logger);
                    return;
                }
            }
        }