private IntroductionStateEnum CheckFolderRenameState(DisableIntroductionAction action)
        {
            // Check if folder exists
            var expectedInitialDirectoryName = action.InitialName;
            var directoryIsInInitialState    = Directory.Exists(_installationPath.FullName + "\\" + expectedInitialDirectoryName);

            // Return status
            return(directoryIsInInitialState ? IntroductionStateEnum.Enabled : IntroductionStateEnum.Disabled);
        }
        private IntroductionStateEnum CheckFileRenameState(DisableIntroductionAction action)
        {
            // Check if file exists
            var expectedInitialFileName = action.InitialName;
            var fileIsInInitialState    = File.Exists(_installationPath.FullName + "\\" + expectedInitialFileName);

            // Return status
            return(fileIsInInitialState ? IntroductionStateEnum.Enabled : IntroductionStateEnum.Disabled);
        }
コード例 #3
0
        private bool DispatchActionsPerType(DisableIntroductionAction action)
        {
            switch (action.Type)
            {
            case DisableActionTypeEnum.FileRename:
                return(ProcessRenameFile(action));

            case DisableActionTypeEnum.FolderRename:
                return(ProcessRenameFolder(action));

            case DisableActionTypeEnum.ShortcutEdition:
                return(ProcessEditShortcut(action));

            default:
                throw new Exception($"DisableActionTypeEnum {action.Type} not found");
            }
        }
        private IntroductionStateEnum GetStateFromAction(DisableIntroductionAction action)
        {
            switch (action.Type)
            {
            case DisableActionTypeEnum.FileRename:
                return(CheckFileRenameState(action));

            case DisableActionTypeEnum.FolderRename:
                return(CheckFolderRenameState(action));

            case DisableActionTypeEnum.ShortcutEdition:
                return(CheckShortcutEdition(action));

            default:
                throw new Exception($"DisableActionTypeEnum {action.Type} not known");
            }
        }
コード例 #5
0
        protected override bool ProcessRenameFile(DisableIntroductionAction action)
        {
            try
            {
                var pattern       = GetCleanPath($"{_detectionResult.InstallationPath}\\{action.InitialName}");
                var pathsToRename = _pathPatternTranslator.GetPathFromPattern(pattern);
                foreach (var path in pathsToRename)
                {
                    var destinationFileFullPath = $@"{path}{GlobalNamesStruct.RenameSuffix}";
                    _fileRenamer.RenameFile(path, destinationFileFullPath);
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #6
0
        protected override bool ProcessRenameFolder(DisableIntroductionAction action)
        {
            try
            {
                var directoryFullPath            = $"{_detectionResult.InstallationPath}\\{action.InitialName}";
                var destinationDirectoryFullPath = $"{_detectionResult.InstallationPath}\\{action.InitialName}{GlobalNamesStruct.RenameSuffix}";

                if (Directory.Exists(destinationDirectoryFullPath))
                {
                    File.Delete(destinationDirectoryFullPath);
                }

                Directory.Move(directoryFullPath, destinationDirectoryFullPath);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #7
0
 protected abstract bool ProcessEditShortcut(DisableIntroductionAction action);
コード例 #8
0
 protected abstract bool ProcessRenameFolder(DisableIntroductionAction action);
 private IntroductionStateEnum CheckShortcutEdition(DisableIntroductionAction action)
 {
     throw new NotImplementedException();
 }
コード例 #10
0
 protected override bool ProcessEditShortcut(DisableIntroductionAction action)
 {
     throw new NotImplementedException();
 }