public async Task <IUpdateProductResponseObject> Handle(IUpdateProductRequestObject requestObject) { try { requestObject.Validate(); if (!requestObject.IsValid) { return(new UpdateProductResponseObject((int)HttpStatusCode.BadRequest, requestObject.ValidationNotifications)); } var productExists = await CheckIfProductExists(requestObject.ProductId); if (!productExists) { return(new UpdateProductResponseObject((int)HttpStatusCode.NotFound, new ValidationNotification(Messages.ProductIdError))); } if (await DescriptionExists(requestObject.Description)) { return(new UpdateProductResponseObject((int)HttpStatusCode.BadRequest, new ValidationNotification(Messages.ProductDescriptionExistError))); } Product product = new Product(requestObject.ProductId, requestObject.Description, requestObject.Price); _uow.ProductRepository.Update(product); if (!_uow.Commit()) { return(new UpdateProductResponseObject((int)HttpStatusCode.InternalServerError, new ValidationNotification(Messages.DatabaseError))); } return(new UpdateProductResponseObject(product)); } catch (Exception e) { return(new UpdateProductResponseObject((int)HttpStatusCode.InternalServerError, new ValidationNotification(Messages.ServerError, e.Message))); } }
public async Task <IUpdateProductResponseObject> Handle(IUpdateProductRequestObject updateProductRequestObject) { return(await _updateProduct.Handle(updateProductRequestObject)); }