Example #1
0
        public async Task <kCura.EventHandler.Response> ExecuteAsync()
        {
            var response = new kCura.EventHandler.Response {
                Success = true, Message = string.Empty
            };

            try
            {
                Logger.LogDebug(Constant.Names.ApplicationName + " - [{@this}] Creating tables...", this);

                //Create the Export Utility Job Manager queue table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Manager queue table if it doesn't already exist.");
                await SqlQueryHelper.CreateExportManagerQueueTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Manager queue table if it doesn't already exist.");

                //Create the Export Utility Job Worker queue table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Worker queue table if it doesn't already exist.");
                await SqlQueryHelper.CreateExportWorkerQueueTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Worker queue table if it doesn't already exist.");

                //Create the Export Utility Job Error log table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Error Log table if it doesn't already exist.");
                await SqlQueryHelper.CreateExportErrorLogTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Error Log table if it doesn't already exist.");

                //Create the Import Utility Job Manager queue table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Manager queue table if it doesn't already exist.");
                await SqlQueryHelper.CreateImportManagerQueueTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Manager queue table if it doesn't already exist.");

                //Create the Import Utility Job Worker queue table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Worker queue table if it doesn't already exist.");
                await SqlQueryHelper.CreateImportWorkerQueueTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Worker queue table if it doesn't already exist.");

                //Create the Import Utility Job Error log table if it doesn't already exist
                Logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Error Log table if it doesn't already exist.");
                await SqlQueryHelper.CreateImportErrorLogTableAsync(DbContextEdds);

                Logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Error Log table if it doesn't already exist.");

                Logger.LogDebug(Constant.Names.ApplicationName + " - [{@this}] Created tables successfully...", this);
            }
            catch (AdminMigrationUtilityException ex)
            {
                var message = ex.Message + " : " + (ex.InnerException?.Message ?? "None");
                Logger.LogError($"{Constant.Names.ApplicationName} - Post-Install failed. {message}");

                response.Success = false;
                response.Message = $"Post-Install table creation(s) failed with message: {ex.Message}";
                throw new AdminMigrationUtilityException(ex.Message);
            }

            return(response);
        }
        public async Task <kCura.EventHandler.Response> ExecuteAsync()
        {
            return(await Task.Run(() =>
            {
                _logger = Helper.GetLoggerFactory().GetLogger();

                var response = new kCura.EventHandler.Response
                {
                    Success = true,
                    Message = String.Empty
                };
                var sqlQueryHelper = new SqlQueryHelper();

                //Create the Export Utility Job Manager queue table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Manager queue table if it doesn't already exist");
                var exportManagerTableTask = sqlQueryHelper.CreateExportManagerQueueTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Manager queue table if it doesn't already exist");

                //Create the Export Utility Job Worker queue table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Worker queue table if it doesn't already exist");
                var exportWorkerTableTask = sqlQueryHelper.CreateExportWorkerQueueTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Worker queue table if it doesn't already exist");

                //Create the Export Utility Job Error log table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Export Utility Job Error Log table if it doesn't already exist");
                var exportErrorLogTableTask = sqlQueryHelper.CreateExportErrorLogTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Export Utility Job Error Log table if it doesn't already exist");

                //Create the Import Utility Job Manager queue table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Manager queue table if it doesn't already exist");
                var importManagerTableTask = sqlQueryHelper.CreateImportManagerQueueTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Manager queue table if it doesn't already exist");

                //Create the Import Utility Job Worker queue table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Worker queue table if it doesn't already exist");
                var importWorkerTableTask = sqlQueryHelper.CreateImportWorkerQueueTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Worker queue table if it doesn't already exist");

                //Create the Import Utility Job Error log table if it doesn't already exist
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Creating Import Utility Job Error Log table if it doesn't already exist");
                var importErrorLogTableTask = sqlQueryHelper.CreateImportErrorLogTableAsync(Helper.GetDBContext(-1));
                _logger.LogDebug($"{Constant.Names.ApplicationName} - Created Import Utility Job Error Log table if it doesn't already exist");


                try
                {
                    // Waits for all tasks, otherwise exceptions would be lost
                    Task.WaitAll(exportManagerTableTask, exportWorkerTableTask, exportErrorLogTableTask, importManagerTableTask, importWorkerTableTask, importErrorLogTableTask);
                }
                catch (AggregateException aex)
                {
                    _logger.LogError(aex, $"{Constant.Names.ApplicationName} - Post-Install failed. {aex}");
                    var ex = aex.Flatten();
                    var message = ex.Message + " : " + (ex.InnerException?.Message ?? "None");
                    response.Success = false;
                    response.Message = "Post-Install field rename failed with message: " + message;
                }
                return response;
            }));
        }