Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.32 KB | None | 0 0
  1. using GAMongo.Framework.Models.Json;
  2. using GAMongo.Services.Json;
  3. using GAMongo.Services.Security;
  4. using Microsoft.AspNetCore.Mvc;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Threading.Tasks;
  9.  
  10. namespace GAMongo.Web.Controllers.API
  11. {
  12.     public abstract class BaseAPIController : Controller
  13.     {
  14.         protected readonly IAclService _aclService;
  15.         protected readonly IJsonFieldsSerializer _jsonFieldsSerializer;
  16.  
  17.         public BaseAPIController(IAclService aclService,
  18.                                  IJsonFieldsSerializer jsonFieldsSerializer)
  19.         {
  20.             this._aclService = aclService;
  21.             this._jsonFieldsSerializer = jsonFieldsSerializer;
  22.  
  23.         }
  24.  
  25.         protected async Task<IActionResult> Error(HttpStatusCode statusCode = (HttpStatusCode)422, string propertyKey = "", string errorMessage = "")
  26.         {
  27.             var errors = new Dictionary<string, List<string>>();
  28.  
  29.             if (!string.IsNullOrEmpty(errorMessage) && !string.IsNullOrEmpty(propertyKey))
  30.             {
  31.                 var errorsList = new List<string>() { errorMessage };
  32.                 errors.Add(propertyKey, errorsList);
  33.             }
  34.  
  35.             foreach (var item in ModelState)
  36.             {
  37.                 var errorMessages = item.Value.Errors.Select(x => x.ErrorMessage);
  38.  
  39.                 List<string> validErrorMessages = new List<string>();
  40.  
  41.                 if (errorMessages != null)
  42.                 {
  43.                     validErrorMessages.AddRange(errorMessages.Where(message => !string.IsNullOrEmpty(message)));
  44.                 }
  45.  
  46.                 if (validErrorMessages.Count > 0)
  47.                 {
  48.                     if (errors.ContainsKey(item.Key))
  49.                     {
  50.                         errors[item.Key].AddRange(validErrorMessages);
  51.                     }
  52.                     else
  53.                     {
  54.                         errors.Add(item.Key, validErrorMessages.ToList());
  55.                     }
  56.                 }
  57.             }
  58.  
  59.             var errorsRootObject = new ErrorsRootObject()
  60.             {
  61.                 Errors = errors
  62.             };
  63.  
  64.             var errorsJson = _jsonFieldsSerializer.Serialize(errorsRootObject, null);
  65.  
  66.             return new ErrorActionResult(errorsJson, statusCode);
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement