Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using GAMongo.Framework.Models.Json;
- using GAMongo.Services.Json;
- using GAMongo.Services.Security;
- using Microsoft.AspNetCore.Mvc;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Threading.Tasks;
- namespace GAMongo.Web.Controllers.API
- {
- public abstract class BaseAPIController : Controller
- {
- protected readonly IAclService _aclService;
- protected readonly IJsonFieldsSerializer _jsonFieldsSerializer;
- public BaseAPIController(IAclService aclService,
- IJsonFieldsSerializer jsonFieldsSerializer)
- {
- this._aclService = aclService;
- this._jsonFieldsSerializer = jsonFieldsSerializer;
- }
- protected async Task<IActionResult> Error(HttpStatusCode statusCode = (HttpStatusCode)422, string propertyKey = "", string errorMessage = "")
- {
- var errors = new Dictionary<string, List<string>>();
- if (!string.IsNullOrEmpty(errorMessage) && !string.IsNullOrEmpty(propertyKey))
- {
- var errorsList = new List<string>() { errorMessage };
- errors.Add(propertyKey, errorsList);
- }
- foreach (var item in ModelState)
- {
- var errorMessages = item.Value.Errors.Select(x => x.ErrorMessage);
- List<string> validErrorMessages = new List<string>();
- if (errorMessages != null)
- {
- validErrorMessages.AddRange(errorMessages.Where(message => !string.IsNullOrEmpty(message)));
- }
- if (validErrorMessages.Count > 0)
- {
- if (errors.ContainsKey(item.Key))
- {
- errors[item.Key].AddRange(validErrorMessages);
- }
- else
- {
- errors.Add(item.Key, validErrorMessages.ToList());
- }
- }
- }
- var errorsRootObject = new ErrorsRootObject()
- {
- Errors = errors
- };
- var errorsJson = _jsonFieldsSerializer.Serialize(errorsRootObject, null);
- return new ErrorActionResult(errorsJson, statusCode);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement