ApiResponseHelper.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using log4net;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Newtonsoft.Json;
  4. namespace Common.Http
  5. {
  6. /// <summary>
  7. /// Helper class to build API responses with string error codes
  8. /// </summary>
  9. public static class ApiResponseHelper
  10. {
  11. /// <summary>
  12. /// Build HTTP response with string error code
  13. /// </summary>
  14. /// <param name="log">Logger instance</param>
  15. /// <param name="url">Request URL</param>
  16. /// <param name="request">Request JSON</param>
  17. /// <param name="errorCode">Error code as string (e.g., "0", "-801")</param>
  18. /// <param name="message">Response message</param>
  19. /// <param name="data">Response data object</param>
  20. /// <returns>IActionResult</returns>
  21. public static IActionResult BuildResponse(
  22. ILog log,
  23. string url,
  24. string request,
  25. string errorCode,
  26. string message,
  27. object data
  28. )
  29. {
  30. // Create response object with string errorCode
  31. var response = new
  32. {
  33. errorCode = errorCode, // String type
  34. message = message,
  35. data = data
  36. };
  37. // Log the response
  38. string responseJson = JsonConvert.SerializeObject(response);
  39. log.Info($"URL: {url} | Request: {request} | Response: {responseJson}");
  40. // Return as JSON result with proper content type
  41. return new ContentResult
  42. {
  43. Content = responseJson,
  44. ContentType = "application/json",
  45. StatusCode = 200
  46. };
  47. }
  48. }
  49. }