using Business.Mobile;
using Common;
using Common.Model;
using log4net;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace JsonRx.ApiV3
{
///
/// This controller endpoints should be used to perform realtime data validation
///
[RoutePrefix("api/v3")]
public class ValidationController : ApiController
{
private readonly IMobileServices _obj;
private static readonly ILog Log = LogManager.GetLogger(typeof(ValidationController));
///
/// constructor
///
public ValidationController() { }
///
/// Constructor that injects IMobileServices service
///
///
public ValidationController(IMobileServices requestServices)
{
_obj = requestServices;
}
///
/// Endpoint to validate data
///
///
///
[HttpPost]
[Route("validation")]
public IHttpActionResult RealtimeValidation(RealtimeValidationModel model)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = "Anonymous";
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = nameof(ValidationController.RealtimeValidation);
System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
string lang = headers.GetValues("lang").FirstOrDefault();
Log.DebugFormat("New user Register | Lang {0}| REQUEST {1}", lang, JsonConvert.SerializeObject(model));
var resp = _obj.RealtimeValidation(model, lang);
Log.Debug("RealtimeValidation | Result:" + JsonConvert.SerializeObject(resp));
return Ok(resp);
}
}
}