Exemplo n.º 1
0
        public async Task Thumbnail(string[] args)
        {
            _appSettings.Verbose         = ArgsHelper.NeedVerbose(args);
            _appSettings.ApplicationType = AppSettings.StarskyAppType.Thumbnail;

            if (new ArgsHelper().NeedHelp(args))
            {
                new ArgsHelper(_appSettings, _console).NeedHelpShowDialog();
                return;
            }

            new ArgsHelper().SetEnvironmentByArgs(args);

            var subPath            = new ArgsHelper(_appSettings).SubPathOrPathValue(args);
            var getSubPathRelative = new ArgsHelper(_appSettings).GetRelativeValue(args);

            if (getSubPathRelative != null)
            {
                subPath = new StructureService(_selectorStorage.Get(
                                                   SelectorStorage.StorageServices.SubPath), _appSettings.Structure)
                          .ParseSubfolders(getSubPathRelative);
            }

            if (new ArgsHelper(_appSettings).GetThumbnail(args))
            {
                var storage = _selectorStorage.Get(SelectorStorage.StorageServices.SubPath);

                var isFolderOrFile = storage.IsFolderOrFile(subPath);

                if (_appSettings.IsVerbose())
                {
                    _console.WriteLine(isFolderOrFile.ToString());
                }

                if (isFolderOrFile == FolderOrFileModel.FolderOrFileTypeList.File)
                {
                    // If single file => create thumbnail
                    var fileHash = (await new FileHash(storage).GetHashCodeAsync(subPath));
                    if (fileHash.Value)
                    {
                        await _thumbnailService.CreateThumb(subPath, fileHash.Key);                         // <= this uses subPath
                    }
                }
                else
                {
                    await _thumbnailService.CreateThumb(subPath);
                }
                _console.WriteLine("Thumbnail Done!");
            }

            if (new ArgsHelper(_appSettings).NeedCleanup(args))
            {
                _console.WriteLine(">>>>> Heavy CPU Feature => NeedCacheCleanup <<<<< ");
                await _thumbnailCleaner.CleanAllUnusedFilesAsync();

                _console.WriteLine("Done!");
            }
        }