public static TelegramGroup CreateTelegramGroup(string sequenceFile, Dictionary<string, FunctionUnit> fuDic)
        {
            TelegramGroup tg = new TelegramGroup();

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

            foreach(DataRow row in ds.Tables["Telegram"].Rows)
            {
                List<Telegram> tList = new List<Telegram>();
                string[] receivers = GetMultiReceivers(row["receiver"].ToString());
                if (receivers.Length > 1)
                {
                    foreach (string rec in receivers)
                    {
                        string tt = row["Type"].ToString();
                        string sender = row["Sender"].ToString();
                        string receiver = rec;
                        string para = row["Para"].ToString();
                        string desc = row["Description"].ToString();
                        string stepCategory = row["SequenceStepCategory"].ToString();
                        Telegram t = new Telegram(Guid.NewGuid().ToString(), tt, sender, receiver, para, desc, stepCategory);
                        t.ReceiverFU = fuDic[rec];
                        t.SenderFU = fuDic[sender];
                        tList.Add(t);
                    }
                }
                else
                {
                    string tt = row["Type"].ToString();
                    string sender = row["Sender"].ToString();
                    string receiver = row["Receiver"].ToString();
                    string para = row["Para"].ToString();
                    string desc = row["Description"].ToString();
                    string stepCategory = row["SequenceStepCategory"].ToString();
                    Telegram t = new Telegram(Guid.NewGuid().ToString(), tt, sender, receiver, para, desc, stepCategory);
                    t.ReceiverFU = fuDic[receiver];
                    t.SenderFU = fuDic[sender];
                    tList.Add(t);
                }

                tg.PushTelegrams(tList);
            }

            return tg;
        }
Пример #2
0
        private void btnLoadSequence_Click(object sender, RoutedEventArgs e)
        {
            if (cmbSequences.SelectedIndex == -1)
            {
                MessageBox.Show("Please select a sequence");
                return;
            }

            CleanupCanvas(c1);
            CleanupCanvas(c3);

            ResetTelegramContent();

            string sequenceFileName = cmbSequences.SelectedValue.ToString();

            fuDic = FunctionUnitBuilder.CreateFunctionUnits(sequenceFileName);
            tg = TelegramGroupBuilder.CreateTelegramGroup(sequenceFileName, fuDic);
            ssg = SequenceStepBuilder.CreateSequenceStepGroup(sequenceFileName);

            arcnetDic.Clear();
            distanceBetweenFU = FU_GROUP_CANVAS_WIDTH / fuDic.Keys.Count;

            DrawFUandArcnetLine();

            DrawArcnetMainLine();

            LoadSequenceSteps();
        }