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); } } }