Пример #1
0
        public IActionResult DeleteAnalyticsRunGreenplum([FromServices] IDataClient dataClient, string customerShortName, string projectShortName, Guid analyticsRunId)
        {
            var projectConfig = _iam.GetProjectConfig(customerShortName, projectShortName);
            var parameters    = new List <NpgsqlParameter>
            {
                new NpgsqlParameter("v_source_schema_name", NpgsqlDbType.Varchar)
                {
                    Value = projectConfig.GreenplumConfig.SourceSchema
                },
                new NpgsqlParameter("v_result_schema_name", NpgsqlDbType.Varchar)
                {
                    Value = projectConfig.GreenplumConfig.ResultSchema
                },
                new NpgsqlParameter("v_flowchart_run_uuid", NpgsqlDbType.Varchar)
                {
                    Value = analyticsRunId.ToString()
                }
            };

            var request = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_delete_flowchart_run", parameters);

            dataClient.ExecuteScalar <object>(request);

            _logging.Log("Deleted rates from greenplum", Orchestration.Shared.Domain.Log.LogLevels.Info, 50);
            return(Ok());
        }
Пример #2
0
        public IActionResult UpsertFlowchartRun([FromServices] IDataClient dataClient, string customerShortName, string projectShortName, Guid id)
        {
            var job = _jobProxy.GetJob(customerShortName, projectShortName, id);

            _workStatusProxy.Add(job, AnalyticsRunStatus.Running, Calculations.Percentage(0, 11, 14, _config.PreTAPercentageContribution), true, true);
            var projectConfig = _iam.GetProjectConfig(customerShortName, projectShortName);

            var stopWatch = Stopwatch.StartNew();

            job.flowchartRunRequest.ToList().ForEach(flowchartRunRequest => flowchartRunRequest.flowchartCatalogMetadata.ToList().ForEach(
                                                         catalog =>
            {
                var beginDate = DateTime.Parse(flowchartRunRequest.reportingYearBeginDate);
                var endDate   = DateTime.Parse(flowchartRunRequest.reportingYearEndDate);

                var parameters = new List <NpgsqlParameter>
                {
                    new NpgsqlParameter("result_schema_name", NpgsqlDbType.Varchar)
                    {
                        Value = projectConfig.GreenplumConfig.ResultSchema
                    },
                    new NpgsqlParameter("fc_catalog_id", DbType.Int64)
                    {
                        Value = catalog.flowchartCatalogID
                    },
                    new NpgsqlParameter("flowchartrunuuid", NpgsqlDbType.Varchar)
                    {
                        Value = flowchartRunRequest.flowchartRunUUID.ToString()
                    },
                    new NpgsqlParameter("fc_run_name", NpgsqlDbType.Varchar)
                    {
                        Value = flowchartRunRequest.name
                    },
                    new NpgsqlParameter("fc_run_date_time", NpgsqlDbType.Varchar)
                    {
                        Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    },
                    new NpgsqlParameter("fc_begin_date", NpgsqlDbType.Varchar)
                    {
                        Value = beginDate.ToString("yyyy-MM-dd")
                    },
                    new NpgsqlParameter("fc_end_date", NpgsqlDbType.Varchar)
                    {
                        Value = endDate.ToString("yyyy-MM-dd")
                    },
                    new NpgsqlParameter("fc_catalog_name", NpgsqlDbType.Varchar)
                    {
                        Value = catalog.flowchartCatalogKey
                    }
                };

                var request            = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_insert_update_flowchartrun", parameters);
                catalog.flowchartRunID = dataClient.ExecuteScalar <long>(request);
            }));

            _jobProxy.UpdateJob(job);
            _taskLogging.LogOperation(customerShortName, projectShortName, "UpsertFlowchartRun", job, stopWatch.Elapsed);

            return(Ok());
        }
