Пример #1
0
        public async Task <CreateProductCommandResponse> Handle(CreateProductCommand request, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            if (_uow.Proudcts.HasName(request.Name))
            {
                return new CreateProductCommandResponse
                       {
                           Id           = 0,
                           ErrorMessage = "Product name is already exist"
                       }
            }
            ;

            Prodcut product = new Prodcut
            {
                Name            = request.Name,
                NoOfUnit        = request.NoOfUnit,
                ReOrderLevel    = request.ReOrderLevel,
                UnitPrice       = request.UnitPrice,
                CreatedBy       = _identity.Name,
                CreatedDateTime = DateTimeOffset.Now
            };

            product = _uow.Proudcts.Save(product);
            await _uow.SaveAsync();

            return(new CreateProductCommandResponse
            {
                Id = product.Id
            });
        }
    }
        public async Task <UpdateProductCommandResponse> Handle(UpdateProductCommand request, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            Prodcut product = await _uow.Proudcts.GetById(request.Id);

            if (product == null)
            {
                return new UpdateProductCommandResponse
                       {
                           ErrorMessage = "Product is not availble for given id"
                       }
            }
            ;

            if (_uow.Proudcts.HasName(request.Id, request.Name))
            {
                return new UpdateProductCommandResponse
                       {
                           ErrorMessage = "Product name is already exist"
                       }
            }
            ;

            product.Name         = request.Name;
            product.NoOfUnit     = request.NoOfUnit;
            product.ReOrderLevel = request.ReOrderLevel;
            product.UnitPrice    = request.UnitPrice;

            product.ModifiedBy       = _identity.Name;
            product.ModifiedDateTime = DateTimeOffset.Now;

            _uow.Proudcts.Update(product);
            await _uow.SaveAsync();

            return(new UpdateProductCommandResponse
            {
            });
        }
    }
}
        public async Task <GetProductByIdQueryResponse> Handle(GetProductByIdQuery request, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            Prodcut product = await _uow.Proudcts.GetById(request.Id);

            if (product == null)
            {
                return(null);
            }

            return(new GetProductByIdQueryResponse
            {
                Id = product.Id,
                Name = product.Name,
                NoOfUnit = product.NoOfUnit,
                UnitPrice = product.UnitPrice,
                ReOrderLevel = product.ReOrderLevel,
                CreatedBy = product.CreatedBy,
                CreatedDateTime = product.CreatedDateTime,
                ModifiedBy = product.ModifiedBy,
                ModifiedDateTime = product.ModifiedDateTime
            });
        }