You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.0 KiB

1 year ago
  1. using Business.Mobile;
  2. using Common;
  3. using Common.Model;
  4. using log4net;
  5. using Newtonsoft.Json;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Web;
  10. using System.Web.Http;
  11. namespace JsonRx.ApiV3
  12. {
  13. /// <summary>
  14. /// This controller endpoints should be used to perform realtime data validation
  15. /// </summary>
  16. [RoutePrefix("api/v3")]
  17. public class ValidationController : ApiController
  18. {
  19. private readonly IMobileServices _obj;
  20. private static readonly ILog Log = LogManager.GetLogger(typeof(ValidationController));
  21. /// <summary>
  22. /// constructor
  23. /// </summary>
  24. public ValidationController() { }
  25. /// <summary>
  26. /// Constructor that injects IMobileServices service
  27. /// </summary>
  28. /// <param name="requestServices"></param>
  29. public ValidationController(IMobileServices requestServices)
  30. {
  31. _obj = requestServices;
  32. }
  33. /// <summary>
  34. /// Endpoint to validate data
  35. /// </summary>
  36. /// <param name="model"></param>
  37. /// <returns></returns>
  38. [HttpPost]
  39. [Route("validation")]
  40. public IHttpActionResult RealtimeValidation(RealtimeValidationModel model)
  41. {
  42. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  43. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = "Anonymous";
  44. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = nameof(ValidationController.RealtimeValidation);
  45. System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
  46. string lang = headers.GetValues("lang").FirstOrDefault();
  47. Log.DebugFormat("New user Register | Lang {0}| REQUEST {1}", lang, JsonConvert.SerializeObject(model));
  48. var resp = _obj.RealtimeValidation(model, lang);
  49. Log.Debug("RealtimeValidation | Result:" + JsonConvert.SerializeObject(resp));
  50. return Ok(resp);
  51. }
  52. }
  53. }