Пример #3
0
        public ActionResult RefreshMemberCombined([FromServices] IDataClient dataClient, string customerShortName, string projectShortName, Guid id)
        {
            var job = _jobProxy.GetJob(customerShortName, projectShortName, id);

            _workStatusProxy.Add(new WorkStatus(id, true, Calculations.Percentage(0, 5, 14, _config.PreTAPercentageContribution), AnalyticsRunStatus.Running));
            var projectConfig = _iam.GetProjectConfig(customerShortName, projectShortName);

            var parameters = new List <NpgsqlParameter>
            {
                new NpgsqlParameter("v_source_schema", NpgsqlDbType.Varchar)
                {
                    Value = projectConfig.GreenplumConfig.SourceSchema
                },
                new NpgsqlParameter("v_result_schema", NpgsqlDbType.Varchar)
                {
                    Value = projectConfig.GreenplumConfig.ResultSchema
                }
            };

            var stopWatch = Stopwatch.StartNew();

            var request = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_member_combined", parameters);

            dataClient.ExecuteScalar <object>(request);

            _taskLogging.LogOperation(customerShortName, projectShortName, "RefreshMemberCombined", job, stopWatch.Elapsed);
            return(Ok());
        }
Пример #4
0
        public ActionResult ManageOutputCombined([FromServices] IDataClient dataClient, string customerShortName, string projectShortName, Guid id)
        {
            var job = _jobProxy.GetJob(customerShortName, projectShortName, id);

            _workStatusProxy.Add(job, AnalyticsRunStatus.Running, Calculations.Percentage(0, 12, 14, _config.PreTAPercentageContribution), true, true);

            var projectConfig = _iam.GetProjectConfig(customerShortName, projectShortName);
            var stopWatch     = Stopwatch.StartNew();

            job.flowchartRunRequest.ToList().ForEach(flowchartRunRequest =>
            {
                var parameters = new List <NpgsqlParameter>
                {
                    new NpgsqlParameter("v_result_schema", NpgsqlDbType.Varchar)
                    {
                        Value = projectConfig.GreenplumConfig.ResultSchema
                    },
                    new NpgsqlParameter("v_flowchart_run_uuid", NpgsqlDbType.Varchar)
                    {
                        Value = flowchartRunRequest.flowchartRunUUID.ToString()
                    }
                };

                var request = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_manage_combined_output_tables", parameters);
                dataClient.ExecuteScalar <object>(request);
            });

            _taskLogging.LogOperation(customerShortName, projectShortName, "ManageOutputCombined", job, stopWatch.Elapsed);
            return(Ok());
        }
Пример #5
0
        private void PopulateXrefAll(IDataClient dataClient, string customer, string project)
        {
            var projectConfig = _iam.GetProjectConfig(customer, project);

            var parameters = new List <NpgsqlParameter>
            {
                new NpgsqlParameter("v_result_schema", NpgsqlDbType.Varchar)
                {
                    Value = projectConfig.GreenplumConfig.ResultSchema
                },
            };

            var request = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_populate_xref_all", parameters);

            dataClient.ExecuteScalar <object>(request);

            _logging.Log("usp_populate_xref_all proc executed");
        }
Пример #6
0
        public IActionResult TestLongRunning([FromServices] IDataClient dataClient, [FromServices] IIAM iam, string customerShortName, string projectShortName, int timeout)
        {
            var parameters = new List <NpgsqlParameter>
            {
                new NpgsqlParameter("v_timeout", NpgsqlDbType.Integer)
                {
                    Value = timeout
                },
            };

            var projectConfig = iam.GetProjectConfig(customerShortName, projectShortName);
            var request       = new GreenplumStoredProcedureRequest(projectConfig.GreenplumConfig.RawConnectionString, "usp_timeout_test", parameters);

            var stopWatch = Stopwatch.StartNew();

            dataClient.ExecuteScalar <object>(request);

            _logging.Log($"Long-running-test ran for: { stopWatch.Elapsed }");
            return(Ok());
        }