示例#1
0
        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));
            }
        }
示例#3
0
        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));
            }
        }