public bool DoModification()
        {
            RecordResultLog("Operation : Start modification mode");

            var mainService = new MainService(this);
            return mainService.StartRegistryModification();
        }
        /// <summary>
        /// verify and found all match of dll
        /// </summary>
        /// <returns></returns>
        public bool FindAllMatch()
        {
            RecordResultLog("Operation : Find All matching only mode (no modification)");

            var mainService = new MainService(this);
            var registryDataList = mainService.FindAllMatchingRegistryData();

            RecordResultLog(string.Format("Number of matched registry item found : {0}", registryDataList.Count), false);

            return true;
        }
        /// <summary>
        /// verify and found the first full poath of dll name
        /// </summary>
        /// <returns></returns>
        public bool FindFirstMatch()
        {
            var mainService = new MainService(this);
            var firstData = mainService.FindFirstMatchedData();

            if (firstData != null)
            {
                ViewModel.ChangeFromValue =  firstData.Value;

                RecordResultLog(string.Format("  --- Registry value '{0}' found!", ViewModel.DllName), false);
                RecordResultLog(string.Format("  --- First location : '{0}'", firstData.Key), false);
                RecordResultLog(string.Format("  --- Value of path : '{0}'", firstData.Value), false);
            }
            else
            {
                ViewModel.ChangeFromValue =  string.Empty;

                RecordResultLog(string.Format("  --- Registry value '{0}' is NOT found!", ViewModel.DllName), false);
            }

            return true;
        }
        public void OnLoadData()
        {
            ViewModel.DllName = MainService.S632DbDllName;

            // set default install path
            var mainService = new MainService(this);
            ViewModel.ChangeToValue = mainService.FinalSrDllFullPath;

            ViewModel.ChangeFromValue = string.Empty;
        }
        public int StartModification(bool confirmToClose)
        {
            _startTime = DateTime.Now;

            ClearResultLog();

            RecordTitle();

            var mainService = new MainService(this);
            var result = mainService.StartRegistryModification();

            _endTime = DateTime.Now;

            RecordFooter();

            if (confirmToClose)
            {
                Console.WriteLine("Press enter to close...");
                Console.ReadLine();
            }

            return result ? 0 : -1;
        }