Esempio n. 1
0
 private static ProjectConfigItem CreateBaseProjectConfig()
 {
     return(new ProjectConfigItem()
     {
         Id = IntegrationTestsConsts.TestProjectId,
         DeployArtifactFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeployArtifact_FolderPath),
         BackupFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackupBaseFolder),
     });
 }
Esempio n. 2
0
        public void Sync(string id)
        {
            lock (_lock)
            {
                var reportFilePath = Path.Join(string.Format("{0}.report", FileSystemPathUtils.SanitizePathString(id)));

                FileSystem.WriteReport(reportFilePath, GetOrInitReport(id), append: false);
            }
        }
        private void SaveProjectConfigsFile(Dictionary <string, ProjectConfigItem> dicAllProjectConfigs)
        {
            List <ProjectConfigItem> projectConfigs = dicAllProjectConfigs.Values.ToList();
            string projectConfigsListStr            = SerializationUtils.JsonSerialize(projectConfigs);

            string configProjectsFilePath = FileSystemPathUtils.ParsePathVaribles(_settings.ConfigProjectsFilePath);

            FileSystemPathUtils.ResloveFilePath(configProjectsFilePath);
            File.WriteAllText(configProjectsFilePath, projectConfigsListStr);
        }
Esempio n. 4
0
        public string GetScriptFullPath_Incremental_scriptName2(DBConnectionInfo dbConnectionInfo)
        {
            string devScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_Normal);

            devScriptsBaseFolderPath = devScriptsBaseFolderPath.Replace("[DBType]", dbConnectionInfo.DBType);

            string scriptFilename  = $"incScript_0007_{ScriptName2}.sql";
            string script1FullPath = Path.Combine(devScriptsBaseFolderPath, _relFolder_Incremental, scriptFilename);

            return(script1FullPath);
        }
        public string GetScriptFullPath_DevDummyData_scriptName1(DBConnectionInfo dbConnectionInfo)
        {
            string devScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_Normal);

            devScriptsBaseFolderPath = devScriptsBaseFolderPath.Replace("[DBType]", dbConnectionInfo.DBType);

            string scriptFilename  = $"dddScript_0003_{ScriptName1}.sql";
            string script1FullPath = Path.Combine(devScriptsBaseFolderPath, _relFolder_DevDummyData, scriptFilename);

            return(script1FullPath);
        }
Esempio n. 6
0
        public override ITestContext Arrange(TestArgs testArgs)
        {
            ProjectConfigItem projectConfig = IntegrationTestsConsts.GetNewInstanceForDummyProjectConfigValid();

            projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_Normal).Replace("[DBType]", IntegrationTestsConsts.SqlServerDBType);
            projectConfig.Id          = OldProjectId;
            projectConfig.Description = ProjectDesc;

            _projectConfigsStorageHelper.PrepareTestProject(projectConfig);

            ProjectConfigTestArgs projectConfigTestArgs = new ProjectConfigTestArgs(projectConfig);

            _dbHandler.RestoreDB(projectConfig.DBConnectionInfo, DBBackupFileType.EmptyDB);

            return(new ProcessTestContext(projectConfigTestArgs));
        }
Esempio n. 7
0
        public virtual string GetDBBackupFilePath(DBBackupFileType dbBackupFileType, string dbType)
        {
            string filePath = dbBackupFileType switch
            {
                DBBackupFileType.EmptyDB => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_EmptyDB).Replace("[DBType]", dbType),
                DBBackupFileType.EmptyDBWithSystemTables => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_ExceptSystemTables).Replace("[DBType]", dbType),
                DBBackupFileType.AfterRunInitStateScript => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_AfterRunInitStateScript).Replace("[DBType]", dbType),
                DBBackupFileType.MiddleState => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_MiddleState).Replace("[DBType]", dbType),
                DBBackupFileType.FinalState_DevEnv => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_DevEnv).Replace("[DBType]", dbType),
                DBBackupFileType.FinalState_DeliveryEnv => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_DeliveryEnv).Replace("[DBType]", dbType),
                DBBackupFileType.FinalState_MissingSystemTables => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_MissingSystemTables).Replace("[DBType]", dbType),
                DBBackupFileType.AddDataAfterFinalState => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_AddDataAfterFinalState).Replace("[DBType]", dbType),
                _ => throw new Exception($"Invalid DBBackupFileType: '{dbBackupFileType}'"),
            };

            return(filePath);
        }
