/// <summary> /// get configuration /// </summary> private void GetConfigInfo() { try { var document = new XmlDocument(); document.Load(AppDomain.CurrentDomain.BaseDirectory + FilePath); var elements = document.GetEnumerator(); while (elements.MoveNext()) { var xmlNode = elements.Current as XmlNode; if (xmlNode.HasChildNodes) { SetDictionary(xmlNode); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void ProtocolPrint(System.Xml.XmlDocument headerDefinition, System.Xml.XmlDocument value, System.Xml.XmlDocument candidates, string docDefinitionPath, string controlSum, bool printToPDF, string obw, string inst, string okr, string candidatesPath, string instJNS) { Framework.ActivateLicense("4E5A-14CC-D4D2-14C2-F558-B99F-C5F5-5E4B"); bool isWielopak = false; string docErrPath = ""; int idxCand2 = 0; XmlNode jns = headerDefinition.SelectSingleNode("/akcja_wyborcza/jns"); string jnskod = jns.Attributes.GetNamedItem("jns_kod").Value; string organNazwa = ""; foreach (XmlNode xObwod in jns) { XmlNode xObwod; if (xObwod.Attributes["nr"].InnerText == obw) { foreach (XmlNode xInst in xObwod) { if (xInst.Attributes["kod"].InnerText == inst) { foreach (XmlNode xobw in xInst) { if (xobw.Attributes["nr"].InnerText == okr && System.Convert.ToInt32(xInst.Attributes["inst_jns"].InnerText) == System.Convert.ToInt32(instJNS)) { organNazwa = xInst.Attributes["organNazwa"].InnerText; break; } } } } } } if (inst == "WBP") { if (jnskod.Substring(0, 4) == "1465" && jnskod.Length == 6) { string candidates2 = candidatesPath.Replace(jnskod + "-" + okr + ".xml", "146501-1.xml"); if (System.IO.File.Exists(candidates2)) { candidates.Load(candidates2); } } if (this.isOneCandidate(candidates)) { docDefinitionPath = docDefinitionPath.Replace("WBP", "WBP_1"); } } if (inst == "RDA") { if (jnskod.Length < 6) { while (jnskod.Length < 6) { jnskod = "0" + jnskod; } } if (jnskod[2] == '7' || jnskod[2] == '6') { if (jnskod.Substring(0, 4) == "1465" && organNazwa == "m.st.") { docDefinitionPath = docDefinitionPath.Replace("RDA", "RDA_M"); string candidates2 = candidatesPath.Replace(jnskod + "-" + okr + ".xml", "146501-" + okr + ".xml"); if (System.IO.File.Exists(candidates2)) { candidates.Load(candidates2); } } if (jnskod.Substring(0, 4) != "1465") { docDefinitionPath = docDefinitionPath.Replace("RDA", "RDA_M"); } } if (jnskod.Substring(0, 4) == "1465" && organNazwa == "Dzielnicy") { docDefinitionPath = docDefinitionPath.Replace("RDA", "RDA_D"); } } XmlNode xmlValues = new System.Xml.XmlDocument(); XmlNode xmlErr = value.SelectSingleNode("/save/hardError"); if (xmlErr == null) { xmlErr = value.SelectSingleNode("/save/hardWarning"); } if (xmlErr == null) { xmlErr = value.SelectSingleNode("/save/softError"); } if (xmlErr != null) { docErrPath = docDefinitionPath.Replace(".docx", "_ERR.docx"); this.newFileErr = docErrPath.Replace(".docx", "TMP.docx"); System.Xml.XmlDocument xmlWalidacja = new System.Xml.XmlDocument(); xmlWalidacja.Load(docDefinitionPath.Replace(".docx", "_Walidacja.xml")); using (DocX docTemplate = DocX.Load(docErrPath)) { xmlErr = value.SelectSingleNode("/save/report"); if (xmlErr != null) { if (xmlErr != null) { foreach (XmlNode xmlField in xmlErr) { foreach (Novacode.Table table in docTemplate.Tables) { int idxCommMember = 0; foreach (Row row in table.Rows) { idxCommMember++; if (row.Cells.Count == 1) { if (row.FindAll("<ERROR>").Count > 0) { string strErr = "[" + xmlField.Name.Substring(0, xmlField.Name.IndexOf("_")) + "]"; string strErrDesc = ""; Row rowNew = row; table.InsertRow(rowNew, idxCommMember); XmlNode xmlErrDesc = xmlWalidacja.SelectSingleNode("/validate_info"); foreach (XmlNode xmlRule in xmlErrDesc) { foreach (XmlNode xmlErrField in xmlRule) { if (xmlErrField.Name == "note") { if (xmlErrField.InnerText.Length >= strErr.Length) { if (xmlErrField.InnerText.Substring(0, strErr.Length) == strErr) { strErrDesc = xmlErrField.InnerText; } } } } } if (strErrDesc != "") { row.ReplaceText("<ERROR>", strErrDesc + System.Environment.NewLine + "Stanowisko komisji: " + xmlField.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { row.ReplaceText("<ERROR>", strErr + System.Environment.NewLine + "Stanowisko komisji: " + xmlField.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } } } } } xmlValues = value.SelectSingleNode("/save/header"); if (xmlValues != null) { foreach (XmlNode xmlField in xmlValues) { System.Collections.Generic.List<int> i = docTemplate.FindAll("<" + xmlField.Name + "*"); int iCount = i.Count; int fCount = xmlField.InnerText.Length; int x = 2; if (iCount >= 1) { iCount++; if (fCount > 0) { docTemplate.ReplaceText("<" + xmlField.Name + ">", xmlField.InnerText.Substring(fCount - 1, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<" + xmlField.Name + ">", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } for (int j = fCount - 2; j >= 0; j--) { if (fCount > 0) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", x, ">" }), xmlField.InnerText.Substring(j, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", x, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } x++; } if (fCount < iCount) { for (int k = fCount; k <= iCount; k++) { if (fCount > 0) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", k, ">" }), "*", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", k, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } if (iCount == 0) { if (fCount > 0) { docTemplate.ReplaceText("<" + xmlField.Name + ">", xmlField.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<" + xmlField.Name + ">", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } xmlValues = value.SelectSingleNode("/save/komisja_sklad"); if (xmlValues != null) { foreach (XmlNode xmlField in xmlValues) { foreach (Novacode.Table table in docTemplate.Tables) { int idxCommMember = 0; foreach (Row row in table.Rows) { idxCommMember++; if (row.Cells.Count > 1) { if (row.FindAll("<osoba_lp>").Count > 0 && xmlField.Attributes["obecny"].InnerText == "True") { Row rowNew = row; table.InsertRow(rowNew, idxCommMember); row.ReplaceText("<osoba_lp>", idxCommMember + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); row.ReplaceText("<osoba_ImieNazwisko>", string.Concat(new string[] { HttpUtility.UrlDecode(xmlField.Attributes["nazwisko"].InnerText), " ", HttpUtility.UrlDecode(xmlField.Attributes["imie"].InnerText), " ", HttpUtility.UrlDecode(xmlField.Attributes["imie2"].InnerText), " - ", xmlField.Attributes["funkcja"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } } } if (controlSum != "") { this.GenerateBarcode(controlSum); int iLength = controlSum.Length; int iCount = iLength / 4; for (int iSign = iCount - 1; iSign > 0; iSign--) { controlSum = controlSum.Insert(iSign * 4, "-"); } docTemplate.ReplaceText("<control_sum>", controlSum, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<control_sum>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } foreach (Novacode.Table table in docTemplate.Tables) { int idxCand3 = 0; foreach (Row row in table.Rows) { if (row.FindAll("<osoba_lp>").Count > 0 || row.FindAll("<ERROR>").Count > 0) { row.Remove(); } idxCand3++; } } docTemplate.ReplaceText("<field_3_14>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_15>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_16>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_17>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_18>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_19>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_20>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.SaveAs(this.newFileErr); } } xmlValues = value.SelectSingleNode("/save/form"); if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step3"); } if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step2"); } if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step1"); } if (xmlValues == null) { this.newFile = docDefinitionPath.Replace(".docx", "TMP.docx"); using (DocX docTemplate = DocX.Load(docDefinitionPath.Replace(".docx", "_EMPTY.docx"))) { xmlValues = headerDefinition.SelectSingleNode("/akcja_wyborcza/jns"); for (int iStale = 1; iStale < 3; iStale++) { string stalaName = ""; string stalaValue = ""; if (iStale == 1) { stalaName = "nrObwodu"; stalaValue = obw; } if (iStale == 2) { stalaName = "nrOkregu"; stalaValue = okr; } System.Collections.Generic.List<int> i = docTemplate.FindAll("<" + stalaName); int iCount = i.Count; int fCount = stalaValue.Length; int x = 2; if (iCount > 1) { docTemplate.ReplaceText("<" + stalaName + ">", stalaValue.Substring(fCount - 1, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); for (int j = fCount - 2; j >= 0; j--) { docTemplate.ReplaceText(string.Concat(new object[] { "<", stalaName, "*", x, ">" }), stalaValue.Substring(j, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); x++; } if (fCount < iCount) { for (int k = fCount; k <= iCount; k++) { docTemplate.ReplaceText(string.Concat(new object[] { "<", stalaName, "*", k, ">" }), "*", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } if (iCount == 1) { docTemplate.ReplaceText("<" + stalaName + ">", stalaValue, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } System.Collections.IEnumerator enumerator; if (xmlValues.Attributes.Count > 0) { enumerator = xmlValues.Attributes.GetEnumerator(); try { while (enumerator.MoveNext()) { XmlAttribute xAttr = (XmlAttribute)enumerator.Current; System.Collections.Generic.List<int> i = docTemplate.FindAll("<" + xAttr.Name); int iCount = i.Count; int fCount = xAttr.InnerText.Length; int x = 2; if (iCount > 1) { docTemplate.ReplaceText("<" + xAttr.Name + ">", xAttr.InnerText.Substring(fCount - 1, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); for (int j = fCount - 2; j >= 0; j--) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xAttr.Name, "*", x, ">" }), xAttr.InnerText.Substring(j, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); x++; } if (fCount < iCount) { for (int k = fCount; k <= iCount; k++) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xAttr.Name, "*", k, ">" }), "*", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } if (iCount == 1) { docTemplate.ReplaceText("<" + xAttr.Name + ">", xAttr.Value, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } finally { System.IDisposable disposable = enumerator as System.IDisposable; if (disposable != null) { disposable.Dispose(); } } } enumerator = xmlValues.GetEnumerator(); try { while (enumerator.MoveNext()) { XmlNode xObwod = (XmlNode)enumerator.Current; if (xObwod.Name == "obw" && xObwod.Attributes.GetNamedItem("nr") != null && xObwod.Attributes.GetNamedItem("nr").Value == obw) { docTemplate.ReplaceText("<siedziba>", xObwod.Attributes["siedziba"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); foreach (XmlNode xInst in xObwod) { if (xInst.Name == "inst" && xInst.Attributes.GetNamedItem("kod") != null && xInst.Attributes.GetNamedItem("kod").Value == inst && xInst.Attributes.GetNamedItem("inst_jns") != null && xInst.Attributes.GetNamedItem("inst_jns").Value == instJNS) { foreach (XmlAttribute xAttr in xInst.Attributes) { if (xAttr.Name.ToUpper() == "ORGANNAZWA" || xAttr.Name.ToUpper() == "NAZWARADYDOPEL") { docTemplate.ReplaceText("<" + xAttr.Name + ">", xAttr.InnerText.ToUpper(), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<" + xAttr.Name.ToUpper() + ">", xAttr.InnerText.ToUpper(), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } docTemplate.ReplaceText("<" + xAttr.Name + ">", xAttr.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<" + xAttr.Name.ToUpper() + ">", xAttr.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } foreach (XmlNode xOkreg in xInst) { if (xOkreg.Name == "okr" && xOkreg.Attributes.GetNamedItem("nr") != null && xOkreg.Attributes.GetNamedItem("nr").Value == okr) { docTemplate.ReplaceText("<siedzibaR>", xOkreg.Attributes["siedzibaR"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<siedzibaL>", xOkreg.Attributes["siedzibaL"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<lmandatow>", xOkreg.Attributes["lmandatow"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } } } } finally { System.IDisposable disposable = enumerator as System.IDisposable; if (disposable != null) { disposable.Dispose(); } } XmlNode xmlListy = candidates.SelectSingleNode("/listy"); int listaId = 0; bool listaSkreslona = false; enumerator = xmlListy.GetEnumerator(); try { while (enumerator.MoveNext()) { XmlNode xmlLista = (XmlNode)enumerator.Current; listaSkreslona = (xmlLista.Attributes["lista_status"].InnerText == "U"); listaId++; if (isWielopak) { idxCand2 = 0; } foreach (Novacode.Table table in docTemplate.Tables) { int idxCand3 = 0; foreach (Row row in table.Rows) { if (row.FindAll("<Lista_L" + listaId + ">").Count > 0) { isWielopak = true; row.ReplaceText("<Lista_L" + listaId + ">", xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); row.ReplaceText("<Lista_L" + listaId + "_skrot>", xmlLista.Attributes["oznaczenie_listy"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } if (row.FindAll("<Kandydtat_L" + listaId + "_liczba>").Count > 0 || row.FindAll("<Kandydtat_L" + listaId + "_razem>").Count > 0) { if (listaSkreslona && (this.newFile.Contains("RDA") || this.newFile.Contains("RDP") || this.newFile.Contains("RDW"))) { row.Cells[1].InsertParagraph("X"); row.Cells[2].InsertParagraph("X"); row.Cells[3].InsertParagraph("X"); row.Cells[4].InsertParagraph("X"); row.Cells[5].InsertParagraph("X"); } if (listaSkreslona && this.newFile.Contains("WBPTMP.docx")) { row.Cells[2].InsertParagraph("X"); row.Cells[3].InsertParagraph("X"); row.Cells[4].InsertParagraph("X"); row.Cells[5].InsertParagraph("X"); row.Cells[6].InsertParagraph("X"); } row.ReplaceText("<Kandydtat_L" + listaId + "_liczba>", "Liczba głosów ważnych oddanych na listę:", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); row.ReplaceText("<Kandydtat_L" + listaId + "_razem>", "Razem", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } if (row.FindAll("<kandydat_").Count > 0 || row.FindAll("<Kandydtat_L" + listaId + "_nazwisko_imie>").Count > 0) { idxCand3++; foreach (XmlNode xmlPerson in xmlLista) { if (xmlPerson.Attributes["status"].InnerText == "A" || xmlPerson.Attributes["status"].InnerText == "S") { idxCand2++; int iLP; if (this.newFile.Contains("RDATMP.docx") || this.newFile.Contains("WBPTMP.docx") || this.newFile.Contains("WBP_1TMP.docx")) { iLP = idxCand2; } else { iLP = idxCand2 + 2; } Row rowNew2 = table.InsertRow(row, iLP); rowNew2.ReplaceText("<kandydat_lp>", idxCand2 + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_lp>", idxCand2 + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_nazwisko_imie>", string.Concat(new string[] { xmlPerson.Attributes["nazwisko"].InnerText.ToUpper(), " ", xmlPerson.Attributes["imie1"].InnerText, " ", xmlPerson.Attributes["imie2"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<kandydat_nazwisko_imie>", string.Concat(new string[] { xmlPerson.Attributes["nazwisko"].InnerText.ToUpper(), " ", xmlPerson.Attributes["imie1"].InnerText, " ", xmlPerson.Attributes["imie2"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); if (xmlPerson.Attributes["kdt_plec"].InnerText == "K") { if (this.newFile.Contains("WBP")) { if (this.newFile.Contains("WBP_1")) { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_skrot"].InnerText + ", Lista nr " + xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_nazwa"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { if (this.newFile.Contains("WBP")) { if (this.newFile.Contains("WBP_1")) { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_skrot"].InnerText + ", Lista nr " + xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_nazwa"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } if ((xmlPerson.Attributes["status"].InnerText == "S" || listaSkreslona) && (this.newFile.Contains("RDA") || this.newFile.Contains("RDP") || this.newFile.Contains("RDW")) && rowNew2.Cells.Count == 7) { rowNew2.Cells[2].InsertParagraph("X"); rowNew2.Cells[3].InsertParagraph("X"); rowNew2.Cells[4].InsertParagraph("X"); rowNew2.Cells[5].InsertParagraph("X"); rowNew2.Cells[6].InsertParagraph("X"); } if ((xmlPerson.Attributes["status"].InnerText == "S" || listaSkreslona) && this.newFile.Contains("WBPTMP.docx") && rowNew2.Cells.Count == 8) { rowNew2.Cells[3].InsertParagraph("X"); rowNew2.Cells[4].InsertParagraph("X"); rowNew2.Cells[5].InsertParagraph("X"); rowNew2.Cells[6].InsertParagraph("X"); rowNew2.Cells[7].InsertParagraph("X"); } } } } } } } } finally { System.IDisposable disposable = enumerator as System.IDisposable; if (disposable != null) { disposable.Dispose(); } } docTemplate.SaveAs(this.newFile); } } else { this.newFile = docDefinitionPath; using (DocX docTemplate = DocX.Load(this.newFile)) { this.newFile = docDefinitionPath.Replace(".docx", "TMP.docx"); XmlNode xmlListy = candidates.SelectSingleNode("/listy"); int listaId = 0; bool listaSkreslona = false; foreach (XmlNode xmlLista in xmlListy) { listaSkreslona = (xmlLista.Attributes["lista_status"].InnerText == "U"); listaId++; if (isWielopak) { idxCand2 = 0; } foreach (Novacode.Table table in docTemplate.Tables) { int idxCand3 = 0; foreach (Row row in table.Rows) { if (row.FindAll("<Lista_L" + listaId + ">").Count > 0) { isWielopak = true; row.ReplaceText("<Lista_L" + listaId + ">", xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); row.ReplaceText("<Lista_L" + listaId + "_skrot>", xmlLista.Attributes["oznaczenie_listy"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } if (row.FindAll("<Lista_" + listaId + ">").Count > 0 && listaSkreslona) { string strNazwaListy = "Lista_" + listaId; System.Collections.Generic.List<int> iii = row.FindAll("<" + strNazwaListy); int iiiCount = iii.Count; row.ReplaceText("<" + strNazwaListy + ">", "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); for (int kk = 0; kk <= iiiCount; kk++) { row.ReplaceText(string.Concat(new object[] { "<", strNazwaListy, "*", kk, ">" }), "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } if (row.FindAll("<razem_L" + listaId + ">").Count > 0 && listaSkreslona) { string strNazwaListy = "razem_L" + listaId; System.Collections.Generic.List<int> iii = row.FindAll("<" + strNazwaListy); int iiiCount = iii.Count; row.ReplaceText("<" + strNazwaListy + ">", "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); for (int kk = 0; kk <= iiiCount; kk++) { row.ReplaceText(string.Concat(new object[] { "<", strNazwaListy, "*", kk, ">" }), "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } if (row.FindAll("<kandydat_").Count > 0 || row.FindAll("<Kandydtat_L" + listaId + "_nazwisko_imie>").Count > 0) { idxCand3++; foreach (XmlNode xmlPerson in xmlLista) { if (xmlPerson.Attributes["status"].InnerText == "A" || xmlPerson.Attributes["status"].InnerText == "S") { idxCand2++; int iLP; if (this.newFile.Contains("RDATMP.docx") || this.newFile.Contains("WBPTMP.docx") || this.newFile.Contains("WBP_1TMP.docx")) { iLP = idxCand2; } else { iLP = idxCand2 + 2; } Row rowNew2 = table.InsertRow(row, iLP); rowNew2.ReplaceText("<kandydat_lp>", idxCand2 + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_lp>", idxCand2 + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_nazwisko_imie>", string.Concat(new string[] { xmlPerson.Attributes["nazwisko"].InnerText.ToUpper(), " ", xmlPerson.Attributes["imie1"].InnerText, " ", xmlPerson.Attributes["imie2"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); rowNew2.ReplaceText("<kandydat_nazwisko_imie>", string.Concat(new string[] { xmlPerson.Attributes["nazwisko"].InnerText.ToUpper(), " ", xmlPerson.Attributes["imie1"].InnerText, " ", xmlPerson.Attributes["imie2"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); if (xmlPerson.Attributes["kdt_plec"].InnerText == "K") { if (this.newFile.Contains("WBP")) { if (this.newFile.Contains("WBP_1")) { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_skrot"].InnerText + ", Lista nr " + xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_zgloszony_przez>", "zgłoszona przez " + xmlLista.Attributes["komitet_nazwa"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { if (this.newFile.Contains("WBP")) { if (this.newFile.Contains("WBP_1")) { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_skrot"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } else { rowNew2.ReplaceText("<kandydat_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_skrot"].InnerText + ", Lista nr " + xmlLista.Attributes["nrlisty"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } rowNew2.ReplaceText("<Kandydtat_L" + listaId + "_zgloszony_przez>", "zgłoszony przez " + xmlLista.Attributes["komitet_nazwa"].InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } if (xmlPerson.Attributes["status"].InnerText == "S" || listaSkreslona) { string strKandS; if (isWielopak) { strKandS = "Kandydtat_L" + listaId; } else { strKandS = "kandydat"; } System.Collections.Generic.List<int> iii = rowNew2.FindAll("<" + strKandS + "_g"); int iiiCount = iii.Count; rowNew2.ReplaceText("<" + strKandS + "_g>", "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); for (int kk = 0; kk <= iiiCount; kk++) { rowNew2.ReplaceText(string.Concat(new object[] { "<", strKandS, "_g*", kk, ">" }), "X", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } else { XmlNode xmlSaveValues = value.SelectSingleNode("/save/form"); if (xmlSaveValues == null) { xmlSaveValues = value.SelectSingleNode("/save/step3"); } if (xmlSaveValues == null) { xmlSaveValues = value.SelectSingleNode("/save/step2"); } if (xmlSaveValues == null) { xmlSaveValues = value.SelectSingleNode("/save/step1"); } foreach (XmlNode xmlSaveField in xmlSaveValues) { if (xmlSaveField.Attributes.Count > 0) { if (xmlSaveField.Attributes["id_kand"].InnerText == xmlPerson.Attributes["id_kand"].InnerText && xmlPerson.Attributes["status"].InnerText == "A") { string strKand; if (xmlSaveField.Name.Substring(0, 11) == "Kandydtat_L") { strKand = xmlSaveField.Name.Substring(0, 13); if (strKand.Substring(12, 1) == "_") { strKand = xmlSaveField.Name.Substring(0, 12); } } else { strKand = "kandydat"; } System.Collections.Generic.List<int> ii = rowNew2.FindAll("<" + strKand + "_g"); int iiCount = ii.Count; int ffCount = xmlSaveField.InnerText.Length; int xx = 2; if (iiCount > 1) { if (ffCount > 0) { rowNew2.ReplaceText("<" + strKand + "_g>", xmlSaveField.InnerText.Substring(ffCount - 1, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText("<" + strKand + "_g>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } for (int jj = ffCount - 2; jj >= 0; jj--) { if (ffCount > 0) { rowNew2.ReplaceText(string.Concat(new object[] { "<", strKand, "_g*", xx, ">" }), xmlSaveField.InnerText.Substring(jj, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText(string.Concat(new object[] { "<", strKand, "_g*", xx, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } xx++; } if (ffCount < iiCount) { for (int kk = ffCount; kk <= iiCount; kk++) { if (ffCount > 0) { rowNew2.ReplaceText(string.Concat(new object[] { "<", strKand, "_g*", kk, ">" }), "*", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { rowNew2.ReplaceText(string.Concat(new object[] { "<", strKand, "_g*", kk, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } if (iiCount == 1) { rowNew2.ReplaceText("<" + strKand + "_g>", xmlSaveField.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } } } } } } } } for (int a = 1; a <= 3; a++) { xmlValues = value.SelectSingleNode("/save/header"); if (a == 2) { xmlValues = value.SelectSingleNode("/save/form"); if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step4"); } if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step3"); } if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step2"); } if (xmlValues == null) { xmlValues = value.SelectSingleNode("/save/step1"); } } if (a == 3) { xmlValues = value.SelectSingleNode("/save/komisja_sklad"); } if (xmlValues != null) { foreach (XmlNode xmlField in xmlValues) { if (a == 3) { foreach (Novacode.Table table in docTemplate.Tables) { int idxCommMember = 0; foreach (Row row in table.Rows) { idxCommMember++; if (row.Cells.Count > 1) { if (row.FindAll("<osoba_lp>").Count > 0 && xmlField.Attributes["obecny"].InnerText == "True") { Row rowNew = row; table.InsertRow(rowNew, idxCommMember); row.ReplaceText("<osoba_lp>", idxCommMember + ".", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); row.ReplaceText("<osoba_ImieNazwisko>", string.Concat(new string[] { HttpUtility.UrlDecode(xmlField.Attributes["nazwisko"].InnerText), " ", HttpUtility.UrlDecode(xmlField.Attributes["imie"].InnerText), " ", HttpUtility.UrlDecode(xmlField.Attributes["imie2"].InnerText), " - ", xmlField.Attributes["funkcja"].InnerText }), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } } else { System.Collections.Generic.List<int> i = docTemplate.FindAll("<" + xmlField.Name + "*"); int iCount = i.Count; int fCount = xmlField.InnerText.Length; int x = 2; if (iCount >= 1) { iCount++; if (fCount > 0) { docTemplate.ReplaceText("<" + xmlField.Name + ">", xmlField.InnerText.Substring(fCount - 1, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<" + xmlField.Name + ">", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } for (int j = fCount - 2; j >= 0; j--) { if (fCount > 0) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", x, ">" }), xmlField.InnerText.Substring(j, 1), false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", x, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } x++; } if (fCount < iCount) { for (int k = fCount; k <= iCount; k++) { if (fCount > 0) { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", k, ">" }), "*", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText(string.Concat(new object[] { "<", xmlField.Name, "*", k, ">" }), "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } } } if (iCount == 0) { if (fCount > 0) { docTemplate.ReplaceText("<" + xmlField.Name + ">", xmlField.InnerText, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<" + xmlField.Name + ">", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } } if (xmlField.Attributes.Count > 0 && xmlField.Name.Substring(0, 11) == "Kandydtat_L") { isWielopak = true; } } } } } docTemplate.SaveAs(this.newFile); } } using (DocX docTemplate = DocX.Load(this.newFile)) { foreach (Novacode.Table table in docTemplate.Tables) { foreach (Row row in table.Rows) { if (row.Cells.Count > 1) { if (row.FindAll("<osoba_lp>").Count > 0 || row.FindAll("<Kandydtat_L").Count > 0 || row.FindAll("<kandydat_").Count > 0) { row.Remove(); } } } } docTemplate.ReplaceText("<field_3_14>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_15>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_16>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_17>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_18>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_19>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); docTemplate.ReplaceText("<field_3_20>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); if (controlSum != "") { this.GenerateBarcode(controlSum); int iLength = controlSum.Length; int iCount = iLength / 4; for (int iSign = iCount - 1; iSign > 0; iSign--) { controlSum = controlSum.Insert(iSign * 4, "-"); } docTemplate.ReplaceText("<control_sum>", controlSum, false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } else { docTemplate.ReplaceText("<control_sum>", "", false, System.Text.RegularExpressions.RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch); } docTemplate.Save(); } if (isWielopak) { for (int iTab = 1; iTab < 20; iTab++) { this.DocxDeleteTables(this.newFile); } } if (this.imageBarCode != null && this.newFile != "") { this.DocxInsertBarcode(this.newFile); } if (this.imageBarCode != null && this.newFileErr != "") { this.DocxInsertBarcode(this.newFileErr); } if (!printToPDF) { if (this.printDialog1.ShowDialog() == DialogResult.OK) { if (this.newFileErr != "") { System.Threading.Thread printThread = new System.Threading.Thread(new System.Threading.ThreadStart(this.PrintWarnings)); printThread.Start(); } System.Threading.Thread printThread2 = new System.Threading.Thread(new System.Threading.ThreadStart(this.Print)); printThread2.Start(); } } else { if (docErrPath != "" && this.newFileErr != "") { SaveFileDialog sd = new SaveFileDialog(); sd.Title = "Zapisz raport ostrzeżeń jako PDF..."; sd.Filter = "Pliki PDF | *.pdf"; sd.DefaultExt = "pdf"; sd.AddExtension = true; sd.FileName = System.IO.Path.GetFileName(docErrPath).Replace("TMP.docx", ".pdf"); if (sd.ShowDialog() == DialogResult.OK) { PDFEncoderParams pem = new PDFEncoderParams(); DocumentManager dm = new DocumentManager(); dm.LoadDocument(this.newFileErr, ""); if (sd.FileName.Contains(".")) { sd.FileName.Remove(sd.FileName.IndexOf("."), sd.FileName.Length - 1 - sd.FileName.IndexOf(".")); sd.FileName += ".pdf"; } else { sd.FileName += ".pdf"; } dm.ConvertDocument(dm.Documents[0], sd.FileName, "pdf", null, pem, ""); dm.CloseAllDocuments(); } } SaveFileDialog sd2 = new SaveFileDialog(); sd2.Title = "Zapisz protokół jako PDF..."; sd2.Filter = "Pliki PDF | *.pdf"; sd2.DefaultExt = "pdf"; sd2.AddExtension = true; sd2.FileName = System.IO.Path.GetFileName(this.newFile).Replace("TMP.docx", ".pdf"); if (sd2.ShowDialog() == DialogResult.OK) { PDFEncoderParams pem2 = new PDFEncoderParams(); DocumentManager dm2 = new DocumentManager(); dm2.LoadDocument(this.newFile, ""); if (sd2.FileName.Contains(".")) { sd2.FileName.Remove(sd2.FileName.IndexOf("."), sd2.FileName.Length - 1 - sd2.FileName.IndexOf(".")); sd2.FileName += ".pdf"; } else { sd2.FileName += ".pdf"; } dm2.ConvertDocument(dm2.Documents[0], sd2.FileName, "pdf", null, pem2, ""); dm2.CloseAllDocuments(); } } }
public void Rebuild() { Program.AssertOnEventThread(); if (_xenObject is DockerContainer) { RefreshTime.Text = String.Format(Messages.LAST_REFRESH_SUCCESS, DateTime.Now.ToString("HH:mm:ss")); try { string expectResult = "True"; var args = new Dictionary<string, string>{}; args["vmuuid"] = _vmResideOn.uuid; args["object"] = _container.uuid; Session session = _container.Connection.DuplicateSession(); string CurrentResult = XenAPI.Host.call_plugin(session, _hostResideOn.opaque_ref, "xscontainer", "get_inspect", args); if (_resultCache == CurrentResult) return; else _resultCache = CurrentResult; DetailtreeView.Nodes.Clear(); if (CurrentResult.StartsWith(expectResult)) { CurrentResult = CurrentResult.Substring(expectResult.Length); XmlDocument doc = new XmlDocument(); doc.LoadXml(CurrentResult); IEnumerator ienum = doc.GetEnumerator(); XmlNode docker_inspect; while (ienum.MoveNext()) { docker_inspect = (XmlNode)ienum.Current; if (docker_inspect.NodeType != XmlNodeType.XmlDeclaration) { TreeNode rootNode = new TreeNode(); CreateTree(docker_inspect, rootNode); DetailtreeView.Nodes.Add(rootNode); } } } else { RefreshTime.Text = Messages.LAST_REFRESH_FAIL; } } catch (Failure failure) { RefreshTime.Text = Messages.LAST_REFRESH_FAIL; log.WarnFormat("Plugin call xscontainer.get_inspect({0}) on {1} failed with {2}", _container.uuid, _hostResideOn.Name, failure.Message); throw; } } }
public void Rebuild(string currentResult) { Program.AssertOnEventThread(); RefreshTime.Text = string.Format(Messages.LAST_REFRESH_SUCCESS, HelpersGUI.DateTimeToString(DateTime.Now, Messages.DATEFORMAT_HMS, true)); try { if (cachedResult == currentResult) return; cachedResult = currentResult; DetailtreeView.Nodes.Clear(); XmlDocument doc = new XmlDocument(); doc.LoadXml(currentResult); IEnumerator firstEnum = doc.GetEnumerator(); XmlNode node; while (firstEnum.MoveNext()) { node = (XmlNode)firstEnum.Current; if (node.NodeType != XmlNodeType.XmlDeclaration) { //we are on the root element now (docker_inspect) //using the following enumerator to iterate through the children nodes and to build related sub-trees //note that we are intentionally not adding the root node to the tree (UX decision) var secondEnum = node.GetEnumerator(); while (secondEnum.MoveNext()) { //recursively building the tree TreeNode rootNode = new TreeNode(); CreateTree((XmlNode)secondEnum.Current, rootNode); //adding the current sub-tree to the TreeView DetailtreeView.Nodes.Add(rootNode); } } } } catch (Failure) { ShowInvalidInfo(); } }