public void RequisitionFilter_ByStatus() { var filter = new RequisitionFilterModel { Status = BusinessLogic.Enums.RequisitionStatus.Reviewed }; var list = filter.Apply(mockRequisitions.AsQueryable()); var actual = mockRequisitions.Where(r => r.Status == BusinessLogic.Enums.RequisitionStatus.Reviewed); list.Should().HaveCount(actual.Count()); list.Should().Contain(actual); }
public void RequisitionFilter_ByDateRange() { var filter = new RequisitionFilterModel { DateRange = new DateRange { Start = new DateTime(2018, 07, 01), End = new DateTime(2018, 11, 01) } }; var list = filter.Apply(mockRequisitions.AsQueryable()); list.Should().HaveCount(3); list.Should().Contain(new[] { mockRequisitions[1], mockRequisitions[2], mockRequisitions[3] }); }
public void RequisitionFilter_ByLanguage() { var language = mockLanguages.Where(l => l.Name == "French").Single(); var filter = new RequisitionFilterModel { LanguageId = language.LanguageId }; var list = filter.Apply(mockRequisitions.AsQueryable()); var actual = mockRequisitions.Where(r => r.Request.Order.Language == language); list.Should().HaveCount(actual.Count()); list.Should().Contain(actual); }
public void RequisitionFilter_ByOrderNumber() { var orderNum = "1337"; var filter = new RequisitionFilterModel { OrderNumber = orderNum }; var list = filter.Apply(mockRequisitions.AsQueryable()); var actual = mockRequisitions.Where(r => r.Request.Order.OrderNumber.Contains(orderNum)); list.Should().HaveCount(actual.Count()); list.Should().Contain(actual); }
public void RequisitionFilter_ComboDateStatusLanguage() { var filter = new RequisitionFilterModel { DateRange = new DateRange { Start = new DateTime(2018, 06, 01), End = new DateTime(2018, 10, 01) }, Status = BusinessLogic.Enums.RequisitionStatus.Reviewed, LanguageId = mockLanguages.Where(l => l.Name == "Chinese").Single().LanguageId }; var list = filter.Apply(mockRequisitions.AsQueryable()); list.Should().OnlyContain(r => r == mockRequisitions[2]); }
public async Task <IActionResult> ListRequisitions(IDataTablesRequest request) { var model = new RequisitionFilterModel(); await TryUpdateModelAsync(model); model.IsCentralAdminOrOrderHandler = User.IsInRole(Roles.CentralAdministrator) || User.IsInRole(Roles.CentralOrderHandler); var brokerId = User.TryGetBrokerId(); var customerOrganisationId = User.TryGetCustomerOrganisationId(); model.IsBroker = brokerId.HasValue; if (model.IsBroker) { model.BrokerId = brokerId; } else { model.CustomerOrganisationId = customerOrganisationId; model.UserId = User.GetUserId(); model.CustomerUnits = User.TryGetAllCustomerUnits(); } IQueryable <Requisition> requisitions = null; if (customerOrganisationId.HasValue) { requisitions = model.GetRequisitionsFromOrders(_dbContext.Orders.Select(o => o)); } else if (brokerId.HasValue) { requisitions = model.GetRequisitionsFromRequests(_dbContext.Requests.Select(o => o)); } else { return(Forbid()); } return(AjaxDataTableHelper.GetData(request, requisitions.Count(), model.Apply(requisitions), x => x.Select(r => new RequisitionListItemModel { OrderRequestId = customerOrganisationId.HasValue ? r.Request.OrderId : r.RequestId, Language = r.Request.Order.OtherLanguage ?? r.Request.Order.Language.Name, OrderNumber = r.Request.Order.OrderNumber, OrderDateAndTime = $"{r.Request.Order.StartAt.ToSwedishString("yyyy-MM-dd")} {r.Request.Order.StartAt.ToSwedishString("HH\\:mm")}-{r.Request.Order.EndAt.ToSwedishString("HH\\:mm")}", Status = r.Status, BrokerName = r.Request.Ranking.Broker.Name, CustomerName = r.Request.Order.CustomerOrganisation.Name, }))); }