Esempio n. 8
0
        public void SetDefaltValues()
        {
            if (string.IsNullOrWhiteSpace(DBType))
            {
                DBType = SqlServerDBTypeObjectsFactory.DBTypeCode;
            }
            if (string.IsNullOrWhiteSpace(Server))
            {
                Server = "(local)";
            }
            if (string.IsNullOrWhiteSpace(BackupFolderPath))
            {
                string tempBackupFolderPath = @"[CommonApplicationData]\AutoVersionsDB\Backups";

                if (!string.IsNullOrWhiteSpace(Id))
                {
                    tempBackupFolderPath += $@"\{Id}";
                }

                BackupFolderPath = FileSystemPathUtils.ParsePathVaribles(tempBackupFolderPath);
            }
        }
        public Dictionary <string, ProjectConfigItem> GetAllProjectConfigs()
        {
            Dictionary <string, ProjectConfigItem> dicAllProjectConfigs = new Dictionary <string, ProjectConfigItem>();

            List <ProjectConfigItem> listAllProjectConfigs;

            string configProjectsFilePath = FileSystemPathUtils.ParsePathVaribles(_settings.ConfigProjectsFilePath);

            if (File.Exists(configProjectsFilePath))
            {
                string projectConfigsListStr = File.ReadAllText(configProjectsFilePath);

                listAllProjectConfigs = SerializationUtils.JsonDeserialize <List <ProjectConfigItem> >(projectConfigsListStr);
            }
            else
            {
                listAllProjectConfigs = new List <ProjectConfigItem>();
            }

            listAllProjectConfigs = listAllProjectConfigs.OrderBy(e => e.Id.ToTrimedInvariant()).ToList();
            dicAllProjectConfigs  = listAllProjectConfigs.ToDictionary(e => e.Id.ToTrimedInvariant());

            return(dicAllProjectConfigs);
        }
Esempio n. 10
0
        private static void SetScriptsFoldersPath(ref ProjectConfigItem projectConfig, ScriptFilesStateType scriptFilesStateType)
        {
            if (projectConfig.DevEnvironment)
            {
                switch (scriptFilesStateType)
                {
                case ScriptFilesStateType.ValidScripts:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_Normal).Replace("[DBType]", projectConfig.DBType);
                    break;

                case ScriptFilesStateType.MissingFile:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_MissingFile).Replace("[DBType]", projectConfig.DBType);
                    break;

                case ScriptFilesStateType.ScriptError:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_ScriptError).Replace("[DBType]", projectConfig.DBType);
                    break;

                case ScriptFilesStateType.IncrementalChanged:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_ChangedHistoryFiles_Incremental).Replace("[DBType]", projectConfig.DBType);
                    break;

                case ScriptFilesStateType.RepeatableChanged:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_ChangedHistoryFiles_Repeatable).Replace("[DBType]", projectConfig.DBType);
                    break;

                case ScriptFilesStateType.NoScriptFiles:

                    projectConfig.DevScriptsBaseFolderPath = FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DevScriptsBaseFolderPath_NoScriptFiles).Replace("[DBType]", projectConfig.DBType);

                    if (!Directory.Exists(projectConfig.IncrementalScriptsFolderPath))
                    {
                        Directory.CreateDirectory(projectConfig.IncrementalScriptsFolderPath);
                    }
                    if (!Directory.Exists(projectConfig.RepeatableScriptsFolderPath))
                    {
                        Directory.CreateDirectory(projectConfig.RepeatableScriptsFolderPath);
                    }
                    if (!Directory.Exists(projectConfig.DevDummyDataScriptsFolderPath))
                    {
                        Directory.CreateDirectory(projectConfig.DevDummyDataScriptsFolderPath);
                    }

                    break;

                default:
                    throw new Exception($"Invalid ScriptFilesStateType: '{scriptFilesStateType}'");
                }
            }
            else
            {
                projectConfig.DeliveryArtifactFolderPath = scriptFilesStateType switch
                {
                    ScriptFilesStateType.ValidScripts => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_Normal).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.MissingFile => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_MissingFileh).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.ScriptError => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_ScriptError).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.IncrementalChanged => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_ChangedHistoryFiles_Incremental).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.RepeatableChanged => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_ChangedHistoryFiles_Repeatable).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.WithDevDummyDataFiles => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_WithDevDummyDataFiles).Replace("[DBType]", projectConfig.DBType),
                    ScriptFilesStateType.NoScriptFiles => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DeliveryArtifactFolderPath_NoScriptFiles).Replace("[DBType]", projectConfig.DBType),
                    _ => throw new Exception($"Invalid ScriptFilesStateType: '{scriptFilesStateType}'"),
                };
            }
        }
