protected virtual void SetUpdatedAt(SeederExtension instance, IEnumerable <object> datas) { foreach (var data in datas) { var model = Convert.ChangeType(data, instance.GetModelType()); var updatedatProperty = model.GetType().GetProperty("UpdatedAt" , BindingFlags.Public | BindingFlags.Instance); if (updatedatProperty != null && updatedatProperty.CanWrite) { updatedatProperty.SetValue(model, DateTime.Now, null); } } }
protected virtual void SetId(SeederExtension instance, IEnumerable <object> datas, ModelBuilder modelBuilder) { var id = 1; foreach (var data in datas) { var model = Convert.ChangeType(data, instance.GetModelType()); var idProperty = model.GetType().GetProperty("Id" , BindingFlags.Public | BindingFlags.Instance); if (idProperty != null && idProperty.CanWrite) { idProperty.SetValue(model, id++, null); } } IncreaseAutoIncrement(instance, modelBuilder, id); }
protected virtual void SetTimeStamps(SeederExtension instance, IEnumerable <object> datas) { SetCreatedAt(instance, datas); SetUpdatedAt(instance, datas); }
protected virtual void IncreaseAutoIncrement(SeederExtension instance, ModelBuilder modelBuilder, int lastId) { modelBuilder.Entity(instance.GetModelType()).Property("Id").HasIdentityOptions(lastId); }
protected virtual void InsertData(SeederExtension instance, IEnumerable <object> datas, ModelBuilder modelBuilder) { modelBuilder.Entity(instance.GetModelType()).HasData(datas); }