public IEnumerable <WriteModel <TEntity> > GetModel(WriteModelOptions options) { var entity = EntityEntry.Entity as TEntity; var validationContext = new ValidationContext(entity); Validator.ValidateObject(entity, validationContext); yield return(new InsertOneModel <TEntity>(entity)); }
public IEnumerable <WriteModel <TEntity> > GetModel(WriteModelOptions options) { var entity = EntityEntry.Entity as TEntity; var validationContext = new ValidationContext(entity); Validator.ValidateObject(entity, validationContext); var definition = EntityMapping.GetOrCreateDefinition(typeof(TEntity)); var updateDefintion = UpdateDefinitionHelper.CreateFromDiff <TEntity>(EntityEntry.OriginalValues, EntityEntry.CurrentValues); yield return(new UpdateOneModel <TEntity>(definition.CreateIdFilterFromEntity(entity), updateDefintion)); }
public IEnumerable <WriteModel <TEntity> > GetModel(WriteModelOptions options) { var definition = EntityMapping.GetOrCreateDefinition(typeof(TEntity)); yield return(new DeleteOneModel <TEntity>(definition.CreateIdFilterFromEntity(EntityEntry.Entity as TEntity))); }
public IEnumerable <WriteModel <EntityBucket <TGroup, TSubEntity> > > GetModel(WriteModelOptions options) { var filterBuilder = Builders <EntityBucket <TGroup, TSubEntity> > .Filter; var filter = filterBuilder.And( filterBuilder.Eq(b => b.Group, Group), filterBuilder.Where(b => b.ItemCount < BucketSize) ); var entityDefinition = EntityMapping.GetOrCreateDefinition(typeof(EntityBucket <TGroup, TSubEntity>)); var itemTimeValue = (DateTime)EntityTimeProperty.GetValue(SubEntity); var updateDefinition = Builders <EntityBucket <TGroup, TSubEntity> > .Update .Inc(b => b.ItemCount, 1) .Push(b => b.Items, SubEntity) .Min(b => b.Min, itemTimeValue) .Max(b => b.Max, itemTimeValue) .SetOnInsert(b => b.BucketSize, BucketSize) .SetOnInsert(b => b.Id, entityDefinition.KeyGenerator.Generate()); yield return(new UpdateOneModel <EntityBucket <TGroup, TSubEntity> >(filter, updateDefinition) { IsUpsert = true }); }
public IEnumerable <WriteModel <TEntity> > GetModel(WriteModelOptions options) { var definition = EntityMapping.GetOrCreateDefinition(typeof(TEntity)); yield return(new DeleteOneModel <TEntity>(definition.CreateIdFilter <TEntity>(EntityId, options?.TenantId))); }
public IEnumerable <WriteModel <EntityBucket <TGroup, TSubEntity> > > GetModel(WriteModelOptions options) { var filterBuilder = Builders <EntityBucket <TGroup, TSubEntity> > .Filter; var filter = filterBuilder.Eq(b => b.Group, Group); yield return(new DeleteManyModel <EntityBucket <TGroup, TSubEntity> >(filter)); }
public IEnumerable <WriteModel <TEntity> > GetModel(WriteModelOptions options) { yield return(new DeleteManyModel <TEntity>(Predicate)); }