public async Task <ActionResult <Response> > PostPurchase(PurchaseDto purchase) { try { if (purchase == null) { return(BadRequestParameter(nameof(purchase))); } var response = await this.purchaseService.PurchaseAsync(purchase); if (response is ResponseFailed) { return(BadRequest(response)); } var decorator = new SuccessResponseLinksDecorator( response, this.linkBuilderFactory.Create( typeof(PurchasePostLinksBuilder), (response as ResponseSuccess <Guid>).Result.ToString())); return(Ok(decorator)); } catch (Exception ex) { await this.errorLogger.LogAsync(ex.Message, ex); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <ActionResult <Response> > Get() { try { var response = await this.productService.GetProductsAsync(); if (response is ResponseFailed) { return(BadRequest(response)); } var decorator = new SuccessResponseLinksDecorator( response, this.linkBuilderFactory.Create(typeof(ProductGetLinksBuilder))); return(Ok(decorator)); } catch (Exception ex) { await this.errorLogger.LogAsync(ex.Message, ex); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <ActionResult <Response> > GetPurchase(Guid id) { try { var purchase = await this.purchaseService.GetPurchaseAsync(id); if (purchase is ResponseFailed) { var failed = purchase as ResponseFailed; if (failed.Errors.Any(x => x.Code == PurchaseErroCode.PurchaseNotFound)) { return(NotFound(failed)); } return(BadRequest(failed)); } var decorator = new SuccessResponseLinksDecorator( purchase, this.linkBuilderFactory.Create( typeof(PurchaseGetLinksBuilder), id.ToString())); return(Ok(decorator)); } catch (Exception ex) { await this.errorLogger.LogAsync(ex.Message, ex); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }