using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using InventoryTraker.Web.ActionResults; namespace InventoryTraker.Web.Controllers { public abstract class ControllerBase : Controller { public BetterJsonResult BetterJson(T model) { return new BetterJsonResult {Data = model}; } protected IEnumerable GetModelStateErrorList() { var errorList = from kvp in ModelState where kvp.Value.Errors.Any() let errors = string.Join(", ", kvp.Value.Errors.Select(e => e.ErrorMessage)) let msg = kvp.Key + ": " + errors select msg; return errorList; } protected JsonResult GetModelStateErrorListJson() { var betterJsonResult = new BetterJsonResult(); foreach (var err in GetModelStateErrorList()) betterJsonResult.AddError(err); return betterJsonResult; } } }