/// <summary>
        /// The run.
        /// </summary>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public bool Run()
        {
            Logging.Enter(this, MethodBase.GetCurrentMethod().Name);

            if (Functions.ApplicationArea.MainView.Validation.HostApplication.WaitUntilHostApplicationOpened())
            {
                if (HostApplication.CloseHostApplication())
                {
                    if (Functions.ApplicationArea.MainView.Validation.HostApplication.WaitUntilHostApplicationClosed())
                    {
                        Reporting.Debug("Closing DeviceCare was successful.");
                        return(true);
                    }
                }
            }

            Reporting.Error(LogInfo.Namespace(MethodBase.GetCurrentMethod()), "Closing DeviceCare was not successful.");
            Reporting.Error(LogInfo.Namespace(MethodBase.GetCurrentMethod()), "DeviceCare process is still running.");
            return(false);
        }