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 }); }