Exemple #1
0
        /// <summary>
        /// Update Async with ExifTool
        /// </summary>
        /// <param name="updateModel">data</param>
        /// <param name="inputSubPaths">paths</param>
        /// <param name="comparedNames">changed</param>
        /// <param name="includeSoftware">overwrite Starsky name</param>
        /// <param name="renameThumbnail">update name</param>
        /// <returns>Tuple (command, hash)</returns>
        public async Task <ValueTuple <string, List <string> > > UpdateAsync(FileIndexItem updateModel,
                                                                             List <string> inputSubPaths, List <string> comparedNames, bool includeSoftware, bool renameThumbnail)
        {
            // Creation and update .xmp file with all available content
            await CreateXmpFileIsNotExist(updateModel, inputSubPaths);

            // Rename .dng files .xmp to update in exifTool
            var subPathsList = PathsListTagsFromFile(inputSubPaths);

            var command = ExifToolCommandLineArgs(updateModel, comparedNames, includeSoftware);

            var fileHashes = new List <string>();

            foreach (var path in subPathsList.Where(path => _iStorage.ExistFile(path)))
            {
                // to rename to filename of the thumbnail to the new hash
                if (!renameThumbnail)
                {
                    await _exifTool.WriteTagsAsync(path, command);

                    continue;
                }
                fileHashes.Add((await _exifTool.WriteTagsAndRenameThumbnailAsync(path, command)).Value);
            }

            if (!string.IsNullOrEmpty(updateModel.FileHash) && _thumbnailStorage.ExistFile(updateModel.FileHash))
            {
                await _exifTool.WriteTagsThumbnailAsync(updateModel.FileHash, command);
            }

            return(new ValueTuple <string, List <string> >(command, fileHashes));
        }
Exemple #2
0
 public async Task <bool> WriteTagsThumbnailAsync(string fileHash, string command)
 {
     return(await _exifTool.WriteTagsThumbnailAsync(fileHash, command));
 }