public virtual A.Core.Validation.ValidationResult Validate(object entity)
        {
            A.Core.Validation.ValidationResult result = new A.Core.Validation.ValidationResult();

            var context           = new ValidationContext(entity, serviceProvider: null, items: null);
            var validationResults = new List <ValidationResult>();

            bool isValid = Validator.TryValidateObject(entity, context, validationResults, true);

            if (!isValid)
            {
                validationResults.ForEach(x => { result.ResultList.Add(new A.Core.Validation.ValidationResultItem()
                    {
                        Key = x.MemberNames.FirstOrDefault(), Description = x.ErrorMessage
                    }); });
            }
            return(result);
        }
        public virtual async Task <A.Core.Validation.ValidationResult> ValidateUpdateAsync(TUpdate request, TEntity entity)
        {
            A.Core.Validation.ValidationResult result = new A.Core.Validation.ValidationResult();

            var context           = new System.ComponentModel.DataAnnotations.ValidationContext(request, serviceProvider: null, items: null);
            var validationResults = new List <ValidationResult>();

            bool isValid = Validator.TryValidateObject(request, context, validationResults, true);

            if (!isValid)
            {
                validationResults.ForEach(x => { result.ResultList.Add(new A.Core.Validation.ValidationResultItem()
                    {
                        Key = x.MemberNames.FirstOrDefault(), Description = x.ErrorMessage
                    }); });
            }
            return(await Task.FromResult(result));
        }