Пример #1
0
        private IEnumerable <WriteModel <T> > UpdateChangedModels(TrackedModelCollection <T> trackedModels)
        {
            var updatedModels  = trackedModels.OfState(TrackedModelState.Existing).Where(m => m.IsDirty).ToArray();
            var updateStrategy = UpdateStrategy.ForType <T>();

            return(updatedModels.Select(m => updateStrategy.GetWriteModelForUpdate(m)));
        }
Пример #2
0
 public IEnumerable <WriteModel <T> > GetChangesForWrite(TrackedModelCollection <T> trackedModels)
 {
     return(InsertNewModels(trackedModels)
            .Concat(DeleteRemovedModels(trackedModels))
            .Concat(UpdateChangedModels(trackedModels)));
 }
Пример #3
0
        private IEnumerable <WriteModel <T> > DeleteRemovedModels(TrackedModelCollection <T> trackedModels)
        {
            var removedModels = trackedModels.OfState(TrackedModelState.Removed).Select(m => m.Model).ToArray();

            return(removedModels.Select(m => new DeleteOneModel <T>(GenericBsonFilters.MatchSingleById(m))));
        }
Пример #4
0
        private IEnumerable <WriteModel <T> > InsertNewModels(TrackedModelCollection <T> trackedModels)
        {
            var newModels = trackedModels.OfState(TrackedModelState.New).Select(m => m.Model).ToArray();

            return(newModels.Select(m => new InsertOneModel <T>(m)));
        }