private async Task <Result> IsOrderValid(Order order) { // var isCustomerExist = await _customerRepository.IsExists(order.CustomerId); // if (!isCustomerExist) // { // return Result.Fail(CustomErrors.CustomerByGivenIdNotExists); // } foreach (var orderItem in order.OrderItems) { var product = await _productRepository.FindById(orderItem.ProductId); if (product == null) { return(Result.Fail(CustomErrors.NotExistByGivenId)); } if (orderItem.Quantity >= product.AvailableQuantity) { return(Result.Fail(new Error(CustomErrors.NotEnoughProductsInStore( product.Name, orderItem.Quantity, product.AvailableQuantity)))); } } return(Result.Ok()); }