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