Beispiel #1
0
        public void ExecuteMerge()
        {
            MergedModifications = new ModificationCollection(new TextFile(ServerFile.Name), new TextFile("Merged"));
            MergedModifications.Initialize(ServerUser1Modifications);
            MergedModifications.Split(ServerUser2Modifications);

            ModificationCollection temporary = new ModificationCollection(ServerUser2Modifications);

            temporary.Split(MergedModifications);

            ICollection <Modification> processed = new List <Modification>();

            for (int mergedIndex = 0; mergedIndex < MergedModifications.Count; mergedIndex++)
            {
                Modification currentMerged = MergedModifications[mergedIndex];

                Modification currentUser2 = temporary.FindModificationByPrimaryIndex(processed, currentMerged.Primary.StartIndex);

                if (currentUser2 == null)
                {
                    continue;
                }

                processed.Add(currentUser2);

                Modification[] merged = currentMerged.Merge(currentUser2);

                currentMerged.Remove();

                foreach (Modification mergedModification in merged)
                {
                    MergedModifications.Insert(mergedIndex, mergedModification);
                    mergedIndex++;
                }

                mergedIndex--;
            }

            MergedModifications.GenerateFiles();

            RaiseStateChanged();
        }
Beispiel #2
0
        public void ExecuteMerge()
        {
            MergedModifications = new ModificationCollection(new TextFile(ServerFile.Name), new TextFile("Merged"));
            MergedModifications.Initialize(ServerUser1Modifications);
            MergedModifications.Split(ServerUser2Modifications);

            ModificationCollection temporary = new ModificationCollection(ServerUser2Modifications);
            temporary.Split(MergedModifications);

            ICollection<Modification> processed = new List<Modification>();

            for (int mergedIndex = 0; mergedIndex < MergedModifications.Count; mergedIndex++)
            {
                Modification currentMerged = MergedModifications[mergedIndex];

                Modification currentUser2 = temporary.FindModificationByPrimaryIndex(processed, currentMerged.Primary.StartIndex);

                if (currentUser2 == null)
                {
                    continue;
                }

                processed.Add(currentUser2);

                Modification[] merged = currentMerged.Merge(currentUser2);

                currentMerged.Remove();

                foreach (Modification mergedModification in merged)
                {
                    MergedModifications.Insert(mergedIndex, mergedModification);
                    mergedIndex++;
                }

                mergedIndex--;
            }

            MergedModifications.GenerateFiles();

            RaiseStateChanged();
        }