Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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));
        }