Example #1
0
        private async Task <bool> ProcessScript(
            HttpResponse response,
            FileInfo scriptFile,
            Guid applicationId,
            string applicationName,
            Version currentSchemaVersion)
        {
            string message = string.Format(
                "RunningScript {0} {1}",         //SetupResources.RunningScriptMessage,
                applicationName,
                scriptFile.Name.Replace(".sql", string.Empty));

            await WritePageContent(response,
                                   message,
                                   true);

            string overrideConnectionString = setupManager.GetOverrideConnectionString(applicationName);

            string errorMessage
                = setupManager.RunScript(
                      applicationId,
                      scriptFile,
                      overrideConnectionString);

            if (errorMessage.Length > 0)
            {
                await WritePageContent(response, errorMessage, true);

                return(false);
            }

            Version newVersion
                = setupManager.ParseVersionFromFileName(scriptFile.Name);

            if (
                (applicationName != null) &&
                (newVersion != null)
                )
            {
                setupManager.UpdateSchemaVersion(
                    applicationId,
                    applicationName,
                    newVersion.Major,
                    newVersion.Minor,
                    newVersion.Build,
                    newVersion.Revision);

                setupManager.AddSchemaScriptHistory(
                    applicationId,
                    scriptFile.Name,
                    DateTime.UtcNow,
                    false,
                    string.Empty,
                    string.Empty);

                currentSchemaVersion = newVersion;
                return(true);
            }

            return(false);
        }