WebAPI - Return Response from Initialize (override) method

Viewed 842

I have the same code on each API method:

        if (user.AspNetRoles.Where(p => p.Name == Models.Roles.SmartphonePhotographer).Count() == 0)
        {
            return Request.CreateResponse((HttpStatusCode)453, new { Message = "User does not have Smartphone Photographer role" });
            //return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User does not have Smartphone Photographer role");
        }

        if (!user.EmailConfirmed)
        {
            return Request.CreateResponse((HttpStatusCode)454, new { Message = "User is not confirmed" });
        }

and want to return Response directly from override Initialize method. Can I do it?

(Of course, I have moved it to ActionFilter if had not set user variable in Controller)

    protected override void Initialize(HttpControllerContext controllerContext)
    {
        int id = controllerContext.RequestContext.Principal.Identity.GetUserId<int>();
        user = controllerContext.Request.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(id);

        base.Initialize(controllerContext);
    }
1 Answers
Related