public void CampaignExists() { var context = ServiceProvider.GetService<AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = 1 }; var handler = new CampaignDetailQueryHandler(context); var result = handler.Handle(query); Assert.NotNull(result); }
public async Task CampaignDoesNotExist() { var context = ServiceProvider.GetService<AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = 0 }; var handler = new CampaignDetailQueryHandler(context); var result = await handler.Handle(query); Assert.Null(result); }
public async Task CampaignDoesNotExist() { var context = ServiceProvider.GetService <AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = 0 }; var handler = new CampaignDetailQueryHandler(context); var result = await handler.Handle(query); Assert.Null(result); }
public void CampaignExists() { var context = ServiceProvider.GetService <AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = 1 }; var handler = new CampaignDetailQueryHandler(context); var result = handler.Handle(query); Assert.NotNull(result); }
public async Task ReturnCampaignManagerInvitesWithStatusPending_WhenNotRejectedAcceptedOrRevoked() { var context = ServiceProvider.GetService <AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = _campaignId }; var handler = new CampaignDetailQueryHandler(context); CampaignDetailViewModel result = await handler.Handle(query); result.CampaignManagerInvites.Count().ShouldBe(1); result.CampaignManagerInvites.Single().Id.ShouldBe(1); result.CampaignManagerInvites.Single().InviteeEmail.ShouldBe("*****@*****.**"); result.CampaignManagerInvites.Single().Status.ShouldBe(CampaignDetailViewModel.CampaignManagerInviteStatus.Pending); }
public async Task ReturnCampaignManagerInvitesWithStatusAccepted_WhenInviteIsAccepted() { var context = ServiceProvider.GetService <AllReadyContext>(); var query = new CampaignDetailQuery { CampaignId = _campaignId }; var handler = new CampaignDetailQueryHandler(context); CampaignManagerInvite invite = context.CampaignManagerInvites.Where(c => c.CampaignId == _campaignId).Single(); invite.AcceptedDateTimeUtc = new DateTime(2015, 5, 29); context.SaveChanges(); CampaignDetailViewModel result = await handler.Handle(query); result.CampaignManagerInvites.Count().ShouldBe(1); result.CampaignManagerInvites.Single().Id.ShouldBe(1); result.CampaignManagerInvites.Single().InviteeEmail.ShouldBe("*****@*****.**"); result.CampaignManagerInvites.Single().Status.ShouldBe(CampaignDetailViewModel.CampaignManagerInviteStatus.Accepted); }
public async Task <QueryResult <CampaignDetail> > GetCampaignDetailByCampaignAsync(int campaignId, CampaignDetailQuery campaignDetailQuery) { return(await unitOfWork.CampaignDetailRepository.GetCampaignDetailAsync(campaignId, campaignDetailQuery)); }
public static IQueryable <CampaignDetail> ApplyFiltering(this IQueryable <CampaignDetail> query, CampaignDetailQuery queryObj) { if (queryObj.Customer != null && !string.IsNullOrEmpty(queryObj.Customer.FirstName)) { query = query.Where(c => c.Customer.FirstName.Contains(queryObj.Customer.FirstName.Trim())); } if (queryObj.Customer != null && !string.IsNullOrEmpty(queryObj.Customer.LastName)) { query = query.Where(c => c.Customer.LastName.Contains(queryObj.Customer.LastName.Trim())); } if (queryObj.Customer != null && !string.IsNullOrEmpty(queryObj.Customer.CellPhone)) { query = query.Where(c => c.Customer.CellPhone.Contains(queryObj.Customer.CellPhone.Trim())); } if (queryObj.TotalCallsNumber.HasValue) { query = query.Where(c => c.TotalCallsNumber == queryObj.TotalCallsNumber); } if (!string.IsNullOrEmpty(queryObj.LastCallDuration)) { query = query.Where(c => c.LastCallDuration.Contains(queryObj.LastCallDuration.Trim())); } if (!string.IsNullOrEmpty(queryObj.State)) { query = query.Where(c => c.State.Contains(queryObj.State.Trim())); } return(query); }
public async Task <QueryResult <CampaignDetail> > GetCampaignDetailAsync(int campaignId, CampaignDetailQuery queryObj) { var result = new QueryResult <CampaignDetail>(); var query = entities .Include(cd => cd.Customer) .Where(cd => cd.CampaignId == campaignId) .AsQueryable(); query = query.ApplyFiltering(queryObj); var columnsMap = new Dictionary <string, Expression <Func <CampaignDetail, object> > >() { ["customer.firstName"] = cd => cd.Customer.FirstName, ["customer.lastName"] = cd => cd.Customer.LastName, ["customer.cellPhone"] = cd => cd.Customer.LastName, ["totalCallsNumber"] = cd => cd.TotalCallsNumber, ["lastCallDuration"] = cd => cd.LastCallDuration, ["lastCallDate"] = cd => cd.LastCallDate, ["lastValidCallDuration"] = cd => cd.LastValidCallDuration, ["lastValidCallDate"] = cd => cd.LastValidCallDate, ["state"] = cd => cd.State, }; query = query.ApplyOrdering(queryObj, columnsMap); result.TotalItems = await query.CountAsync(); query = query.ApplyPaging(queryObj); result.Items = await query.ToListAsync(); return(result); }