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()); }
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); }
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); }
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); }
public async Task <QueryResult <Campaign> > GetAgentValidCampaignsAsync(string agentId, CampaignQuery campaignQuery) { return(await unitOfWork.CampaignRepository.GetAgentValidCampaignsAsync(agentId, campaignQuery)); }