public ActionResult TextReminder(TextReminderModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var model = _eventCustomerReportingService.GetTextReminderReport(pageNumber, _pageSize, filter, out totalRecords);

            if (model == null)
            {
                model = new TextReminderListModel();
            }
            model.Filter = filter;

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc =
                pn => Url.Action(currentAction, new
            {
                pageNumber = pn,
                filter.FromDate,
                filter.ToDate,
                filter.EventId,
                filter.CustomerId,
                filter.HealthPlanId,
                filter.ShowSmsOptedCustomers,
                filter.ShowSmsNotOptedCustomers
            });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
        public TextReminderListModel Create(IEnumerable <EventCustomer> eventCustomers, EventVolumeListModel eventListModel, IEnumerable <Customer> customers, IEnumerable <OrganizationRoleUser> agents, IEnumerable <Role> roles, IEnumerable <OrderedPair <long, string> > agentIdNamePairs)
        {
            var model = new TextReminderListModel();
            var textReminderModels = new List <TextReminderViewModel>();

            eventCustomers.ToList().ForEach(ec =>
            {
                var eventModel = eventListModel.Collection.Where(e => e.EventCode == ec.EventId).FirstOrDefault();

                var customer = customers.Where(c => c.CustomerId == ec.CustomerId).FirstOrDefault();

                var registeredBy = (ec.DataRecorderMetaData == null || ec.DataRecorderMetaData.DataRecorderCreator == null ? null : agents.Where(a => a.Id == ec.DataRecorderMetaData.DataRecorderCreator.Id).FirstOrDefault());

                string agentName, agentRole;
                agentRole = agentName = string.Empty;
                if (registeredBy != null)
                {
                    if (GetParentRoleIdByRoleId(registeredBy.RoleId) == (long)Roles.Customer)
                    {
                        agentRole = "Internet";
                        agentName = "";
                    }
                    else
                    {
                        agentRole = roles.Where(r => r.Id == registeredBy.RoleId).FirstOrDefault().DisplayName;
                        agentName = agentIdNamePairs.Where(ap => ap.FirstValue == registeredBy.Id).FirstOrDefault().SecondValue;
                    }
                }

                var textReminderModel = new TextReminderViewModel
                {
                    CustomerId       = ec.CustomerId,
                    OptedForSmsStaus = ec.EnableTexting ? "Yes" : "No",
                    EventId          = eventModel.EventCode,
                    CustomerName     = customer.Name.FullName,
                    AgentName        = agentName + " (" + agentRole + ")",
                };

                textReminderModels.Add(textReminderModel);
            });
            model.Collection = textReminderModels;
            return(model);
        }