Ejemplo n.º 1
0
        /// <summary>
        /// <see cref="IActivity.Run(ActivityRun,IGenevaActions)">IActivity.Run(ActivityRun,IGenevaActions)</see>
        /// </summary>
        /// <param name="activityRun">ActivityRun instance</param>
        /// <param name="genevaInstance">GenevaAction instance</param>
        public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance)
        {
            //This is where the actual activity run happens.

            ////The name of parameters in the GS Activity
            String portParamName = "Portfolio";
            String startDateName = "Period Start Date";
            String endDateName = "Period End Date";
            String rslParamName = "RSL";

            //FTP Parameters
            ftpHandler = new FTPHandler();

            String ftpServerNameParamName = "FTP Host Name";
            String ftpUserNameParamName = "FTP Username";
            String ftpPasswordParamName = "FTP Password";

            String localFileNameFTPFormatParamName;
            String hostKeyNameParamName;
            String sshKeyParamName;

            String remoteInputDirParamName;

            //This is the file name that the FTP server requires in order for it to process the file
            String remoteFileNameParamName;
            String WinSCPPathParamName;

            try
            {
                activityRun.StartDateTime = DateTime.Now;

                //Read data from Activity Paramters

                String portfolio = activityRun.GetParameterValue(portParamName);
                String perStartDate = activityRun.GetParameterValue(startDateName);
                String perEndDate = activityRun.GetParameterValue(endDateName);
                rslName = activityRun.GetParameterValue(rslParamName);

                //Set FTPHandler
                //ftpHandler.

                var cultInfo = new System.Globalization.CultureInfo(System.Globalization.CultureInfo.InvariantCulture.Name);
                var dateTimeStyle = System.Globalization.DateTimeStyles.None;

                DateTime dtStartDate = DateTime.ParseExact(perStartDate, "M/d/yyyy", cultInfo, dateTimeStyle);
                DateTime dtEndDate = DateTime.ParseExact(perEndDate, "M/d/yyyy", cultInfo, dateTimeStyle);

                ReportParameterList parameters = new ReportParameterList();
                parameters.Add(new ReportParameter("Portfolio", portfolio));
                parameters.Add(new ReportParameter("PeriodStartDate", dtStartDate));
                parameters.Add(new ReportParameter("PeriodEndDate", dtEndDate));

                runRSL(activityRun, genevaInstance, parameters);

                extractFile = new DelimitedFile(csvOutputFileName, ",");

                activityRun.UpdateSuccessfulActivityRun();
            }
            catch (Exception e)
            {
                activityRun.UpdateFailedActivityRun(e);
            }
            finally
            {
                //Set Activity End Time and Save It
                activityRun.EndDateTime = DateTime.Now;
                activityRun.Save();
            }
        }
Ejemplo n.º 2
0
        public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance)
        {
            status = "Executed by " + genevaInstance.GetCurrentUserName() + Environment.NewLine
                     + "Files saved to " + GetSettingValue("OutputFolder") + Environment.NewLine;

            try
            {
                //Set Activity Start Time
                activityRun.StartDateTime = DateTime.Now;
                reportCountCSV            = 0;
                reportCountPDF            = 0;
                activityRun.CurrentStep   = "Run";
                activityRun.StartDateTime = DateTime.Now;
                outputFolder = GetSettingValue("OutputFolder");

                //#########  Set User Parameters #############
                UpdateProgress("Setting Parameters....", activityRun);

                //Read Activty Parameter
                portfolio             = activityRun.GetParameterValue("Portfolio");
                strStartDate          = activityRun.GetParameterValue("StartDate");
                strEndDate            = activityRun.GetParameterValue("EndDate");
                strKnowledgeDate      = activityRun.GetParameterValue("KnowledgeDate");
                strPriorKnowledgeDate = activityRun.GetParameterValue("PriorKnowledgeDate");

                dtStartDate          = DateTime.ParseExact(strStartDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                dtEndDate            = DateTime.ParseExact(strEndDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                dtKnowledgeDate      = DateTime.ParseExact(strKnowledgeDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                dtPriorKnowledgeDate = DateTime.ParseExact(strPriorKnowledgeDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

                //Creating Generic (base) ReportParameter List; add required parameter to this object
                ReportParameterList base_parameters = new ReportParameterList();
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("ConnectionString", Properties.Settings.Default.GenevaConnection));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("Portfolio", portfolio));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PeriodStartDate", dtStartDate));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PeriodEndDate", dtEndDate));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("KnowledgeDate", dtKnowledgeDate));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PriorKnowledgeDate", dtPriorKnowledgeDate));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AccountingRunType", "ClosedPeriod"));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AccountingCalendar", portfolio));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("RegionalSettings", "en-IE"));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("DisableHyperlinks", "True"));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("QuantityPrecision", "4"));
                base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AddendumPages", "None"));


                //#########  Get Report List CSV #############
                UpdateProgress("Getting Report list for CSV...", activityRun);

                //List<ReportParameters> reportListCSV = getReportNames("CSV", base_parameters);
                reportListCSV = getReportNames("CSV", base_parameters);

                foreach (ReportParameters report in reportListCSV)
                {
                    //CSVReport(activityRun, genevaInstance, report);
                    CSVReportSSRS(activityRun, genevaInstance, report);
                    reportCountCSV++;
                }

                activityRun.Save();


                //#########  Get Report List SSRSPDF #############
                UpdateProgress("Getting Report List for PDF...", activityRun);

                List <ReportParameters> reportListPDF = getReportNames("PDF", base_parameters);

                foreach (ReportParameters report in reportListPDF)
                {
                    PDFReport(activityRun, genevaInstance, report);
                    reportCountPDF++;
                }

                UpdateProgress("Completed!" + Environment.NewLine, activityRun);
                activityRun.UpdateSuccessfulActivityRun();
                activityRun.Save();



#if LoggingOn
                TextWriter RunWriter = new StreamWriter(outputFolder + "\\" + "Run.log");

                RunWriter.Write(status);
                RunWriter.Close();
#endif
            }
            catch (Exception exp)
            {
                //Set Failure Flag
                Exception e = new Exception(status + Environment.NewLine + "-----------Exception Message--------------" + Environment.NewLine + exp.Message);
                activityRun.SaveActivityStep(false, reportName);
                activityRun.UpdateFailedActivityRun(e);
                activityRun.Save();
            }
            finally
            {
                //Set Activity End Time and Save Activity
                activityRun.EndDateTime = DateTime.Now;
                activityRun.Save();
            }
        }