public ActionResult ManageCampaign(CampaignListModelFilter filter = null, int pageNumber = 1) { int totalRecords; var model = _campaignService.GetCampaignDetails(pageNumber, _pageSize, filter, out totalRecords) ?? new CampaignListModel(); model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name, filter.CampaignTypeId, filter.CampaignModeId, filter.StartDate, filter.EndDate, filter.IsPublished, filter.AccountId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public IEnumerable <Campaign> GetCampaignDetails(int pageNumber, int pageSize, CampaignListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); var query = (from cu in linqMetaData.Campaign select cu); if (filter != null) { if (filter.IsPublished) { query = (from cu in query where cu.IsPublished == filter.IsPublished select cu); } if (!string.IsNullOrEmpty(filter.Name)) { query = (from cu in query where cu.Name.ToLower().Contains(filter.Name.ToLower()) select cu); } if (filter.CampaignTypeId.HasValue && filter.CampaignTypeId.Value > 0) { query = (from cu in query where cu.TypeId == filter.CampaignTypeId select cu); } if (filter.CampaignModeId.HasValue && filter.CampaignModeId.Value > 0) { query = (from cu in query where cu.ModeId == filter.CampaignModeId select cu); } if (filter.StartDate.HasValue) { query = (from cu in query where cu.StartDate.Date >= filter.StartDate.Value.Date select cu); } if (filter.EndDate.HasValue) { query = (from cu in query where cu.EndDate.Date <= filter.EndDate.Value.Date select cu); } if (filter.AccountId.HasValue && filter.AccountId.Value > 0) { query = (from cu in query where cu.AccountId == filter.AccountId select cu); } } totalRecords = query.Count(); var entities = query.OrderByDescending(p => p.ModifiedOn).TakePage(pageNumber, pageSize).Select(x => x).ToArray(); return(AutoMapper.Mapper.Map <IEnumerable <CampaignEntity>, IEnumerable <Campaign> >(entities)); } }
public CampaignListModel GetCampaignDetails(int pageNumber, int pageSize, CampaignListModelFilter filter, out int totalRecords) { var campaigns = _campaignRepository.GetCampaignDetails(pageNumber, pageSize, filter, out totalRecords); if (campaigns == null || !campaigns.Any()) { return(null); } var campaignIds = campaigns.Select(x => x.Id).ToArray(); //IEnumerable<CampaignAssignment> campaignAssignment = null; //if (campaignIds != null && campaignIds.Any()) //{ // campaignAssignment = _campaignAssignmentRepository.GetByCampaignIds(campaignIds); //} var campaignCreatedByIds = campaigns.Select(cg => cg.DataRecorderMetaData.DataRecorderCreator.Id).ToArray(); var campaignModifiedByIds = campaigns.Select(cg => cg.DataRecorderMetaData.DataRecorderModifier.Id).ToArray(); if (campaignCreatedByIds != null && campaignCreatedByIds.Any()) { campaignCreatedByIds = campaignCreatedByIds.Concat(campaignModifiedByIds).ToArray(); } var campaignActivity = _campaignActivityRepository.GetByCampaignIds(campaignIds); IEnumerable <CampaignActivityAssignment> campaignActivityAssignment = null; if (campaignActivity != null && campaignActivity.Any()) { var campaignActivityIds = campaignActivity.Select(x => x.Id).ToArray(); if (campaignActivityIds != null && campaignActivityIds.Any()) { campaignActivityAssignment = _campaignActivityAssignmentRepository.GetByCampaignActivityIds(campaignActivityIds).ToArray(); if (campaignActivityAssignment != null && campaignActivityAssignment.Any()) { var activityAssignmentOrgRoleIds = campaignActivityAssignment.Select(x => x.AssignedToOrgRoleUserId).Distinct().ToArray(); campaignCreatedByIds = campaignCreatedByIds.Concat(activityAssignmentOrgRoleIds).ToArray(); } } } IEnumerable <OrderedPair <long, string> > campaignCreatedByAgentNameIdPair = null; if (campaignCreatedByIds != null && campaignCreatedByIds.Any()) { campaignCreatedByAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(campaignCreatedByIds).ToArray(); } var directMailTypes = _directMailTypeRepository.GetAll(); var corporateAccounts = _corporateAccountRepository.GetAllHealthPlan(); return(_campaignListModelFactory.Create(campaigns, campaignCreatedByAgentNameIdPair, corporateAccounts, campaignActivity, campaignActivityAssignment, directMailTypes)); }