Exemple #1
0
 public List <CampaignViewModel> Handle(CampaignQuery message)
 {
     return(_dataAccess.Campaigns
            .Where(c => c.EndDateTime.UtcDateTime.Date > DateTime.UtcNow.Date && !c.Locked)
            .ToViewModel()
            .OrderBy(vm => vm.EndDate)
            .ToList());
 }
Exemple #2
0
        public async Task <QueryResult <Campaign> > GetCampaignsAsync(CampaignQuery queryObj)
        {
            var result = new QueryResult <Campaign>();
            var query  = entities
                         .Include(c => c.User)
                         .AsSplitQuery();

            query = query.ApplyFiltering(queryObj);

            var columnsMap = new Dictionary <string, Expression <Func <Campaign, object> > >()
            {
                ["finishDate"] = c => c.FinishDate,
            };

            query = query.ApplyOrdering(queryObj, columnsMap);

            result.TotalItems = await query.CountAsync();

            query        = query.ApplyPaging(queryObj);
            result.Items = await query.ToListAsync();

            return(result);
        }
Exemple #3
0
        public async Task <QueryResult <Campaign> > GetAgentValidCampaignsAsync(string userId, CampaignQuery queryObj)
        {
            var result = new QueryResult <Campaign>();

            var query = entities
                        .Where(cp => cp.UserId.Equals(userId) &&
                               cp.IsActive &&
                               cp.FinishDate > DateTime.Now)
                        .OrderByDescending(cp => cp.Id)
                        .Select(
                c => new Campaign
            {
                Id              = c.Id,
                StartDate       = c.StartDate,
                FinishDate      = c.FinishDate,
                IsActive        = c.IsActive,
                CampaignDetails = (ICollection <CampaignDetail>)c.CampaignDetails
                                  .Where(cd => !cd.State.Equals(CampaignStatus.Earned.ToString()))
                                  .Select(
                    cd => new CampaignDetail
                {
                    Id         = cd.Id,
                    CampaignId = cd.CampaignId,
                    CustomerId = cd.CustomerId,
                    Customer   = new Customer
                    {
                        Id                 = cd.Customer.Id,
                        FirstName          = cd.Customer.FirstName,
                        LastName           = cd.Customer.LastName,
                        IdentificationCard = cd.Customer.IdentificationCard,
                        Email              = cd.Customer.Email,
                        Address            = cd.Customer.Address,
                        City               = cd.Customer.City,
                        Region             = cd.Customer.Region,
                        PostalCode         = cd.Customer.PostalCode,
                        Country            = cd.Customer.Country,
                        HomePhone          = cd.Customer.HomePhone,
                        CellPhone          = cd.Customer.CellPhone,
                        State              = cd.Customer.State
                    },
                    LastCallDate          = cd.LastCallDate,
                    LastCallDuration      = cd.LastCallDuration,
                    LastValidCallDate     = cd.LastValidCallDate,
                    LastValidCallDuration = cd.LastValidCallDuration,
                    TotalCallsNumber      = cd.TotalCallsNumber,
                    State = cd.State
                }
                    )
            }
                );

            query = query.ApplyFiltering(queryObj);

            var columnsMap = new Dictionary <string, Expression <Func <Campaign, object> > >()
            {
                ["finishDate"] = c => c.FinishDate,
            };

            query = query.ApplyOrdering(queryObj, columnsMap);

            result.TotalItems = await query.CountAsync();

            query        = query.ApplyPaging(queryObj);
            result.Items = await query.ToListAsync();

            return(result);
        }
Exemple #4
0
        public async Task <QueryResult <Campaign> > GetAgentCampaignsAsync(string userId, CampaignQuery queryObj)
        {
            var result = new QueryResult <Campaign>();

            var query = entities
                        .Where(c => c.UserId.Equals(userId))
                        .OrderByDescending(c => c.Id)
                        .AsQueryable();

            query = query.ApplyFiltering(queryObj);

            var columnsMap = new Dictionary <string, Expression <Func <Campaign, object> > >()
            {
                ["finishDate"] = c => c.FinishDate,
            };

            query = query.ApplyOrdering(queryObj, columnsMap);

            result.TotalItems = await query.CountAsync();

            query        = query.ApplyPaging(queryObj);
            result.Items = await query.ToListAsync();

            return(result);
        }
        public static IQueryable <Campaign> ApplyFiltering(this IQueryable <Campaign> query, CampaignQuery queryObj)
        {
            if (queryObj.Id.HasValue)
            {
                query = query.Where(c => c.Id == queryObj.Id);
            }

            return(query);
        }
Exemple #6
0
 public async Task <QueryResult <Campaign> > GetAgentValidCampaignsAsync(string agentId, CampaignQuery campaignQuery)
 {
     return(await unitOfWork.CampaignRepository.GetAgentValidCampaignsAsync(agentId, campaignQuery));
 }