Beispiel #1
0
        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);
        }
Beispiel #2
0
        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] });
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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]);
        }
Beispiel #6
0
        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,
            })));
        }