using Microsoft.AspNetCore.Mvc; namespace Kit.Helpers { public class JsonResultSuccess { public T? SuccessMessage { get; set; } } public class JsonResultError { public string? ErrorMessage { get; set; } public string? ErrorStackTrace { get; set; } public string? RedirectUrl { get; set; } } public static class JsonResultExt { public static JsonResult JsonSuccess(this TController controller) where TController : Controller => controller.Json(new JsonResultSuccess { SuccessMessage = null }); public static JsonResult JsonSuccess(this TController controller) where TController : Controller => controller.Json(new JsonResultSuccess { SuccessMessage = default }); public static JsonResult JsonSuccess(this TController controller, TSuccessMessage? successMessage) where TController : Controller => controller.Json(new JsonResultSuccess { SuccessMessage = successMessage }); public static JsonResult JsonError(this TController controller, string errorMessage) where TController : Controller => controller.Json(new JsonResultError { ErrorMessage = errorMessage ?? string.Empty }); public static JsonResult JsonError(this TController controller, string errorMessage, string errorStackTrace) where TController : Controller => controller.Json(new JsonResultError { ErrorMessage = errorMessage ?? string.Empty, ErrorStackTrace = errorStackTrace ?? string.Empty }); public static JsonResult JsonError(this TController controller, string errorMessage, string errorStackTrace, string? redirectUrl) where TController : Controller => controller.Json(new JsonResultError { ErrorMessage = errorMessage ?? string.Empty, ErrorStackTrace = errorStackTrace ?? string.Empty, RedirectUrl = redirectUrl }); } }