public override WriteModel <T> GetWriteModelForUpdate(TrackedModel <T> trackedModel) { var updateDefinition = GetUpdateDefinitionForObject(trackedModel.DirtyTracker, typeof(T), trackedModel.Model); return(new UpdateOneModel <T>(GenericBsonFilters.MatchSingleById(trackedModel.Model), updateDefinition.ToMongoUpdateDefinition <T>())); }
private static SubEntityAsDeltaAggregate GetNullTrackedSubEntityAggregate( out TrackedModel <SubEntityAsDeltaAggregate> trackedModel) { var model = new SubEntityAsDeltaAggregate { NonDeltaValue = null, DeltaValue = null }; var trackingCollection = new TrackedModelCollection <SubEntityAsDeltaAggregate>(); trackingCollection.Existing(model); trackedModel = trackingCollection.Single(); return(model); }
private static FlatAggregate GetTrackedFlatAggregate(out TrackedModel <FlatAggregate> trackedModel) { var model = new FlatAggregate() { Id = Guid.NewGuid(), Name = "Bob Smith", Age = 20, DateOfBirth = new DateTime(2000, 01, 01) }; var trackingCollection = new TrackedModelCollection <FlatAggregate>(); trackingCollection.Existing(model); trackedModel = trackingCollection.Single(); return(model); }
private static IncrementNumeralsAggregate GetTrackedIncrementNumeralsAggregate( out TrackedModel <IncrementNumeralsAggregate> trackedModel) { var model = new IncrementNumeralsAggregate { Name = "Name", Integer = 5, Long = 120567, Decimal = 65.3M, Double = 67384.8956 }; var trackingCollection = new TrackedModelCollection <IncrementNumeralsAggregate>(); trackingCollection.Existing(model); trackedModel = trackingCollection.Single(); return(model); }
public void filter(FaceInfo[] infos, ImageFrame frame) { currentFrame.Clear(); if (infos != null) { foreach (FaceInfo faceInfo in infos) { TrackedModel face = getTrackedModel(faceInfo, frame); currentFrame.Add(face); face.setInfo(faceInfo); } } leftFaces.Clear(); for (int i = 0; i < trackingFaces.Size(); i++) { int key = trackingFaces.KeyAt(i); TrackedModel face = trackingFaces.Get(key); if (!currentFrame.Contains(face)) { leftFaces.Add(key); } else { if (onTrackListener != null) { face.setFrame(frame); onTrackListener.onTrack(face); } } } foreach (int?key in leftFaces) { TrackedModel left = trackingFaces.Get(key.Value); Log.Info("xx", " left:" + left); left.setEvent(Event.OnLeave); trackingFaces.Remove(key.Value); if (onTrackListener != null) { onTrackListener.onTrack(left); } // TODO release argb? } }
private TrackedModel getTrackedModel(FaceInfo faceInfo, ImageFrame frame) { TrackedModel face = trackingFaces.Get(faceInfo.FaceId); if (face == null) { face = pool.Take(); if (face == null) { face = new TrackedModel(); } trackingFaces.Append(faceInfo.FaceId, face); face.setTrackId(Guid.NewGuid().ToString()); face.setEvent(Event.OnEnter); } face.setInfo(faceInfo); face.setFrame(frame); return(face); }
public override WriteModel <T> GetWriteModelForUpdate(TrackedModel <T> trackedModel) { return(new ReplaceOneModel <T>(GenericBsonFilters.MatchSingleById(trackedModel.Model), trackedModel.Model)); }