public ActionResult Index(MarketingSourceListModelFilter filter = null, int pageNumber = 1) { int totalRecords; var model = _marketingSourceService.GetPagedRecords(pageNumber, _pageSize, filter, out totalRecords); if (filter == null) { filter = new MarketingSourceListModelFilter(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.MarketingSourceName }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public MarketingSourceListModel GetPagedRecords(int pageNumber, int pageSize, MarketingSourceListModelFilter filter, out int totalRecords) { var marketingSources = _marketingSourceRepository.GetPagedRecords(pageNumber, pageSize, filter, out totalRecords); var models = Mapper.Map <IEnumerable <MarketingSource>, IEnumerable <MarketingSourceBasicModel> >(marketingSources); var marketingSourceTerritories = _marketingSourceRepository.GetMarketingSourceTerritories(marketingSources.Select(m => m.Id)); if (!marketingSourceTerritories.IsNullOrEmpty()) { var territories = _territoryRepository.GetTerritories(marketingSourceTerritories.Select(m => m.SecondValue).Distinct().ToList()); foreach (var model in models) { var modelTerritories = marketingSourceTerritories.Where(mst => mst.FirstValue == model.Id).Select(mst => mst.SecondValue).ToArray(); if (!modelTerritories.IsNullOrEmpty()) { model.Territories = territories.Where(t => modelTerritories.Contains(t.Id)).Select(t => t.Name); } } } return(new MarketingSourceListModel() { MarketingSourceBasicModels = models }); }