コード例 #1
0
        public async Task <ActionResult> Delete(ProductRemoveDto removeDto)
        {
            var result = await _productService.DeleteAsync(removeDto);

            if (result.IsError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public async Task <Result> RemoveAsync(ProductRemoveDto productDto)
        {
            var result = await Task.Run(() =>
            {
                var result      = new Result();
                var stock_Spec  = new StockExistSpecification(productDto.CreateStock(productDto.ProductId));
                var exist_stock = _stockRepository.Find(stock_Spec).FirstOrDefault();

                if (exist_stock != null)
                {
                    _stockRepository.Remove(exist_stock.Id);
                    _stockRepository.Complete();

                    var exist_Product_Spec = new ProductExistSpecification(productDto.ProductId);
                    var exist_Product      = _productRepository.Find(exist_Product_Spec);

                    if (exist_Product != null)
                    {
                        _productRepository.Remove(productDto.ProductId);
                        _productRepository.Complete();
                    }
                    else
                    {
                        result.IsError   = true;
                        result.Message   = "Product does not exist";
                        result.StatuCode = 400;
                    }
                }
                else
                {
                    result.IsError   = true;
                    result.Message   = "Product does not exist";
                    result.StatuCode = 400;
                }



                return(result);
            });

            return(result);
        }