private void LoadHeaders(Report report) { BindColumns(lbUnselectedColumns, report.UnselectedColumns); BindColumns(lbIgnorableColumns, report.UnselectedColumns); BindColumns(lbMatchingColumns, report.MatchingColumns); BindColumns(lbIgnoredColumns, report.IgnoredColumns); }
private void LoadHeadersFirstTime(Report report, TabControlCancelEventArgs e) { if (ServerFieldsAllFilled(true)) { try { report.UnselectedColumns = p.GetColumns( report.Name, tbNewHostName.Text, int.Parse(tbNewSoapPort.Text), int.Parse(tbNewGenevaPort.Text), tbNewUnixUserName.Text, tbNewUnixPassword.Text, tbNewRunrepUserName.Text, tbNewRunrepPassword.Text, tbNewSSH.Text, tbWinSCPPath.Text, tbNewRSLFilePath.Text, (tbWindowsOutput.Text + (tbWindowsOutput.Text.EndsWith(@"\") || tbWindowsOutput.Text.EndsWith("/") ? "" : @"\")), tbNewHPNo.Text ); } catch (Exception ex) { MessageBox.Show("Could not retrieve the headers of the report in the new server." + " Make sure the given server's information is correct and " + "\"servmgr\" and \"dbaserver\" are up." + "\n\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); if (e != null) e.Cancel = true; } } else { try { report.UnselectedColumns = p.GetColumns( report.Name, tbOldHostName.Text, int.Parse(tbOldSoapPort.Text), int.Parse(tbOldGenevaPort.Text), tbOldUnixUserName.Text, tbOldUnixPassword.Text, tbOldRunrepUserName.Text, tbOldRunrepPassword.Text, tbOldSSH.Text, tbWinSCPPath.Text, tbOldRSLFilePath.Text, (tbWindowsOutput.Text + (tbWindowsOutput.Text.EndsWith(@"\") || tbWindowsOutput.Text.EndsWith("/") ? "" : @"\")), tbOldHPNo.Text ); } catch (Exception ex) { MessageBox.Show("Could not retrieve the headers of the report in the old server." + " Make sure the given server's information is correct and " + "\"servmgr\" and \"dbaserver\" are up." + "\n\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); if (e != null) e.Cancel = true; } } LoadHeaders(report); }
private void tsOpen_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Title = "Open"; dialog.Filter = "XML files (*.xml)|*.xml"; dialog.RestoreDirectory = true; if (dialog.ShowDialog() == DialogResult.OK) { StartLoading(); CleanAll(); try { #region XML XDocument xmlDoc = XDocument.Load(dialog.FileName); #region Configuration var config = new { WinSCPPath = xmlDoc.XPathSelectElement("//diff_tool/config/winscp_path").Value, WindowsOutput = xmlDoc.XPathSelectElement("//diff_tool/config/windows_out").Value, }; #endregion #region New Server var newServer = new { HostName = xmlDoc.XPathSelectElement("//diff_tool/new_server/host_name").Value, SoapPort = xmlDoc.XPathSelectElement("//diff_tool/new_server/soap_port").Value, GenevaPort = xmlDoc.XPathSelectElement("//diff_tool/new_server/geneva_port").Value, SSH = xmlDoc.XPathSelectElement("//diff_tool/new_server/ssh_host_key").Value, UnixUserName = xmlDoc.XPathSelectElement("//diff_tool/new_server/unix_user").Value, UnixPassword = xmlDoc.XPathSelectElement("//diff_tool/new_server/unix_pwd").Value, RunrepUserName = xmlDoc.XPathSelectElement("//diff_tool/new_server/runrep_user").Value, RunrepPassword = xmlDoc.XPathSelectElement("//diff_tool/new_server/runrep_pwd").Value, RSLFilePath = xmlDoc.XPathSelectElement("//diff_tool/new_server/rsl_file_path").Value, HostPortNo = xmlDoc.XPathSelectElement("//diff_tool/new_server/host_port_no").Value, }; #endregion #region Old Server var oldServer = new { HostName = xmlDoc.XPathSelectElement("//diff_tool/old_server/host_name").Value, SoapPort = xmlDoc.XPathSelectElement("//diff_tool/old_server/soap_port").Value, GenevaPort = xmlDoc.XPathSelectElement("//diff_tool/old_server/geneva_port").Value, SSH = xmlDoc.XPathSelectElement("//diff_tool/old_server/ssh_host_key").Value, UnixUserName = xmlDoc.XPathSelectElement("//diff_tool/old_server/unix_user").Value, UnixPassword = xmlDoc.XPathSelectElement("//diff_tool/old_server/unix_pwd").Value, RunrepUserName = xmlDoc.XPathSelectElement("//diff_tool/old_server/runrep_user").Value, RunrepPassword = xmlDoc.XPathSelectElement("//diff_tool/old_server/runrep_pwd").Value, RSLFilePath = xmlDoc.XPathSelectElement("//diff_tool/old_server/rsl_file_path").Value, HostPortNo = xmlDoc.XPathSelectElement("//diff_tool/old_server/host_port_no").Value, }; #endregion #region Reports var reports = new { PeriodStartDate = xmlDoc.XPathSelectElement("//diff_tool/reports/period_start_dt").Value, PeriodEndDate = xmlDoc.XPathSelectElement("//diff_tool/reports/period_end_dt").Value, PriorKnowledgeDate = xmlDoc.XPathSelectElement("//diff_tool/reports/prior_knowledge_dt").Value, KnowledgeDate = xmlDoc.XPathSelectElement("//diff_tool/reports/knowledge_dt").Value, KnowledgeBeginDate = xmlDoc.XPathSelectElement("//diff_tool/reports/knowledge_begin_dt").Value, MonetaryPrecision = xmlDoc.XPathSelectElement("//diff_tool/reports/monetary_precision").Value, PricingPrecision = xmlDoc.XPathSelectElement("//diff_tool/reports/pricing_precision").Value, QuantityPrecision = xmlDoc.XPathSelectElement("//diff_tool/reports/quantity_precision").Value, Version = xmlDoc.XPathSelectElement("//diff_tool/reports/version").Value, Consolidate = xmlDoc.XPathSelectElement("//diff_tool/reports/consolidate").Value, }; List<Report> reportList = new List<Report>(); IEnumerable<XElement> xmlReportList = xmlDoc.XPathSelectElements("//diff_tool/reports/report"); foreach (XElement report in xmlReportList) { Report r = new Report(report.Element("name").Value); foreach (XElement matchingColumn in xmlDoc.XPathSelectElements("//diff_tool/reports/report[name='" + r.Name + "']/matching_columns/matching_column")) { r.MatchingColumns.Add(new Column(int.Parse(matchingColumn.Value), "")); } foreach (XElement ignoredColumn in xmlDoc.XPathSelectElements("//diff_tool/reports/report[name='" + r.Name + "']/ignored_columns/ignored_column")) { if (ignoredColumn != null && ignoredColumn.Value != "") r.IgnoredColumns.Add(new Column(int.Parse(ignoredColumn.Value), "")); } double.TryParse(report.Element("tolerance").Value, out r.Tolerance); r.AccountingRunType = report.Element("accounting_run_type").Value; reportList.Add(r); } #endregion #region Portfolios IEnumerable<XElement> portfolios = xmlDoc.XPathSelectElements("//diff_tool/portfolios/portfolio"); List<string> portfolioList = new List<string>(); foreach (XElement portfolio in portfolios) { portfolioList.Add(portfolio.Value); } #endregion #endregion try { #region Screen #region Configuration tbWinSCPPath.Text = config.WinSCPPath; tbWindowsOutput.Text = config.WindowsOutput; #endregion #region New Server tbNewHostName.Text = newServer.HostName; tbNewSoapPort.Text = newServer.SoapPort; tbNewGenevaPort.Text = newServer.GenevaPort; tbNewSSH.Text = newServer.SSH; tbNewUnixUserName.Text = newServer.UnixUserName; tbNewUnixPassword.Text = newServer.UnixPassword; tbNewRunrepUserName.Text = newServer.RunrepUserName; tbNewRunrepPassword.Text = newServer.RunrepPassword; tbNewRSLFilePath.Text = newServer.RSLFilePath; tbNewHPNo.Text = newServer.HostPortNo; #endregion #region Old Server tbOldHostName.Text = oldServer.HostName; tbOldSoapPort.Text = oldServer.SoapPort; tbOldGenevaPort.Text = oldServer.GenevaPort; tbOldSSH.Text = oldServer.SSH; tbOldUnixUserName.Text = oldServer.UnixUserName; tbOldUnixPassword.Text = oldServer.UnixPassword; tbOldRunrepUserName.Text = oldServer.RunrepUserName; tbOldRunrepPassword.Text = oldServer.RunrepPassword; tbOldRSLFilePath.Text = oldServer.RSLFilePath; tbOldHPNo.Text = newServer.HostPortNo; #endregion #region Portfolios if (reportList.Count > 0) { LoadPortfolios(null); p.SelectedPortfolios = p.UnselectedPortfolios.Where(x => portfolioList.Contains(x)).OrderBy(x => x).ToList(); foreach (string portfolio in p.SelectedPortfolios) { p.UnselectedPortfolios.Remove(portfolio); } } BindPortfolios(lbUnselectedPortfolios, p.UnselectedPortfolios); BindPortfolios(lbSelectedPortfolios, p.SelectedPortfolios); #endregion #region Reports #region Parameters if (reports.PeriodStartDate != "") { dtPeriodStartDate.Checked = true; dtPeriodStartDate.Value = DateTime.ParseExact(reports.PeriodStartDate, "MM/dd/yyyy HH:mm:ss", null); } else { dtPeriodStartDate.Value = DateTime.Now; dtPeriodStartDate.Checked = false; } if (reports.PeriodEndDate != "") { dtPeriodEndDate.Checked = true; dtPeriodEndDate.Value = DateTime.ParseExact(reports.PeriodEndDate, "MM/dd/yyyy HH:mm:ss", null); } else { dtPeriodEndDate.Value = DateTime.Now; dtPeriodEndDate.Checked = false; } if (reports.PriorKnowledgeDate != "") { dtPriorKnowledgeDate.Checked = true; dtPriorKnowledgeDate.Value = DateTime.ParseExact(reports.PriorKnowledgeDate, "MM/dd/yyyy HH:mm:ss", null); } else { dtPriorKnowledgeDate.Value = DateTime.Now; dtPriorKnowledgeDate.Checked = false; } if (reports.KnowledgeDate != "") { dtKnowledgeDate.Checked = true; dtKnowledgeDate.Value = DateTime.ParseExact(reports.KnowledgeDate, "MM/dd/yyyy HH:mm:ss", null); } else { dtKnowledgeDate.Value = DateTime.Now; dtKnowledgeDate.Checked = false; } if (reports.KnowledgeBeginDate != "") { dtKnowledgeBeginDate.Checked = true; dtKnowledgeBeginDate.Value = DateTime.ParseExact(reports.KnowledgeBeginDate, "MM/dd/yyyy HH:mm:ss", null); } else { dtKnowledgeDate.Value = DateTime.Now; dtKnowledgeDate.Checked = false; } tbMonetaryPrecision.Text = reports.MonetaryPrecision; tbPricingPrecision.Text = reports.PricingPrecision; tbQuantityPrecision.Text = reports.QuantityPrecision; tbVersion.Text = reports.Version; #endregion if (reportList.Count > 0) { LoadReports(null); p.SelectedReports = p.UnselectedReports.Where(x => reportList.Select(y => y.Name).Contains(x.Name)).OrderBy(x => x.Name).ToList(); foreach (Report report in p.SelectedReports) { p.UnselectedReports.Remove(report); LoadHeadersFirstTime(report, null); Report xmlReport = reportList.Where(x => x.Name == report.Name).First(); report.MatchingColumns = report.UnselectedColumns.Where(x => xmlReport.MatchingColumns.Select(y => y.Id).Contains(x.Id)).OrderBy(x => x.Id).ToList(); foreach (Column column in report.MatchingColumns) { report.UnselectedColumns.Remove(column); } report.IgnoredColumns = report.UnselectedColumns.Where(x => xmlReport.IgnoredColumns.Select(y => y.Id).Contains(x.Id)).OrderBy(x => x.Id).ToList(); foreach (Column column in report.IgnoredColumns) { report.UnselectedColumns.Remove(column); } report.Tolerance = xmlReport.Tolerance; report.AccountingRunType = xmlReport.AccountingRunType; } } BindReports(lbUnselectedReports, p.UnselectedReports); BindReports(lbSelectedReports, p.SelectedReports); #endregion #endregion } catch (Exception ex) { MessageBox.Show("Could not load the specified file.\n\n" + ex.Message); CleanAll(); return; } FirstTabFocus(); } catch (Exception ex) { MessageBox.Show("Unsupported format.\n\n" + ex.Message); CleanAll(); } } }