public void Edit(int Index) { CHeaderData tmpHeaderData = lst_HeaderTemplates[Index]; frmHeaderParametrs fHeaderParametrs = new frmHeaderParametrs(); fHeaderParametrs.tspHeaderTemplate_txtNameTemplate.Text = tmpHeaderData.NameTemplate; CHeaderParams oHeaderParams = new CHeaderParams(ref fHeaderParametrs, ref tmpHeaderData); if (oHeaderParams.Edit() == DialogResult.OK) { tmpHeaderData.NameTemplate = fHeaderParametrs.tspHeaderTemplate_txtNameTemplate.Text; tHeader_Params ot = tHeader_Params.byINDEX(Index); ot.NameTemplate = tmpHeaderData.NameTemplate; ot.TemplateParametrs = SaveToDB(tmpHeaderData); ot.SaveAndFlush(); } }
private void tspHeaderParams_cmbHedearsNames_SelectedIndexChanged(object sender, EventArgs e) { fHeader_Template.panelHeader.Controls.Clear(); if (fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex < 0) { _HeaderData = new CHeaderData(); _HeaderData.NameTemplate = fromDB.NameTemplate; _HeaderData.lst_Parametrs.AddRange(fromDB.lst_Parametrs); } else { var tmpHeaderData = lst_HeaderTemplates[fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex]; _HeaderData = new CHeaderData(); _HeaderData.NameTemplate = tmpHeaderData.NameTemplate; _HeaderData.lst_Parametrs.AddRange(tmpHeaderData.lst_Parametrs); } Paint(_HeaderData); }
public CHeaderParams(ref CHeaderData oHeaderData) { fHeaderParametrs = new frmHeaderParametrs(); this.oHeaderData = oHeaderData; fHeaderParametrs.tspParametrs_Add.Click += tspParametrs_Add_Click; }
private void Paint(CHeaderData oHeaderData) { foreach (var VARIABLE in oHeaderData.lst_Parametrs) { var o = VARIABLE; Paint(o); } }
private void Paint(ref CHeaderData oHeaderData) { for (int i = 0; i < oHeaderData.lst_Parametrs.Count; i++) { var oParametrData = oHeaderData.lst_Parametrs[i]; Paint(ref oParametrData); } }
public CHeaderParams(ref frmHeaderParametrs fHeaderParametrs, ref CHeaderData oHeaderData) { this.fHeaderParametrs = fHeaderParametrs; this.oHeaderData = oHeaderData; fHeaderParametrs.tspParametrs_Add.Click += tspParametrs_Add_Click; }
public void Edit(int Index_Header_Result) { frmHeaderTemplate fHeader_Template = new frmHeaderTemplate(); tHeaderTemplate otHeaderResult = tHeaderTemplate.byINDEX(Index_Header_Result); CServers oServers = new CServers(); CHeaderData oHeaderData = _Read_DB(otHeaderResult.HeaderLine); CHeaderTemplate oHeaderTemplate = new CHeaderTemplate(ref fHeader_Template, ref oHeaderData); fHeader_Template.tspHeader_Result_cmbServers.Text = otHeaderResult.ServerLine; fHeader_Template.tspHeader_Result_bntServers.Click += oServers.tspHeader_Result_bntServers_Click; oServers.Update_CMB(fHeader_Template.tspHeader_Result_cmbServers); fHeader_Template.tspHeader_Result_cmbServers.Text = otHeaderResult.ServerLine; if (fHeader_Template.ShowDialog() == DialogResult.OK) { otHeaderResult.ServerLine = fHeader_Template.tspHeader_Result_cmbServers.Text; otHeaderResult.FileForExtension = oServers.getFile(fHeader_Template.tspHeader_Result_cmbServers.SelectedIndex); otHeaderResult.ServerPassword = oServers.getPassword(fHeader_Template.tspHeader_Result_cmbServers.SelectedIndex); otHeaderResult.HeaderLine = SaveToDB(oHeaderTemplate.HeaderData); otHeaderResult.SaveAndFlush(); Update_LV(fMain.lsvHeader_Result); } }
private void tspHeader_LoadOriginal_Click(object sender, EventArgs e) { _HeaderData = new CHeaderData(); _HeaderData.NameTemplate = fromDB.NameTemplate; _HeaderData.lst_Parametrs.AddRange(fromDB.lst_Parametrs); fHeader_Template.tspHeaderParams_cmbHedearsNames.Text = _HeaderData.NameTemplate; fHeader_Template.panelHeader.Controls.Clear(); Paint(_HeaderData); }
private void _Read_DB(string xmlSting, ref CHeaderData oHeaderData) { var xs = new XmlSerializer(typeof(CParametrData[])); using (XmlReader xmlReader = XmlReader.Create(new StringReader(xmlSting))) { while (xmlReader.Read()) { if (xmlReader.Name == "ArrayOfCParametrData") { oHeaderData.lst_Parametrs.AddRange((CParametrData[])xs.Deserialize(xmlReader)); } } } }
public static CHeaderData Read_DB(string xmlSting) { CHeaderData oHeaderData = null; var xs = new XmlSerializer(typeof(CHeaderData)); using (XmlReader xmlReader = XmlReader.Create(new StringReader(xmlSting))) { while (xmlReader.Read()) { oHeaderData = (CHeaderData)xs.Deserialize(xmlReader); } } return(oHeaderData); }
private string SaveToDB(CHeaderData oHeaderData) { if (oHeaderData == null) { return(string.Empty); } StreamReader aReader = null; MemoryStream aMemoryStream = new MemoryStream(); XmlWriter xmlWriter = null; xmlWriter = new XmlTextWriter(aMemoryStream, Encoding.UTF8); xmlWriter.WriteStartDocument(); //xmlWriter.WriteStartElement("TemplateData"); XmlSerializer xs = new XmlSerializer(typeof(CHeaderData)); XmlSerializerNamespaces xsNameSpace = new XmlSerializerNamespaces(); xsNameSpace.Add("", ""); xs.Serialize(xmlWriter, oHeaderData, xsNameSpace); //xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); aMemoryStream.Position = 0; aReader = new StreamReader(aMemoryStream); return(aReader.ReadToEnd()); }
public void Add() { frmHeaderParametrs fHeaderParametrs = new frmHeaderParametrs(); CHeaderData tmpHeaderData = new CHeaderData(); tmpHeaderData.NameTemplate = OriginalName(); fHeaderParametrs.tspHeaderTemplate_txtNameTemplate.Text = tmpHeaderData.NameTemplate; CHeaderParams oHeaderParams = new CHeaderParams(ref fHeaderParametrs, ref tmpHeaderData); if (fHeaderParametrs.ShowDialog() == DialogResult.OK) { if (string.IsNullOrEmpty(fHeaderParametrs.tspHeaderTemplate_txtNameTemplate.Text)) { tmpHeaderData.NameTemplate = OriginalName(); } else { tmpHeaderData.NameTemplate = fHeaderParametrs.tspHeaderTemplate_txtNameTemplate.Text; } tHeader_Params otHeaderParams = new tHeader_Params(); otHeaderParams.NameTemplate = tmpHeaderData.NameTemplate; otHeaderParams.TemplateParametrs = SaveToDB(tmpHeaderData); otHeaderParams.SaveAndFlush(); lst_HeaderTemplates.Add(tmpHeaderData); } }
public CHeaderTemplate(ref frmHeaderTemplate fHeader_Template) { this.fHeader_Template = fHeader_Template; lst_HeaderTemplates = new List <CHeaderData>(); foreach (var VARIABLE in tHeader_Params.FindAll()) { CHeaderData tmpHeaderData = new CHeaderData(); tmpHeaderData.NameTemplate = VARIABLE.NameTemplate; _Read_DB(VARIABLE.TemplateParametrs, ref tmpHeaderData); lst_HeaderTemplates.Add(tmpHeaderData); } Update_CMB(fHeader_Template.tspHeaderParams_cmbHedearsNames); fHeader_Template.tspHeader_Result_Save.Click += tspHeader_Result_Save_Click; fHeader_Template.tspHeaderParams_btnHedears.Click += tspHeaderParams_btnHedears_Click; fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndexChanged += tspHeaderParams_cmbHedearsNames_SelectedIndexChanged; fHeader_Template.tspHeaderParams_Save.Click += tspHeaderParams_Save_Click; fHeader_Template.tspHeaderParams_Add.Click += tspHeaderParams_AddParam_Click; }
private string SaveToDB(CHeaderData oHeaderData) { StreamReader aReader = null; MemoryStream aMemoryStream = new MemoryStream(); XmlWriter xmlWriter = null; xmlWriter = new XmlTextWriter(aMemoryStream, Encoding.UTF8); xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("TemplateParametrs"); XmlSerializer xs = new XmlSerializer(typeof(CParametrData[])); XmlSerializerNamespaces xsNameSpace = new XmlSerializerNamespaces(); xsNameSpace.Add("", ""); xs.Serialize(xmlWriter, oHeaderData.lst_Parametrs.ToArray(), xsNameSpace); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); aMemoryStream.Position = 0; aReader = new StreamReader(aMemoryStream); return(aReader.ReadToEnd()); }
private void tspHeaderParams_Save_Click(object sender, EventArgs e) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex >= 0) { int Index_HeaderData = fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex; _HeaderData = lst_HeaderTemplates[Index_HeaderData]; tHeader_Params otHeaderParams = tHeader_Params.byINDEX(Index_HeaderData); otHeaderParams.NameTemplate = _HeaderData.NameTemplate; otHeaderParams.TemplateParametrs = SaveToDB(_HeaderData); otHeaderParams.SaveAndFlush(); } else { if (fromDB != null) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.Text == fromDB.NameTemplate) { fromDB = new CHeaderData(); fromDB.NameTemplate = _HeaderData.NameTemplate; fromDB.lst_Parametrs.AddRange(_HeaderData.lst_Parametrs); return; } } if (string.IsNullOrEmpty(fHeader_Template.tspHeaderParams_NameParam.Text)) { fHeader_Template.tspHeaderParams_NameParam.Text = "New_Parametr"; } tspHeaderParams_AddParam_Click(fHeader_Template.tspHeaderParams_Add, e); } }
public void Duplicate(int Index) { CHeaderData tmpHeaderData = new CHeaderData(); tmpHeaderData.NameTemplate = OriginalName(); tmpHeaderData.lst_Parametrs.AddRange(lst_HeaderTemplates[Index].lst_Parametrs); lst_HeaderTemplates.Add(tmpHeaderData); tHeader_Params otHeaderParams = new tHeader_Params(); otHeaderParams.NameTemplate = tmpHeaderData.NameTemplate; otHeaderParams.TemplateParametrs = SaveToDB(tmpHeaderData); otHeaderParams.SaveAndFlush(); }
public void Update_LV(ListView lsv) { lsv.Items.Clear(); StringBuilder tmpSTR; foreach (var VARIABLE in tHeaderTemplate.FindAll()) { tmpSTR = new StringBuilder(); CHeaderData tmpHeaderData = _Read_DB(VARIABLE.HeaderLine); tmpSTR.Append(VARIABLE.ServerLine); foreach (var VAR in tmpHeaderData.lst_Parametrs) { if (string.IsNullOrEmpty(VAR.NameParametr)) { tmpSTR.Append("/" + VAR.ValueParametr); } else { tmpSTR.Append("/" + VAR.NameParametr + "=" + VAR.ValueParametr); } } ListViewItem item = new ListViewItem(tmpSTR.ToString()); item.Tag = VARIABLE.ID_Header_Template; lsv.Items.Add(item); } }
private void lsvTemplateRequest_SelectedIndexChanged(object sender, EventArgs e) { if (fMain.lsvHeader_Result.SelectedItems.Count > 0) { tHeaderTemplate otHeaderTemplate = tHeaderTemplate.byINDEX(fMain.lsvHeader_Result.SelectedIndices[0]); if (string.IsNullOrEmpty(otHeaderTemplate.ServerLine)) { MessageBox.Show("Incorect Server string"); _Request = null; return; } else if (otHeaderTemplate.ServerLine.Substring(0, otHeaderTemplate.ServerLine.IndexOf(' ')) == Request.GET.ToString()) { _Request = Request.GET; } else if (otHeaderTemplate.ServerLine.Substring(0, otHeaderTemplate.ServerLine.IndexOf(' ')) == Request.POST.ToString()) { _Request = Request.POST; } else { MessageBox.Show("Incorect Server string"); _Request = null; return; } if (_Request == Request.GET) { CHeaderData oHeaderData = CHeader_Result.Read_DB(otHeaderTemplate.HeaderLine); StringBuilder str = new StringBuilder(); foreach (var VARIABLE in oHeaderData.lst_Parametrs) { str.Append("/" + VARIABLE.ValueParametr); } URL = otHeaderTemplate.ServerLine.Substring(otHeaderTemplate.ServerLine.IndexOf("HT")) + str; Header = string.Empty; } else { CHeaderData oHeaderData = CHeader_Result.Read_DB(otHeaderTemplate.HeaderLine); StringBuilder str = new StringBuilder(); URL = otHeaderTemplate.ServerLine.Substring(otHeaderTemplate.ServerLine.IndexOf("HT")); foreach (var VARIABLE in oHeaderData.lst_Parametrs) { str.Append("/" + VARIABLE.NameParametr + "=" + VARIABLE.ValueParametr); } Header = str.ToString(); } } else { _Request = null; } txtResult(); }
private void btnDel_Parametr_Click(object sender, EventArgs e) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex >= 0) { _HeaderData = lst_HeaderTemplates[fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex]; } else if (fromDB != null) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.Text == fromDB.NameTemplate) { _HeaderData = new CHeaderData(); _HeaderData.NameTemplate = fromDB.NameTemplate; _HeaderData.lst_Parametrs.AddRange(fromDB.lst_Parametrs); } } Button btnDel_Parametr = sender as Button; Panel tmPanel = (btnDel_Parametr.FindForm() as frmHeaderTemplate).panelHeader; TextBox txt = null; Label lbl = null; foreach (Control VARIABLE in tmPanel.Controls) { if (VARIABLE is TextBox) { if (VARIABLE.Tag.ToInt() == btnDel_Parametr.Tag.ToInt()) { txt = VARIABLE as TextBox; continue; } } if (VARIABLE is Label) { if (VARIABLE.Tag.ToInt() == btnDel_Parametr.Tag.ToInt()) { lbl = VARIABLE as Label; } } } for (int i = 0; i < _HeaderData.lst_Parametrs.Count; i++) { if (_HeaderData.lst_Parametrs[i].NameParametr == lbl.Text) { _HeaderData.lst_Parametrs.RemoveAt(i); break; } } tmPanel.Controls.Remove(lbl); tmPanel.Controls.Remove(txt); tmPanel.Controls.Remove(btnDel_Parametr); }
private void tspHeaderParams_AddParam_Click(object sender, EventArgs e) { //Анонимный метод потому что кроме как в этой функции нигде больше использоваться не будет Action <CHeaderData> Add_Header = (HeaderData) => { CHeaderParams oHeaderParams = new CHeaderParams(ref HeaderData); oHeaderParams.Add(fHeader_Template.tspHeaderParams_NameParam.Text); tHeader_Params otHeaderParams = new tHeader_Params(); otHeaderParams.NameTemplate = HeaderData.NameTemplate; otHeaderParams.TemplateParametrs = SaveToDB(HeaderData); otHeaderParams.SaveAndFlush(); lst_HeaderTemplates.Add(HeaderData); Update_CMB(fHeader_Template.tspHeaderParams_cmbHedearsNames); for (int i = 0; i < fHeader_Template.tspHeaderParams_cmbHedearsNames.Items.Count; i++) { if (HeaderData.NameTemplate == fHeader_Template.tspHeaderParams_cmbHedearsNames.Items[i].ToString()) { fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex = i; } } }; Action <CHeaderData> Add_Parametr = (HeaderData) => { CHeaderParams oHeaderParams = new CHeaderParams(ref HeaderData); oHeaderParams.Add(fHeader_Template.tspHeaderParams_NameParam.Text); Paint(HeaderData.lst_Parametrs[HeaderData.lst_Parametrs.Count - 1]); }; if (fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex < 0) { /*Редкий на первый взгляд но все же возможный сценарий * * Запрос состоит из трех составляющих: * 1. Серверная часть запроса tServers * 2. Заглавие запроса tHeader_Params * 3. Тело запроса (tScenarioTemplate и tPluginTemplate в зависимости от сценария) * * Что б упростить комбинаторику была создана отдельная сущность которая в себе хранит данные * заглавия и серверной части tHeaderTemplate * * tHeaderTemplate = tServers + tHeader_Params * * tServers = tHeaderTemplate.ServerLine + FileForExtension (файл сертификата) * * tHeader_Params = tHeaderTemplate.HeaderLine * * * tHeaderTemplate – отдельная сущность которая полностью автономна. Она никак не связана tHeader_Params и tServers * * * При очень редких условиях если запись будет удалена из tServers и/или tHeader_Params * это никак не отразиться tHeaderTemplate.ServerLine и/или tHeaderTemplate.HeaderLine * * И вот он наступает редкий случай * * Если нет шаблона в tServers БД и/или tHeader_Params в форму frmHeaderTemplate загружаются сохраненные данные из * tHeaderTemplate (включая файл сертификата, который хранится в поле tHeaderTemplate.FileForExtension) * * * И этот шаблон можно редактировать и даже сохранить в tHeaderTemplate. Для этого используется закрытая переменная !fromDB!. * В случае если шаблон который находится в справочнике tHeader_Params актуален она равна null в других случаях * она содержит элемент сохраненный tHeaderTemplate.HeaderLine*/ if (fromDB != null) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.Text == fromDB.NameTemplate) { _HeaderData = new CHeaderData(); _HeaderData.NameTemplate = fromDB.NameTemplate; _HeaderData.lst_Parametrs.AddRange(fromDB.lst_Parametrs); Add_Parametr(_HeaderData); return; } } //Если ТЕКСТ списка "tspHeaderParams_cmbHedearsNames" пуст – будет создан новый элемент CHeaderTemplate //с уникальным именем и к нему будет добавлен ПАРАМЕТР имя которого будет соответсвовать tspHeaderParams_NameParam.Text. //Cозданный элемент CHeaderTemplate будет добавлен и сохранен в БД автоматически if (string.IsNullOrEmpty(fHeader_Template.tspHeaderParams_cmbHedearsNames.Text)) { CHeaderData tmpHeaderData = new CHeaderData(); tmpHeaderData.NameTemplate = OriginalName(); Add_Header(tmpHeaderData); } //Если текст списка "tspHeaderParams_cmbHedearsNames" не пуст – будет создан новый элемент CHeaderTemplate //с именем введенным в поле tspHeaderParams_cmbHedearsNames и к нему будет добавлен ПАРАМЕТР имя которого будет соответсвовать tspHeaderParams_NameParam.Text. //Cозданный элемент CHeaderTemplate будет добавлен и сохранен в БД автоматически else if (!string.IsNullOrEmpty(fHeader_Template.tspHeaderParams_cmbHedearsNames.Text)) { if (Dublicate_Name(fHeader_Template.tspHeaderParams_cmbHedearsNames.Text)) { for (int i = 0; i < fHeader_Template.tspHeaderParams_cmbHedearsNames.Items.Count; i++) { if (fHeader_Template.tspHeaderParams_cmbHedearsNames.Text == fHeader_Template.tspHeaderParams_cmbHedearsNames.Items[i].ToString()) { fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex = i; Add_Parametr(_HeaderData); return; } } } CHeaderData tmpHeaderData = new CHeaderData(); tmpHeaderData.NameTemplate = fHeader_Template.tspHeaderParams_cmbHedearsNames.Text; Add_Header(tmpHeaderData); } } //Если выбран элемент из БД шаблонов списка "tspHeaderParams_cmbHedearsNames" – будет добавлен новый ПАРАМЕТР, //имя которого будет соответсвовать tspHeaderParams_NameParam.Text в элемент CHeaderTemplate. //Обновленный элемент отрисуется на форме, но внесенные изменения будут сохранены только при нажатии клавиши // tspHeaderParams_Save else { CHeaderData tmpHeaderData = lst_HeaderTemplates[fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex]; Add_Parametr(tmpHeaderData); } fHeader_Template.tspHeaderParams_NameParam.Text = string.Empty; }
public CHeaderTemplate(ref frmHeaderTemplate fHeader_Template, ref CHeaderData _HeaderData) : this(ref fHeader_Template) { this._HeaderData = _HeaderData; fromDB = new CHeaderData(); fromDB.NameTemplate = _HeaderData.NameTemplate; fromDB.lst_Parametrs.AddRange(_HeaderData.lst_Parametrs); for (int i = 0; i < fHeader_Template.tspHeaderParams_cmbHedearsNames.Items.Count; i++) { if (_HeaderData.NameTemplate == fHeader_Template.tspHeaderParams_cmbHedearsNames.Items[i].ToString()) { fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex = i; fromDB = null; break; } } if (fHeader_Template.tspHeaderParams_cmbHedearsNames.SelectedIndex == -1) { fHeader_Template.tspHeaderParams_cmbHedearsNames.Text = _HeaderData.NameTemplate; fHeader_Template.tspHeader_LoadOriginal.Visible = true; fHeader_Template.toolStripSeparator1.Visible = true; fHeader_Template.tspHeader_LoadOriginal.Click += tspHeader_LoadOriginal_Click; } fHeader_Template.panelHeader.Controls.Clear(); Paint(_HeaderData); foreach (var VAR in fHeader_Template.panelHeader.Controls) { if (VAR is TextBox) { foreach (var VARIABLE in _HeaderData.lst_Parametrs) { if (((TextBox)VAR).Tag.ToInt() == VARIABLE.ID) { ((TextBox)VAR).Text = VARIABLE.ValueParametr; } } } } fromDB = _HeaderData; }