public IResult Order(OrderFromBasketDto dto) { var result = BusinessRules.Run(CreateNewOrder(dto)); if (result != null) { return(new ErrorResult(result.Message)); } int userId = GetUserIdFromToken(); int basketId = _basketService.GetByUserIdActive(userId).Data.Id; var basketDetails = _basketDetailService.GetAllByBasketId(basketId).Data; foreach (var basketDto in basketDetails) { OrderDetail orderDetail = new OrderDetail { ProductId = basketDto.ProductId, Count = basketDto.Count, OrderId = GetOrderIdForUser(userId), SalePrice = GetSalePriceForProduct(basketDto.ProductId, basketDto.Count), CreateDate = DateTime.Now, Active = true }; _orderDetailService.Add(orderDetail); } _basketService.SetPassive(basketId); return(new SuccessResult(BusinessMessages.ProductsOrdered)); }
public IActionResult Order(OrderFromBasketDto dto) { var result = _orderFromBasketService.Order(dto); if (result.Success) { return(Ok(result)); } return(BadRequest(result)); }
// Business Rules private IResult CreateNewOrder(OrderFromBasketDto dto) { int userId = GetUserIdFromToken(); if (userId == 0) { return(new ErrorResult(SystemMessages.WrongTokenSent)); } AddressDto addressDto = new AddressDto { UserId = userId, CityId = dto.CityId, AddressDetail = dto.AddressDetail, PostalCode = dto.PostalCode }; _orderService.AddAsDto(addressDto); return(new SuccessResult(BusinessMessages.OrderAdded)); }