Beispiel #1
0
        public async Task <IDeleteProductResponseObject> Handle(IDeleteProductRequestObject deleteProductRequestObject)
        {
            try
            {
                deleteProductRequestObject.Validate();

                if (!deleteProductRequestObject.IsValid)
                {
                    return(new DeleteProductResponseObject((int)HttpStatusCode.BadRequest,
                                                           deleteProductRequestObject.ValidationNotifications));
                }

                var product = await _unitOfWork.ProductRepository.GetById(deleteProductRequestObject.Id);

                if (product == null)
                {
                    return(new DeleteProductResponseObject((int)HttpStatusCode.NotFound,
                                                           new ValidationNotification(Messages.ProductIdError)));
                }

                _unitOfWork.ProductRepository.Delete(product);

                if (!_unitOfWork.Commit())
                {
                    return(new DeleteProductResponseObject((int)HttpStatusCode.InternalServerError,
                                                           new ValidationNotification(Messages.DatabaseError)));
                }

                return(new DeleteProductResponseObject((int)HttpStatusCode.OK));
            }catch (Exception e)
            {
                return(new DeleteProductResponseObject((int)HttpStatusCode.InternalServerError, new ValidationNotification(Messages.ServerError, e.Message)));
            }
        }
 public async Task <IDeleteProductResponseObject> Handle(IDeleteProductRequestObject deleteProductRequestObject)
 {
     return(await _deleteProduct.Handle(deleteProductRequestObject));
 }