public Stock GetStock(Guid productId) { var stockSpecification = StockExistSpecification.Create(productId); var stock = _stockRepository.Find(stockSpecification).FirstOrDefault(); return(stock); }
public async Task <Result> DeleteAsync(ProductRemoveDto removeDto) { var result = await Task.Run(() => { var result = new Result(); var exist_product = _productRepository.Get(removeDto.ProductId); if (exist_product != null) { var stockSpec = StockExistSpecification.Create(removeDto.ProductId); var exist_stock = _stockRepository.Find(stockSpec).FirstOrDefault(); if (exist_stock != null) { _stockRepository.Remove(exist_stock.Id); _stockRepository.Complete(); var stockRemovedEvent = AbstractDomainEvent <StockRemoveDto> .Create(_serviceProvider); stockRemovedEvent.Raise(exist_stock); _productRepository.Remove(removeDto.ProductId); _productRepository.Complete(); var prodRemovedEvent = AbstractDomainEvent <ProductRemoveDto> .Create(_serviceProvider); prodRemovedEvent.Raise(exist_product); } else { result.IsError = true; result.Message = "Stock not found"; result.StatuCode = 400; } } else { result.IsError = true; result.Message = "Product not found"; result.StatuCode = 400; } return(result); }); return(result); }