예제 #1
0
 public static Response AddError(EntityValidationState entityValidationState, ResponseState state = ResponseState.Unacceptable)
 => new Response(new Dictionary <string, List <string> >()
 {
     {
         entityValidationState.PropertyName, new List <string>()
         {
             entityValidationState.Message
         }
     }
 }, state);
예제 #2
0
        public virtual async Task CompleteAsync()
        {
            ValidationState = await _context.ValidatableSaveChangesAsync();

            if (ValidationState.IsValid)
            {
                return;
            }

            throw new Exception(ValidationState.Message);
        }
예제 #3
0
        public virtual async Task <bool> TryCompleteAsync()
        {
            try
            {
                ValidationState = await _context.ValidatableSaveChangesAsync();
            }
            catch (Exception e)
            {
                ValidationState = EntityValidationState.Error(null, e.ToString());
                return(false);
            }

            return(ValidationState.IsValid);
        }
예제 #4
0
        protected EntityValidationState TrySaveChanges()
        {
            try
            {
                SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(EntityValidationState.Error(er => e.InnerException, e.ToString()));
            }

            return(EntityValidationState.Valid);
        }
예제 #5
0
        public virtual EntityValidationState IsValid(IEnumerable <EntityEntry <TEntity> > entityEntries, TDbContext context)
        {
            EntityValidationState validationState = null;

            foreach (var entityEntry in entityEntries.ToList())
            {
                switch (entityEntry.State)
                {
                case EntityState.Detached:
                    break;

                case EntityState.Unchanged:
                    CheckUnchanged(entityEntry, context);
                    break;

                case EntityState.Added:
                    validationState = ValidToAdd(entityEntry, context);
                    break;

                case EntityState.Modified:
                    validationState = ValidToModify(entityEntry, context);
                    break;

                case EntityState.Deleted:
                    validationState = ValidToDelete(entityEntry, context);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(entityEntry.State));
                }

                if (validationState == null)
                {
                    continue;
                }

                if (!validationState.IsValid)
                {
                    return(validationState);
                }
            }

            return(EntityValidationState.Valid);
        }
예제 #6
0
 public Response AddError(EntityValidationState entityValidationState, ResponseState state = ResponseState.Unacceptable)
 => AddError(entityValidationState.PropertyName, entityValidationState.Message, state);