Example #1
0
 private void LoadHeaders(Report report)
 {
     BindColumns(lbUnselectedColumns, report.UnselectedColumns);
     BindColumns(lbIgnorableColumns, report.UnselectedColumns);
     BindColumns(lbMatchingColumns, report.MatchingColumns);
     BindColumns(lbIgnoredColumns, report.IgnoredColumns);
 }
Example #2
0
        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);
        }
Example #3
0
        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();
                }
            }
        }