Calling a method from all controllers

Viewed 639

This method checks the Status and based on that returns a 200 or 400 status code.

private IActionResult ResponseType(Response response)
    {
        if (response.Status)
            return Ok(response);
        return BadRequest(response);
    }

I want to call this method from all controllers, so I can determine if I should return a 200 or 400. Where should I declare this method? In a "common" controller, service etc? What is the best practice for this use case?

1 Answers

Create BaseController which inherits from System.Web.Mvc.Controller in your project and write all common properties, methods and common logic here.

In any other controller inherit from this BaseController

BaseController

public abstract class BaseController : Controller
{
  public IActionResult ResponseType(Response response)
  {
    if (response.Status)
        return Ok(response);

    return BadRequest(response);
  }

  //Any other common methods, logics here
}

All Other Controller

public class AnyController : BaseController
{
    public ActionResult GetResponseType(Response response)
    {
        return ResponseType(response);
    }
}
Related