Exemplo n.º 1
0
        public void ComplaintFilter_ByOrderNumber()
        {
            var orderNum = "3";
            var filter   = new ComplaintFilterModel
            {
                OrderNumber = orderNum
            };

            var list   = filter.Apply(complaints.AsQueryable());
            var actual = complaints.Where(c => c.Request.Order.OrderNumber.Contains(orderNum));

            list.Should().HaveCount(actual.Count());
            list.Should().Contain(actual);
        }
Exemplo n.º 2
0
        public void ComplaintFilter_ByStatus()
        {
            var status = ComplaintStatus.Confirmed;
            var filter = new ComplaintFilterModel
            {
                Status = status
            };

            var list   = filter.Apply(complaints.AsQueryable());
            var actual = complaints.Where(c => c.Status == status);

            list.Should().HaveCount(actual.Count());
            list.Should().Contain(actual);
        }
Exemplo n.º 3
0
        public void ComplaintFilter_ComboByOrderNumberStatus()
        {
            var orderNum = "5";
            var status   = ComplaintStatus.Created;
            var filter   = new ComplaintFilterModel
            {
                OrderNumber = orderNum,
                Status      = status
            };

            var list   = filter.Apply(complaints.AsQueryable());
            var actual = complaints.Where(c => c.Request.Order.OrderNumber.Contains(orderNum) &&
                                          c.Status == status).Single();

            list.Should().OnlyContain(c => c == actual);
        }
        public async Task <IActionResult> ListComplaints(IDataTablesRequest request)
        {
            var model = new ComplaintFilterModel();

            await TryUpdateModelAsync(model);

            model.IsCustomerCentralAdminOrOrderHandler = 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 <Complaint> complaints = customerOrganisationId.HasValue ?
                                                model.GetComplaintsFromOrders(_dbContext.Orders.Select(o => o)) : brokerId.HasValue ?
                                                complaints = model.GetComplaintsFromRequests(_dbContext.Requests.Select(o => o)) : null;

            if (complaints == null)
            {
                return(Forbid());
            }
            return(AjaxDataTableHelper.GetData(request, complaints.Count(), model.Apply(complaints), x => x.Select(c => new ComplaintListItemModel
            {
                OrderRequestId = customerOrganisationId.HasValue ? c.Request.OrderId : c.RequestId,
                BrokerName = c.Request.Ranking.Broker.Name,
                CustomerName = c.Request.Order.CustomerOrganisation.Name,
                ComplaintType = c.ComplaintType,
                CreatedAt = c.CreatedAt.ToSwedishString("yyyy-MM-dd HH:mm"),
                OrderNumber = c.Request.Order.OrderNumber,
                RegionName = c.Request.Order.Region.Name,
                Status = c.Status,
            })));
        }