yavsc/web/ValidateAjaxAttribute.cs
Paul Schneider 8e2c21a3db Fixes the Profiles administration
* Web.config:
* web.config:
* Web.csproj:
* Global.asax.cs:
* ValidateAjaxAttribute.cs:
* Profile.aspx:
* HomeController.cs:
* BlogsController.cs:
* WebCatalogExtensions.cs:
* GoogleController.cs:
* AccountController.cs:
* Profile.cs:
* EstimToPdfFormatter.MSAN.cs: 

* Makefile: Removes obsolete target "rsync-all"
Adds the new target "allrsync"


* FrontOfficeApiController.cs: Makes the code smaller and a better
  output in case of exception generating the Pdf or Tex outputs

* WorkFlowController.cs: makes code cleaner

* App.master: Gives the Profile method call an id parameter

* Estimate.aspx: Fixes the estimation id parameter name at querying
  the Pdf or Tex documents

* Estim.cs: see Estim.tt

* Estim.tt: Mo more exception at transforming null values from the
  contact section of the client profile
2015-04-17 00:01:20 +02:00

68 lines
1.9 KiB
C#

//
// ValidateAjaxAttribute.cs
//
// Author:
// Paul Schneider <paulschneider@free.fr>
//
// Copyright (c) 2014 Paul Schneider
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http.Filters;
using System.Web.Http.ModelBinding;
namespace Yavsc
{
/// <summary>
/// Validate ajax attribute.
/// </summary>
public class ValidateAjaxAttribute : ActionFilterAttribute
{
/// <summary>
/// Gets the error model object.
/// </summary>
/// <returns>The error model object.</returns>
/// <param name="modelState">Model state.</param>
public static object GetErrorModelObject(ModelStateDictionary modelState) {
var errorModel =
from x in modelState.Keys
where modelState[x].Errors.Count > 0
select new
{
key = x,
errors = modelState[x].Errors.
Select(y => y.ErrorMessage).
ToArray()
};
return errorModel;
}
public override void OnActionExecuted (HttpActionExecutedContext actionExecutedContext)
{
var modelState = actionExecutedContext.ActionContext.ModelState;
if (!modelState.IsValid)
{
actionExecutedContext.Response =
actionExecutedContext.Request.CreateResponse (System.Net.HttpStatusCode.BadRequest,
ValidateAjaxAttribute.GetErrorModelObject (modelState));
}
}
}
}