public async Task AddBadRequestStatus()
        {
            //Arrange
            var userManager = GetMockUserManager();

            User user = new User {
                Id = 1, UserName = "******"
            };
            CreateOrderDto createOrder = new CreateOrderDto {
                Reference = "430000"
            };
            ReferenceToAddOrderDto reference = new ReferenceToAddOrderDto {
                Reference = "430000"
            };
            Plan plan = new Plan {
                Id = 5, Reference = "430000"
            };

            userManager.Setup(x => x.FindByIdAsync("1")).Returns(Task.FromResult(user));
            warehouseMock.Setup(x => x.GetOrders("bc1")).Returns(Task.FromResult(GetPlans()));
            mapperMock.Setup(x => x.Map <Plan>(createOrder)).Returns(plan);
            warehouseMock.Setup(x => x.Add(plan));
            warehouseMock.Setup(x => x.SaveAll()).Returns(Task.FromResult(false));

            PlanController controller = new PlanController(warehouseMock.Object, mapperMock.Object, userManager.Object);

            //Act
            var action = await controller.AddOrder("bc1", 1, reference, 2) as BadRequestObjectResult;

            //Arrange
            Assert.Equal(400, action.StatusCode);
        }
        public async Task AddOrderBadRequestStatus()
        {
            //Arrange
            var  userManager = GetMockUserManager();
            User user        = new User {
                Id = 1, UserName = "******"
            };
            ReferenceToAddOrderDto reference = new ReferenceToAddOrderDto {
                Reference = "1"
            };

            userManager.Setup(x => x.FindByIdAsync("1")).Returns(Task.FromResult(user));

            PlanController controller = new PlanController(warehouseMock.Object, mapperMock.Object, userManager.Object);

            //Act
            var action = await controller.AddOrder("bc1", 1, reference, 1) as BadRequestObjectResult;

            //Arrange
            Assert.Equal(400, action.StatusCode);
            Assert.NotNull(action.Value);
        }
Beispiel #3
0
        public async Task <IActionResult> AddOrder(string line, int id,
                                                   ReferenceToAddOrderDto referenceToAddOrder, [FromQuery] int repeatAmount)
        {
            var currentUser = await userManager.FindByIdAsync(id.ToString());

            var order = AdjustReference.CreateNewOrder(referenceToAddOrder.Reference);

            if (order.Reference == null)
            {
                return(BadRequest("Podana referencja jest nieprawidłowa"));
            }

            order.Status = "Nowe";
            order.Line   = currentUser.UserName;
            order.Amount = referenceToAddOrder.Amount;

            var orders = await warehouseRepository.GetOrders(line);

            for (int j = 0; j < repeatAmount; j++)
            {
                var position = orders.Select(o => o.Position).ToList();

                //If entered position is greater than zero, all other orders positions add plus one.
                if (referenceToAddOrder.Position > 0)
                {
                    var positionToCheck = position.Where(p => p >= referenceToAddOrder.Position).ToList();

                    for (int i = 0; i < positionToCheck.Count(); i++)
                    {
                        var currentPosition = orders.Where(o => o.Position == positionToCheck[i]).LastOrDefault();

                        currentPosition.Position += 1;
                    }

                    //Add to new position entered position and current j value.
                    order.Position = referenceToAddOrder.Position + j;
                }
                else
                {
                    var positionToCheck = position.FirstOrDefault();

                    //If orders have any data, then new position is equal last position + 1 (and current j value).
                    if (positionToCheck > 0)
                    {
                        var positionToAdd = position.OrderByDescending(p => p).FirstOrDefault();

                        order.Position = positionToAdd + 1 + j;
                    }
                    else
                    {
                        order.Position = 1 + j;
                    }
                }

                var newOrder = mapper.Map <Plan>(order);

                warehouseRepository.Add(newOrder);
            }

            if (await warehouseRepository.SaveAll())
            {
                return(Ok());
            }


            return(BadRequest("Nie udało się dodać zamówienia."));
        }