init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
48
Kreta.BusinessLogic/Validation/BLValidator.cs
Normal file
48
Kreta.BusinessLogic/Validation/BLValidator.cs
Normal file
|
@ -0,0 +1,48 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Core;
|
||||
using Kreta.Resources;
|
||||
using KretaValidate = Kreta.Core.Validation.Exceptions;
|
||||
using KretaValidateEnum = Kreta.Core.Validation.Exceptions.Enum;
|
||||
|
||||
namespace Kreta.BusinessLogic.Validation
|
||||
{
|
||||
/// <summary>
|
||||
/// Validates the models with "DataAnnotationAttributes" and gives You the option
|
||||
/// to create custom validation if model implements the "IValidatableObject" interface.
|
||||
/// </summary>
|
||||
public class BlValidator
|
||||
{
|
||||
public static implicit operator string(BlValidator blValidator)
|
||||
=> blValidator.GetFirstUserFriendlyError();
|
||||
|
||||
public readonly List<ValidationResult> ErrorList = new List<ValidationResult>();
|
||||
public readonly bool IsValid;
|
||||
|
||||
//TODO devkornel: Megcsinálni List<object>-re is vagy Singleton-ra!!!!
|
||||
public BlValidator(object coInstance)
|
||||
{
|
||||
var context = new ValidationContext(coInstance, serviceProvider: null, items: null);
|
||||
IsValid = Validator.TryValidateObject(coInstance, context, ErrorList, true);
|
||||
}
|
||||
public string GetUserFriendlyError()
|
||||
=> string.Join(Constants.General.LineSeparator, ErrorList.Select(x => x.ErrorMessage).ToArray());
|
||||
public string GetFirstUserFriendlyError()
|
||||
=> ErrorList.Count > 0 ? ErrorList[0].ErrorMessage : string.Empty;
|
||||
|
||||
public KretaValidate.ValidationException ConvertToValidationException()
|
||||
{
|
||||
var validationException = new KretaValidate.ValidationException(KretaValidateEnum.ValidationErrorType.Undefined, ErrorResource.ValidaciosHiba);
|
||||
var count = 1;
|
||||
foreach (var error in ErrorList)
|
||||
{
|
||||
var name = error.MemberNames.FirstOrDefault() ?? "custom_" + count;
|
||||
validationException.AddValidationItem(new KretaValidate.ValidationExceptionItem(name, error.ErrorMessage));
|
||||
count++;
|
||||
}
|
||||
|
||||
return validationException;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue