PowerArgs.Cli.ProgressOperationControl.OnAddedToVisualTree C# (CSharp) Method

OnAddedToVisualTree() private method

private OnAddedToVisualTree ( ) : void
return void
        private void OnAddedToVisualTree()
        {
            Operation.Actions.Added.SubscribeForLifetime(Actions_Added, this.LifetimeManager);
            Operation.Actions.Removed.SubscribeForLifetime(Actions_Removed, this.LifetimeManager);

            Operation.SynchronizeForLifetime(nameof(ProgressOperation.Message), () =>
            {
                messageLabel.Text = Operation.Message;
            }, this.LifetimeManager);

            Operation.SynchronizeForLifetime(nameof(ProgressOperation.State), () =>
            {
                if (Operation.State == OperationState.InProgress)
                {
                    spinner.IsSpinning = true;
                }
                else if (Operation.State == OperationState.Completed)
                {
                    spinner.IsSpinning = false;
                    spinner.Value = new ConsoleCharacter(' ', backgroundColor: ConsoleColor.Green);
                }
                else if (Operation.State == OperationState.Failed)
                {
                    spinner.IsSpinning = false;
                    spinner.Value = new ConsoleCharacter(' ', backgroundColor: ConsoleColor.Red);
                }
                else if (Operation.State == OperationState.CompletedWithWarnings)
                {
                    spinner.IsSpinning = false;
                    spinner.Value = new ConsoleCharacter(' ', backgroundColor: ConsoleColor.DarkYellow);
                }
                else if (Operation.State == OperationState.Queued)
                {
                    spinner.IsSpinning = false;
                    spinner.Value = new ConsoleCharacter(' ', backgroundColor: ConsoleColor.Gray);
                }
                else if (Operation.State == OperationState.NotSet)
                {
                    spinner.IsSpinning = false;
                    spinner.Value = new ConsoleCharacter('?', backgroundColor: ConsoleColor.Gray);
                }
            }, this.LifetimeManager);
        }