using Microsoft.Office.InfoPath; using System; using System.Xml; using System.Xml.XPath; using System.Xml.Serialization; using System.IO; using System.Collections.Generic; using System.Text; namespace ServiceRequestForm { public partial class FormCode { public void InternalStartup() { EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading); EventManager.XmlEvents["/dfs:myFields/dfs:dataFields/dfs:ModuleList/@Module_Name", "ModuleList"].Changed += new XmlChangedEventHandler(ModuleList__Module_Name_attr_Changed); EventManager.XmlEvents["/my:ITServiceRequest/my:request/my:applicationName"].Changed += new XmlChangedEventHandler(applicationName_Changed); EventManager.XmlEvents["/my:ITServiceRequest/my:request/my:moduleName"].Changed += new XmlChangedEventHandler(moduleName_Changed); EventManager.XmlEvents["/my:ITServiceRequest/my:request/my:moduleName"].Validating += new XmlValidatingEventHandler(moduleName_Validating); ((ButtonEvent)EventManager.ControlEvents["CTRL10_5"]).Clicked += new ClickedEventHandler(CTRL10_5_Clicked); ((ButtonEvent)EventManager.ControlEvents["CTRL465_5"]).Clicked += new ClickedEventHandler(CTRL465_5_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnUserApproval"]).Clicked += new ClickedEventHandler(btnUserApproval_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnITReview"]).Clicked += new ClickedEventHandler(btnITReview_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnSysDesign"]).Clicked += new ClickedEventHandler(btnSysDesign_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnSpecSignOff"]).Clicked += new ClickedEventHandler(btnSpecSignOff_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnUAT"]).Clicked += new ClickedEventHandler(btnUAT_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnDeploySO"]).Clicked += new ClickedEventHandler(btnDeploySO_Clicked); ((ButtonEvent)EventManager.ControlEvents["btnDeploy"]).Clicked += new ClickedEventHandler(btnDeploy_Clicked); ((ButtonEvent)EventManager.ControlEvents["CTRL441_5"]).Clicked += new ClickedEventHandler(CTRL441_5_Clicked); } public void FormEvents_Loading(object sender, LoadingEventArgs e) { XPathNavigator mainNav = this.MainDataSource.CreateNavigator(); string refNo = mainNav.SelectSingleNode("/my:ITServiceRequest/my:system/my:refNo", this.NamespaceManager).Value; if (refNo.Length > 0) { bool hasHistory = bool.Parse(mainNav.SelectSingleNode("/my:ITServiceRequest/my:system/my:hasHistory", this.NamespaceManager).Value); if (hasHistory) { DataSource approvalHistoryDataSource = this.DataSources["Approval History"]; approvalHistoryDataSource.QueryConnection.Execute(); XPathNavigator xnav = approvalHistoryDataSource.CreateNavigator().SelectSingleNode("/dfs:myFields/dfs:dataFields", this.NamespaceManager); XPathNavigator historyNav = mainNav.SelectSingleNode("/my:ITServiceRequest/my:history", this.NamespaceManager); string query = string.Format("/dfs:dataFields/dfs:Approval_History[@Ref_No!='{0}']", refNo); XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(xnav.OuterXml); XmlNodeList nodes = xDoc.SelectNodes(query, this.NamespaceManager); foreach (XmlNode node in nodes) node.RemoveAll(); foreach (XmlNode node in xDoc.ChildNodes[0].ChildNodes) { for (int i = 0; i < node.Attributes.Count - 1; i++) { if (node.Attributes[i].LocalName == "Ref_No") node.Attributes.RemoveAt(i); } } string myNamespace = string.Format(@"xmlns:my=""{0}""", this.NamespaceManager.LookupNamespace("my")); string dfsNamespace = string.Format(@"xmlns:dfs=""{0}""", this.NamespaceManager.LookupNamespace("dfs")); string output = xDoc.InnerXml.Replace("dfs:", "my:").Replace("dataFields", "history"); output = output.Replace(dfsNamespace, myNamespace); output = output.Replace("Approval_Role", "my:Approval_Role"); output = output.Replace("Approver_Name", "my:Approver_Name"); output = output.Replace("Decision=", "my:Decision="); output = output.Replace("Decision_Date", "my:Decision_Date"); output = output.Replace("Document_Url_1", "my:Document_Url_1"); output = output.Replace("Document_Name_1", "my:Document_Name_1"); output = output.Replace("Document_Type_1", "my:Document_Type_1"); output = output.Replace("Document_Url_2", "my:Document_Url_2"); output = output.Replace("Document_Name_2", "my:Document_Name_2"); output = output.Replace("Document_Type_2", "my:Document_Type_2"); output = output.Replace("Document_Url_3", "my:Document_Url_3"); output = output.Replace("Document_Name_3", "my:Document_Name_3"); output = output.Replace("Document_Type_3", "my:Document_Type_3"); output = output.Replace("Comments", "my:Comments"); output = output.Replace("", ""); historyNav.OuterXml = output; } } else { string strMonth = "", strDay = "", strHour = "", strMinutes = "", strSecond = "", strMiliSecod = ""; //refNo = DateTime.Now.Ticks.ToString(); if (DateTime.Now.Month.ToString().Length == 1) strMonth = "0" + DateTime.Now.Month.ToString(); else strMonth = DateTime.Now.Month.ToString(); if (DateTime.Now.Day.ToString().Length == 1) strDay = "0" + DateTime.Now.Day.ToString(); else strDay = DateTime.Now.Day.ToString(); if (DateTime.Now.Hour.ToString().Length == 1) strHour = "0" + DateTime.Now.Hour.ToString(); else strHour = DateTime.Now.Hour.ToString(); if (DateTime.Now.Minute.ToString().Length == 1) strMinutes = "0" + DateTime.Now.Minute.ToString(); else strMinutes = DateTime.Now.Minute.ToString(); if (DateTime.Now.Second.ToString().Length == 1) strSecond = "0" + DateTime.Now.Minute.ToString(); else strSecond = DateTime.Now.Second.ToString(); if (DateTime.Now.Millisecond.ToString().Length > 2) strMiliSecod = DateTime.Now.Millisecond.ToString().Substring(DateTime.Now.Millisecond.ToString().Length - 2, 2); else if (DateTime.Now.Millisecond.ToString().Length == 1) strMiliSecod = "0" + DateTime.Now.Millisecond.ToString(); else strMiliSecod = DateTime.Now.Millisecond.ToString(); refNo = DateTime.Now.Year.ToString() + strMonth + strDay + strHour + strMinutes + strSecond + DateTime.Now.Millisecond.ToString(); //refNo = DateTime.Now.ToShortDateString().ToString() + DateTime.Now.ToShortTimeString().ToString() + DateTime.Now.Millisecond.ToString(); mainNav.SelectSingleNode("/my:ITServiceRequest/my:system/my:refNo", this.NamespaceManager).SetValue(refNo); } string HODAlias = ""; string HODName = ""; GetUserLogonName("HOD"); HODAlias = mainNav.SelectSingleNode("/my:ITServiceRequest/my:OrganizationHierarchy/my:OrganizationHierarchyList/@my:Logon_Name", this.NamespaceManager).InnerXml.ToString(); mainNav.SelectSingleNode("/my:ITServiceRequest/my:approval/my:userHODAlias", this.NamespaceManager).SetValue(HODAlias); HODName = mainNav.SelectSingleNode("/my:ITServiceRequest/my:OrganizationHierarchy/my:OrganizationHierarchyList/@my:Display_Name", this.NamespaceManager).Value; mainNav.SelectSingleNode("/my:ITServiceRequest/my:approval/my:userHOD", this.NamespaceManager).SetValue(HODName); GetUserLogonName("HOD2"); // Retrieve the pictures in the Picture Library XPathNavigator secDSMainNav = DataSources["MyPictures"].CreateNavigator(); XPathNodeIterator iter = secDSMainNav.Select( "/dfs:datafields/dfs:MyPictures", NamespaceManager); // Loop through all the pictures in the Picture Library while (iter.MoveNext()) { XPathNavigator pic = iter.Current; string title = pic.SelectSingleNode("@Title", NamespaceManager).Value; string url = "http://db2oltp3:81/MyPictures/" + title + ".png"; addImageToTable(title, url); } } public void addImageToTable(string title, string url) { // Add the picture to the repeating table XPathNavigator mainDSNav = MainDataSource.CreateNavigator(); mainDSNav.SelectSingleNode("/my:ITServiceRequest", NamespaceManager).AppendChild(doc.DocumentElement.CreateNavigator()); } } }