public FakeBidirectionalRelationWorkUnit(FakeBidirectionalRelationWorkUnit original, IAuditWorkUnit nestedWorkUnit)
            : base(original.sessionImplementor, original.EntityName, original.verCfg, original.EntityId)
        {
            this.nestedWorkUnit = nestedWorkUnit;

            fakeRelationChanges = new Dictionary<String, FakeRelationChange>(original.getFakeRelationChanges());
        }
        public FakeBidirectionalRelationWorkUnit(FakeBidirectionalRelationWorkUnit original, IAuditWorkUnit nestedWorkUnit)
            : base(original.sessionImplementor, original.EntityName, original.verCfg, original.EntityId)
        {
            this.nestedWorkUnit = nestedWorkUnit;

            fakeRelationChanges = new Dictionary <String, FakeRelationChange>(original.getFakeRelationChanges());
        }
Example #3
0
 private FakeBidirectionalRelationWorkUnit(FakeBidirectionalRelationWorkUnit original,
                                           IDictionary <string, FakeRelationChange> fakeRelationChanges,
                                           IAuditWorkUnit nestedWorkUnit)
     : base(original.SessionImplementor, original.EntityName, original.VerCfg, original.EntityId, original.RevisionType)
 {
     this.fakeRelationChanges = fakeRelationChanges;
     NestedWorkUnit           = nestedWorkUnit;
 }
Example #4
0
        public static IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit frwu, IAuditWorkUnit nestedFirst,
                                           IAuditWorkUnit nestedSecond)
        {
            var nestedMerged = nestedSecond.Dispatch(nestedFirst);

            // Creating a new fake relation work unit with the nested merged data
            return(new FakeBidirectionalRelationWorkUnit(frwu, nestedMerged));
        }
        private FakeBidirectionalRelationWorkUnit(FakeBidirectionalRelationWorkUnit original,
												 IDictionary<string, FakeRelationChange> fakeRelationChanges,
												 IAuditWorkUnit nestedWorkUnit)
            : base(original.SessionImplementor, original.EntityName, original.VerCfg, original.EntityId, original.RevisionType)
        {
            this.fakeRelationChanges = fakeRelationChanges;
            NestedWorkUnit = nestedWorkUnit;
        }
        public static IAuditWorkUnit merge(FakeBidirectionalRelationWorkUnit frwu, IAuditWorkUnit nestedFirst,
            IAuditWorkUnit nestedSecond)
        {
            IAuditWorkUnit nestedMerged = nestedSecond.Dispatch(nestedFirst);

            // Creating a new fake relation work unit with the nested merged data
            return new FakeBidirectionalRelationWorkUnit(frwu, nestedMerged);
        }
Example #7
0
        public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
        {
            // First merging the nested work units.
            var mergedNested = second.NestedWorkUnit.Dispatch(NestedWorkUnit);

            // Now merging the fake relation changes from both work units.
            var secondFakeRelationChanges = second.fakeRelationChanges;
            var mergedFakeRelationChanges = new Dictionary <string, FakeRelationChange>();
            var allPropertyNames          = new HashSet <string>(fakeRelationChanges.Keys);

            allPropertyNames.UnionWith(secondFakeRelationChanges.Keys);

            foreach (var propertyName in allPropertyNames)
            {
                mergedFakeRelationChanges.Add(propertyName,
                                              FakeRelationChange.Merge(
                                                  fakeRelationChanges[propertyName],
                                                  secondFakeRelationChanges[propertyName]));
            }

            return(new FakeBidirectionalRelationWorkUnit(this, mergedFakeRelationChanges, mergedNested));
        }
        public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
        {
            // First merging the nested work units.
            IAuditWorkUnit mergedNested = second.getNestedWorkUnit().Dispatch(nestedWorkUnit);

            // Now merging the fake relation changes from both work units.
            IDictionary <String, FakeRelationChange> secondFakeRelationChanges = second.getFakeRelationChanges();
            IDictionary <String, FakeRelationChange> mergedFakeRelationChanges = new Dictionary <String, FakeRelationChange>();
            //TODO Simon - decide if we use IESI.Collections in the end.
            ISet <String> allPropertyNames = new HashedSet <String>(fakeRelationChanges.Keys);

            allPropertyNames.AddAll(secondFakeRelationChanges.Keys);

            foreach (String propertyName in allPropertyNames)
            {
                mergedFakeRelationChanges.Add(propertyName,
                                              FakeRelationChange.Merge(
                                                  fakeRelationChanges[propertyName],
                                                  secondFakeRelationChanges[propertyName]));
            }

            return(new FakeBidirectionalRelationWorkUnit(this, mergedFakeRelationChanges, mergedNested));
        }
Example #9
0
 public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
 {
     return(this);
 }
Example #10
0
 public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
 {
     return(FakeBidirectionalRelationWorkUnit.Merge(second, this, second.NestedWorkUnit));
 }
 public abstract IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second);
 public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
 {
     return null;
 }
 public abstract IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second);
Example #14
0
 public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
 {
     return FakeBidirectionalRelationWorkUnit.merge(second, this, second.getNestedWorkUnit());
 }
        public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
        {
            // First merging the nested work units.
            var mergedNested = second.NestedWorkUnit.Dispatch(NestedWorkUnit);

            // Now merging the fake relation changes from both work units.
            var secondFakeRelationChanges = second.fakeRelationChanges;
            var mergedFakeRelationChanges = new Dictionary<string, FakeRelationChange>();
            var allPropertyNames = new HashedSet<string>(fakeRelationChanges.Keys);
            allPropertyNames.AddAll(secondFakeRelationChanges.Keys);

            foreach (var propertyName in allPropertyNames)
            {
                mergedFakeRelationChanges.Add(propertyName,
                        FakeRelationChange.Merge(
                                fakeRelationChanges[propertyName],
                                secondFakeRelationChanges[propertyName]));
            }

            return new FakeBidirectionalRelationWorkUnit(this, mergedFakeRelationChanges, mergedNested);
        }
        public override IAuditWorkUnit Merge(FakeBidirectionalRelationWorkUnit second)
        {
            // First merging the nested work units.
            IAuditWorkUnit mergedNested = second.getNestedWorkUnit().Dispatch(nestedWorkUnit);

            // Now merging the fake relation changes from both work units.
            IDictionary<String, FakeRelationChange> secondFakeRelationChanges = second.getFakeRelationChanges();
            IDictionary<String, FakeRelationChange> mergedFakeRelationChanges = new Dictionary<String, FakeRelationChange>();
            //TODO Simon - decide if we use IESI.Collections in the end.
            ISet<String> allPropertyNames = new HashedSet<String>(fakeRelationChanges.Keys);
            allPropertyNames.AddAll(secondFakeRelationChanges.Keys);

            foreach (String propertyName in allPropertyNames) {
                mergedFakeRelationChanges.Add(propertyName,
                        FakeRelationChange.Merge(
                                fakeRelationChanges[propertyName],
                                secondFakeRelationChanges[propertyName]));
            }

            return new FakeBidirectionalRelationWorkUnit(this, mergedFakeRelationChanges, mergedNested);
        }