public override int SaveChanges()
        {
            var entities = ChangeTracker.Entries()
                           .Where(t => t.Entity is IEntity &&
                                  !t.State.Exists(EntityState.Detached, EntityState.Unchanged))
                           .ToList();

            entities
            .ForEach(dbEntry =>
            {
                var baseEntity = (IEntity)dbEntry.Entity;

                if (dbEntry.State == EntityState.Added)
                {
                    baseEntity.CreatedDate = systemContext.DateTimeNow;
                    baseEntity.CreatedBy   = systemContext.UserName;
                }

                baseEntity.LastModifiedDate = systemContext.DateTimeNow;
                baseEntity.LastModifiedBy   = systemContext.UserName;
            });

            int recordsAffected = base.SaveChanges();

            OnSaveChanges?.Invoke(recordsAffected, entities);

            return(recordsAffected);
        }
Esempio n. 2
0
        public int SaveChanges()
        {
            // Could also be before try if you know the exception occurs in SaveChanges
            var changes = _dataContext.SaveChanges();

            //Fire the event - notifying all subscribers
            OnSaveChanges?.Invoke(this, null);
            return(changes);
        }
Esempio n. 3
0
        public static void SaveChanges()
        {
            if (collection == null)
            {
                return;
            }

            OnSaveChanges?.Invoke();

            string libraryPath = UserConfig.GetValue(CONFIG_FILE, "libary_path", defaultPath);

            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.NullValueHandling = NullValueHandling.Ignore;
            settings.ContractResolver  = new CamelCasePropertyNamesContractResolver();
            string json = JsonConvert.SerializeObject(collection, Formatting.Indented, settings);

            File.WriteAllText(libraryPath, json);

            UserConfig.SetValue(CONFIG_FILE, "recent", recent.ToArray());
        }
Esempio n. 4
0
 public override Task <int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken))
 {
     UpdateConcurrencyStamps();
     OnSaveChanges?.Invoke(this, null);
     return(base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken));
 }