Esempio n. 1
0
        public static IActionResult CreateResult <T>(
            this Controller @this,
            Result <T> result,
            ActionResultOptions <T> options)
        {
            object value;

            if (!result.HasError)
            {
                value = result.Content;
            }
            else
            {
                value = result.ErrorMessage;
            }

            switch (result.Status)
            {
            case Status.Ok:
                return(@this.Ok(value));

            case Status.NotFound:
                return(@this.NotFound(value));

            case Status.BadRequest:
                return(@this.BadRequest(value));

            case Status.Created:
                return(@this.CreatedAtRoute(options.RouteName, options.RouteValues(result.Content), value));

            default:
                throw new ArgumentException("Unknown status.", nameof(result));
            }
        }
Esempio n. 2
0
        public static IActionResult CreateResult <T>(
            this Controller @this,
            Result <T> result,
            Action <ActionResultOptions <T> > options)
        {
            var o = new ActionResultOptions <T>(@this);

            options(o);
            return(@this.CreateResult(result, o));
        }
Esempio n. 3
0
        public static IActionResult CreateResult <T, TViewModel>(
            this Controller @this,
            Result <T> result,
            ActionResultOptions <T, TViewModel> options)
        {
            object value;

            if (!result.HasError && options.ToViewModel != null)
            {
                value = options.ToViewModel(result.Content);
            }
            else if (!result.HasError)
            {
                value = result.Content;
            }
            else
            {
                value = result.ErrorMessage;
            }

            if (result.Status == Status.Ok)
            {
                return(@this.Ok(value));
            }
            if (result.Status == Status.NotFound)
            {
                return(@this.NotFound(value));
            }
            if (result.Status == Status.BadRequest)
            {
                return(@this.BadRequest(value));
            }
            if (result.Status == Status.Created)
            {
                return(@this.CreatedAtRoute(options.RouteName, options.RouteValues(result.Content), value));
            }

            throw new ArgumentException("Unknown status.", nameof(result));
        }