private async Task<SelectItineraryRequestsModel> BuildSelectItineraryRequestsModel(int itineraryId, RequestSearchCriteria criteria) { var model = new SelectItineraryRequestsModel(); var itinerary = await _mediator.SendAsync(new ItineraryDetailQuery { ItineraryId = itineraryId }); model.CampaignId = itinerary.CampaignId; model.CampaignName = itinerary.CampaignName; model.EventId = itinerary.EventId; model.EventName = itinerary.EventName; model.ItineraryName = itinerary.Name; criteria.EventId = itinerary.EventId; var requests = await _mediator.SendAsync(new RequestListItemsQuery { Criteria = criteria }); foreach (var request in requests) { var selectItem = new RequestSelectModel { Id = request.Id, Name = request.Name, DateAdded = request.DateAdded, City = request.City, Address = request.Address, Latitude = request.Latitude, Longitude = request.Longitude, Postcode = request.Postcode }; model.Requests.Add(selectItem); } return model; }
public async Task SelectRequestsWithTwoParametersSetsSelectItineraryRequestsModelWithTheCorrectData() { var itineraryRequestsModel = new SelectItineraryRequestsModel() { KeywordsFilter = "These are keywords" }; var itinerary = GetItineraryForSelectRequestHappyPathTests(); var returnedRequests = GetRequestsForSelectRequestHappyPathTests(); var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.Is<ItineraryDetailQuery>(y => y.ItineraryId == itinerary.Id))) .ReturnsAsync(itinerary); mediator.Setup(x => x.SendAsync(It.Is<RequestListItemsQuery>(y => y.Criteria.Keywords.Equals(itineraryRequestsModel.KeywordsFilter) && y.Criteria.EventId == itinerary.EventId))) .ReturnsAsync(returnedRequests); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); var view = await sut.SelectRequests(itinerary.Id, itineraryRequestsModel); RunSelectRequestsHappyPathTests(view, itinerary, returnedRequests); }
public async Task<IActionResult> SelectRequests(int id, SelectItineraryRequestsModel model) { var newModel = await BuildSelectItineraryRequestsModel(id, new RequestSearchCriteria { Keywords = model.KeywordsFilter }); return View("SelectRequests", newModel); }
public async Task SelectRequestsWithSingleParameterSetsSelectItineraryRequestsModelWithTheCorrectData() { var organizationId = 4; var itineraryRequestsModel = new SelectItineraryRequestsModel(); var itinerary = GetItineraryForSelectRequestHappyPathTests(); var returnedRequests = GetRequestsForSelectRequestHappyPathTests(); var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.Is<ItineraryDetailQuery>(y => y.ItineraryId == itinerary.Id))) .ReturnsAsync(itinerary); mediator.Setup(x => x.SendAsync(It.IsAny<RequestListItemsQuery>())) .ReturnsAsync(returnedRequests); mediator.Setup(x => x.SendAsync(It.IsAny<OrganizationIdQuery>())) .ReturnsAsync(organizationId); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, organizationId.ToString()) }); var view = await sut.SelectRequests(itinerary.Id, itineraryRequestsModel); RunSelectRequestsHappyPathTests(view, itinerary, returnedRequests); }