public void PushSeuqenceStep(SequenceStep ss)
        {
            queue.Enqueue(ss);

            if (!dic.Keys.Contains<string>(ss.StepName))
                dic.Add(ss.StepName, ss);
        }
        public static SequenceStepGroup CreateSequenceStepGroup(string sequenceFile)
        {
            SequenceStepGroup ssG = new SequenceStepGroup();
            List<string> lstExistValidation = new List<string>();

            DataSet ds = new DataSet();
            ds.ReadXml(string.Format(@".\Sequences\{0}.xml", sequenceFile));

            foreach (DataRow row in ds.Tables["Telegram"].Rows)
            {
                string stepCategory = row["SequenceStepCategory"].ToString();

                if (!lstExistValidation.Contains(stepCategory))
                {
                    SequenceStep ss = new SequenceStep(stepCategory);

                    ssG.PushSeuqenceStep(ss);

                    lstExistValidation.Add(stepCategory);
                }
            }

            return ssG;
        }
        private void LoadSequenceSteps()
        {
            ResetSequenceStepsForSequenceReload();

            SequenceStep step = null;

            while (!ssg.NoMoreSteps)
            {
                step = ssg.PopSequenceStep();
                step.StepSelected += step_StepSelected;
                if (c3.Height < SEQUENCE_STEP_Y_OFFSET * sequenceStepCounter)
                {
                    c3.Height = c3.Height + SEQUENCE_STEP_Y_OFFSET;
                }

                Canvas.SetLeft(step.Shape, SEQUENCE_STEP_X);
                Canvas.SetTop(step.Shape, SEQUENCE_STEP_Y_OFFSET * sequenceStepCounter++);
                c3.Children.Add(step.Shape);
            }
        }