public void CreateNewOrderTest() { //Arrange string reference = "430000"; //Act CreateOrderDto action = AdjustReference.CreateNewOrder(reference); //Assert Assert.Equal("Argos", action.TypeOfCasing); Assert.Equal("3pM8", action.Casing); }
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.")); }