示例#1
0
        public void SelectSequence(string sequenceId)
        {
            DeselectAllSequences();
            var sequence = Sequences.First(i => i.Id == sequenceId);

            sequence.IsSelected = true;
            IsSequenceSelected  = true;
            SelectedSequence    = sequence;
        }
示例#2
0
        public void DeleteSequence(string id)
        {
            var sequence = Sequences.First(i => i.Id == id);

            if (sequence.IsSelected)
            {
                IsSequenceSelected = false;
                IsEventSelected    = false;
            }
            Sequences.Remove(sequence);
        }
示例#3
0
        /// <summary>
        /// Returns the first pair of sequences that are in conflict with each other.
        /// </summary>
        /// <returns>The <see cref="List{T}" />.</returns>
        public IList <IEnumerable <T> > GetConflicts()
        {
            var conflictLists = new List <IEnumerable <T> >();

            if (UsesTracking)
            {
                if (firstConflict != null)
                {
                    conflictLists.Add(Sequences.First(s => !CanSort(s)));
                    conflictLists.Add(firstConflict);
                }
                return(conflictLists);
            }
            else
            {
                var newSort = new TopologicalSort <T>();

                var sequences = (Sequences as IList <IEnumerable <T> >);

                for (var i = 0; i < sequences.Count; i++)
                {
                    newSort.Add(sequences[i]);

                    if (newSort.Sort() != null)
                    {
                        continue;
                    }

                    newSort = new TopologicalSort <T>();
                    newSort.Add(sequences[i]);

                    for (var j = 0; j < i; j++)
                    {
                        newSort.Add(sequences[j]);

                        if (newSort.Sort() != null)
                        {
                            continue;
                        }

                        conflictLists.Add(sequences[j].ToList());
                        conflictLists.Add(sequences[i].ToList());

                        break;
                    }

                    break;
                }

                return(conflictLists);
            }
        }