Esempio n. 11
0
        public override void Execute(DBVersionsProcessContext processContext)
        {
            processContext.ThrowIfNull(nameof(processContext));

            string timeStampStr = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss", CultureInfo.InvariantCulture);

            string targetFileName;

            using (var dbCommands = _dbCommandsFactory.CreateDBCommand(processContext.ProjectConfig.DBConnectionInfo))
            {
                targetFileName = $"bu_{ dbCommands.DataBaseName}_{timeStampStr}.bak";
            }

            string targetFileFullPath = Path.Combine(processContext.ProjectConfig.BackupFolderPath, targetFileName);

            FileSystemPathUtils.ResloveFilePath(targetFileFullPath);

            //notificationExecutersProvider.SetStepStartManually(100, "Backup process");

            using (var dbBackupStatusNotifyer = _dbCommandsFactory.CreateDBProcessStatusNotifyer(typeof(DBBackupStatusNotifyer), processContext.ProjectConfig.DBConnectionInfo).AsDisposable())
            {
                //DBProcessStatusNotifyerBase dbBackupStatusNotifyer = _dbProcessStatusNotifyerFactory.Create(, dbQueryStatus.Instance) as DBBackupStatusNotifyer;

                List <ActionStepBase> internalSteps = new List <ActionStepBase>();

                for (int internalStepNumber = 1; internalStepNumber <= 100; internalStepNumber++)
                {
                    ExternalProcessStatusStep externalProcessStatusStep = new ExternalProcessStatusStep(internalStepNumber);
                    internalSteps.Add(externalProcessStatusStep);
                }

                Exception processExpetion = null;


                dbBackupStatusNotifyer.Instance.Start(
                    (precents) =>
                {
                    //notificationExecutersProvider.ForceStepProgress(Convert.ToInt32(precents));

                    foreach (ExternalProcessStatusStep step in internalSteps)
                    {
                        if (!step.IsCompleted)
                        {
                            step.SetProcessState((int)Math.Floor(precents), processExpetion);
                        }
                    }
                });

                Task.Run(() =>
                {
                    try
                    {
                        using (var dbCommands = _dbCommandsFactory.CreateDBCommand(processContext.ProjectConfig.DBConnectionInfo))
                        {
                            using (var dbBackupRestoreCommands = _dbCommandsFactory.CreateDBBackupRestoreCommands(processContext.ProjectConfig.DBConnectionInfo))
                            {
                                dbBackupRestoreCommands.CreateDBBackup(targetFileFullPath, dbCommands.DataBaseName);

                                foreach (ExternalProcessStatusStep step in internalSteps)
                                {
                                    if (!step.IsCompleted)
                                    {
                                        step.SetProcessState(100, processExpetion);
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        processExpetion = ex;
                    }
                });

                ExecuteInternalSteps(internalSteps, false);

                dbBackupStatusNotifyer.Instance.Stop();

                if (processExpetion != null)
                {
                    throw processExpetion; //new Exception("CreateBackupStep", processExpetion);
                }

                processContext.DBBackupFileFullPath = targetFileFullPath;
            }
        }
 public AutoVersionsDBSettings(string autoVersionsDBBaseFolder)
 {
     _autoVersionsDBBaseFolder = FileSystemPathUtils.ParsePathVaribles(autoVersionsDBBaseFolder);
 }
 public AutoVersionsDBSettings()
 {
     _autoVersionsDBBaseFolder = FileSystemPathUtils.ParsePathVaribles(@"[CommonApplicationData]\AutoVersionsDB");
 }