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; }
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(); }