Example #1
0
        public void CreateNewOrderTest()
        {
            //Arrange
            string reference = "430000";

            //Act
            CreateOrderDto action = AdjustReference.CreateNewOrder(reference);

            //Assert
            Assert.Equal("Argos", action.TypeOfCasing);
            Assert.Equal("3pM8", action.Casing);
        }
Example #2
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."));
        }