Пример #1
0
        /// <summary>
        /// Informs the user of the current status of the migration process.
        /// </summary>
        /// <param name="migrationStep">The migration step the status applies to.</param>
        /// <param name="messageType">The type of messaging being communicated.</param>
        /// <param name="statusMessage">Status message to be sent to the user.</param>
        public async Task UpdateCurrentStatusAsync(MigrationStepEnum migrationStep, MessageTypeEnum messageType, string statusMessage)
        {
            //confirming there is a message to update.
            if (string.IsNullOrEmpty(statusMessage))
            {
                return;
            }

            //Scheduling the update of the observable collection that bound to the data grid on the dialog.
            await Dispatcher.InvokeAsync(() =>
            {
                var status = new MigrationStepStatus {
                    MessageType = messageType.GetName(), MigrationStep = migrationStep.GetName(), Status = statusMessage
                };
                StepStatus.Add(status);
            }
                                         , DispatcherPriority.Normal);
        }
        /// <summary>
        /// Gets a title assigned to each migration step.
        /// </summary>
        /// <param name="source">The migration step to be loaded.</param>
        /// <returns>The title.</returns>
        public static string GetName(this MigrationStepEnum source)
        {
            string name = null;

            switch (source)
            {
            case MigrationStepEnum.Startup:
                name = "Startup";
                break;

            case MigrationStepEnum.HttpModules:
                name = "Http Modules";
                break;

            case MigrationStepEnum.StaticFiles:
                name = "Static Files";
                break;

            case MigrationStepEnum.Bundling:
                name = "Bundling";
                break;

            case MigrationStepEnum.AspxPages:
                name = "Aspx Pages";
                break;

            case MigrationStepEnum.Config:
                name = "Configuration";
                break;

            case MigrationStepEnum.AppLogic:
                name = "App Logic";
                break;

            case MigrationStepEnum.MigrationProcess:
                name = "Migration Process";
                break;
            }

            return(name);
        }
Пример #3
0
        /// <summary>
        /// Informs the user of the status of a target step of the migration process.
        /// </summary>
        /// <param name="step">Step that is getting updated.</param>
        /// <param name="status">The status the step is being changed to.</param>
        public async Task UpdateStepStatusAsync(MigrationStepEnum step, MigrationStatusEnum status)
        {
            //Scheduling the update of the target step in the migration process process.
            //Extension method is used on the TextBlock to update the status of the migration step.
            await Dispatcher.InvokeAsync(() =>
            {
                switch (step)
                {
                case MigrationStepEnum.Startup:
                    BorderStartupProcess.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;
                    TextBlockStartupProcessStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.HttpModules:
                    BorderMigrateHttpModules.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;
                    TextBlockMigrateHttpModulesStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.StaticFiles:
                    BorderMigrateStaticFiles.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;
                    TextBlockMigrateStaticFilesStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.Bundling:
                    BorderMigrateBundling.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;
                    TextBlockMigrateBundlingStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.AspxPages:
                    BorderMigrateAspxPages.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;

                    TextBlockMigrateAspxPagesStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.Config:
                    BorderMigrateConfiguration.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;
                    TextBlockMigrateConfigurationStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.AppLogic:
                    BorderMigrateLogic.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;

                    TextBlockMigrateLogicStatus.UpdateMigrationStatus(status);
                    break;

                case MigrationStepEnum.MigrationProcess:
                    BorderMigrateProcess.Visibility = status == MigrationStatusEnum.Running
                            ? Visibility.Visible
                            : Visibility.Hidden;

                    TextBlockMigrationProcessStatus.UpdateMigrationStatus(status);
                    break;
                }
            }
                                         , DispatcherPriority.Normal);
        }
Пример #4
0
 public async Task UpdateStepStatusAsync(MigrationStepEnum step, MigrationStatusEnum status)
 {
     throw new NotImplementedException();
 }