Пример #1
0
        public void SaveChanges()
        {
            _container.GetInstance <PlanRepository>().SaveChanges();

            try
            {
                var mtRep = _container.GetInstance <IMultiTenantObjectRepository>() as MultitenantRepository;
                if (mtRep != null)
                {
                    mtRep.SaveChanges();
                }
            }
            catch
            { }

            _context.DetectChanges();
            var addedEntities    = _context.AddedEntities;
            var modifiedEntities = _context.ModifiedEntities;
            var deletedEntities  = _context.DeletedEntities;

            ((AuthorizationTokenRepositoryBase)AuthorizationTokenRepository).SaveChanges();

            try
            {
                _context.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                string errorFormat = @"Validation failed for entity [{0}]. Validation errors:" + Environment.NewLine + @"{1}";
                var    errorList   = new List <String>();
                foreach (var entityValidationError in e.EntityValidationErrors)
                {
                    var entityName = entityValidationError.Entry.Entity.GetType().Name;
                    var errors     = String.Join(Environment.NewLine, entityValidationError.ValidationErrors.Select(a => a.PropertyName + ": " + a.ErrorMessage));
                    errorList.Add(String.Format(errorFormat, entityName, errors));
                }
                throw new Exception(String.Join(Environment.NewLine + Environment.NewLine, errorList) + Environment.NewLine, e);
            }

            OnEntitiesAdded(new EntitiesStateEventArgs(this, addedEntities));
            OnEntitiesModified(new EntitiesStateEventArgs(this, modifiedEntities));
            OnEntitiesDeleted(new EntitiesStateEventArgs(this, deletedEntities));
        }