laatzen/LaaProductionWeb/LaaProductionWeb/API/ControllerBase.cs
Stoyan Zlatev dc4a3fa73a Register new AD user control
Change password control
2024-02-13 11:45:50 +01:00

42 lines
1.4 KiB
C#

namespace LaaProductionWeb.API
{
using Newtonsoft.Json;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Results;
public class ControllerBase : ApiController
{
protected override BadRequestResult BadRequest()
{
return new BadRequestModelResult(this);
}
}
public class BadRequestModelResult : BadRequestResult
{
private readonly ApiController controller;
public BadRequestModelResult(ApiController controller) : base(controller)
{
this.controller = controller;
}
public override Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var errors = this.controller.ModelState.Errors();
var errorsJson = JsonConvert.SerializeObject(errors);
var httpResponseMessage = new HttpResponseMessage();
httpResponseMessage.Content = new StringContent(errorsJson, Encoding.UTF8, "application/json");
httpResponseMessage.ReasonPhrase = nameof(HttpStatusCode.BadRequest);
httpResponseMessage.RequestMessage = controller.Request;
httpResponseMessage.StatusCode = HttpStatusCode.BadRequest;
return Task.FromResult(httpResponseMessage);
}
}
}