/// <summary> /// Test whether the specified tag has a value /// </summary> /// <param name="test"></param> /// <param name="vid"></param> /// <param name="anime"></param> /// <returns></returns> private static bool EvaluateTestI(string test, VideoLocal vid, AniDB_File aniFile, List<AniDB_Episode> episodes, AniDB_Anime anime, VideoInfo vi) { try { bool notCondition = false; if (test.Substring(0, 1).Equals("!")) { notCondition = true; test = test.Substring(1, test.Length - 1); } if (anime == null) return false; #region Test if Anime ID exists // Test if Anime ID exists string tagAnimeID = Constants.FileRenameTag.AnimeID.Substring(1, Constants.FileRenameTag.AnimeID.Length - 1); // remove % at the front if (test.Trim().Equals(tagAnimeID, StringComparison.InvariantCultureIgnoreCase)) { // manually linked files won't have an anime id if (aniFile != null) { if (notCondition) return false; else return true; } else { if (notCondition) return true; else return false; } } #endregion #region Test if Group ID exists // Test if Group ID exists string tagGroupID = Constants.FileRenameTag.GroupID.Substring(1, Constants.FileRenameTag.GroupID.Length - 1); // remove % at the front if (test.Trim().Equals(tagGroupID, StringComparison.InvariantCultureIgnoreCase)) { // manually linked files won't have an group id if (aniFile != null) { if (notCondition) return false; else return true; } else { if (notCondition) return false; else return true; } } #endregion #region Test if Original File Name exists // Test if Original File Nameexists string tagOriginalFileName = Constants.FileRenameTag.OriginalFileName.Substring(1, Constants.FileRenameTag.OriginalFileName.Length - 1); // remove % at the front if (test.Trim().Equals(tagOriginalFileName, StringComparison.InvariantCultureIgnoreCase)) { // manually linked files won't have an Original File Name if (aniFile != null) { if (string.IsNullOrEmpty(aniFile.FileName)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } else { if (notCondition) return true; else return false; } } #endregion #region Test if Episode Number exists // Test if Episode Number exists string tagEpisodeNumber = Constants.FileRenameTag.EpisodeNumber.Substring(1, Constants.FileRenameTag.EpisodeNumber.Length - 1); // remove % at the front if (test.Trim().Equals(tagEpisodeNumber, StringComparison.InvariantCultureIgnoreCase)) { // manually linked files won't have an Episode Number if (aniFile != null) { if (notCondition) return false; else return true; } else { if (notCondition) return true; else return false; } } #endregion #region Test file version // Test if Group Short Name exists - yes it always does string tagFileVersion = Constants.FileRenameTag.FileVersion.Substring(1, Constants.FileRenameTag.FileVersion.Length - 1); // remove % at the front if (test.Trim().Equals(tagFileVersion, StringComparison.InvariantCultureIgnoreCase)) { // manually linked files won't have an anime id if (aniFile != null) { if (notCondition) return false; else return true; } else { if (notCondition) return true; else return false; } } #endregion #region Test if ED2K Upper exists // Test if Group Short Name exists - yes it always does string tagED2KUpper = Constants.FileRenameTag.ED2KUpper.Substring(1, Constants.FileRenameTag.ED2KUpper.Length - 1); // remove % at the front if (test.Trim().Equals(tagED2KUpper, StringComparison.InvariantCultureIgnoreCase)) { if (notCondition) return false; else return true; } #endregion #region Test if ED2K Lower exists // Test if Group Short Name exists - yes it always does string tagED2KLower = Constants.FileRenameTag.ED2KLower.Substring(1, Constants.FileRenameTag.ED2KLower.Length - 1); // remove % at the front if (test.Trim().Equals(tagED2KLower, StringComparison.InvariantCultureIgnoreCase)) { if (notCondition) return false; else return true; } #endregion #region Test if English title exists string tagAnimeNameEnglish = Constants.FileRenameTag.AnimeNameEnglish.Substring(1, Constants.FileRenameTag.AnimeNameEnglish.Length - 1); // remove % at the front if (test.Trim().Equals(tagAnimeNameEnglish, StringComparison.InvariantCultureIgnoreCase)) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.English, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { if (notCondition) return false; else return true; } } } if (notCondition) return true; else return false; } #endregion #region Test if Kanji title exists string tagAnimeNameKanji = Constants.FileRenameTag.AnimeNameKanji.Substring(1, Constants.FileRenameTag.AnimeNameKanji.Length - 1); // remove % at the front if (test.Trim().Equals(tagAnimeNameKanji, StringComparison.InvariantCultureIgnoreCase)) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.Kanji, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { if (notCondition) return false; else return true; } } } if (notCondition) return true; else return false; } #endregion #region Test if Romaji title exists string tagAnimeNameRomaji = Constants.FileRenameTag.AnimeNameRomaji.Substring(1, Constants.FileRenameTag.AnimeNameRomaji.Length - 1); // remove % at the front if (test.Trim().Equals(tagAnimeNameRomaji, StringComparison.InvariantCultureIgnoreCase)) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.Romaji, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { if (notCondition) return false; else return true; } } } if (notCondition) return true; else return false; } #endregion #region Test if episode name (english) exists string tagEpisodeNameEnglish = Constants.FileRenameTag.EpisodeNameEnglish.Substring(1, Constants.FileRenameTag.EpisodeNameEnglish.Length - 1); // remove % at the front if (test.Trim().Equals(tagEpisodeNameEnglish, StringComparison.InvariantCultureIgnoreCase)) { if (string.IsNullOrEmpty(episodes[0].EnglishName)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if episode name (romaji) exists string tagEpisodeNameRomaji = Constants.FileRenameTag.EpisodeNameRomaji.Substring(1, Constants.FileRenameTag.EpisodeNameRomaji.Length - 1); // remove % at the front if (test.Trim().Equals(tagEpisodeNameRomaji, StringComparison.InvariantCultureIgnoreCase)) { if (string.IsNullOrEmpty(episodes[0].RomajiName)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if group name short exists // Test if Group Short Name exists - yes it always does string tagGroupShortName = Constants.FileRenameTag.GroupShortName.Substring(1, Constants.FileRenameTag.GroupShortName.Length - 1); // remove % at the front if (test.Trim().Equals(tagGroupShortName, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || string.IsNullOrEmpty(aniFile.Anime_GroupNameShort)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if group name long exists // Test if Group Short Name exists - yes it always does string tagGroupLongName = Constants.FileRenameTag.GroupLongName.Substring(1, Constants.FileRenameTag.GroupLongName.Length - 1); // remove % at the front if (test.Trim().Equals(tagGroupLongName, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || string.IsNullOrEmpty(aniFile.Anime_GroupName)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if CRC Lower exists // Test if Group Short Name exists - yes it always does string tagCRCLower = Constants.FileRenameTag.CRCLower.Substring(1, Constants.FileRenameTag.CRCLower.Length - 1); // remove % at the front if (test.Trim().Equals(tagCRCLower, StringComparison.InvariantCultureIgnoreCase)) { string crc = vid.CRC32; if (string.IsNullOrEmpty(crc) && aniFile != null) crc = aniFile.CRC; if (string.IsNullOrEmpty(crc)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if CRC Upper exists // Test if Group Short Name exists - yes it always does string tagCRCUpper = Constants.FileRenameTag.CRCUpper.Substring(1, Constants.FileRenameTag.CRCUpper.Length - 1); // remove % at the front if (test.Trim().Equals(tagCRCUpper, StringComparison.InvariantCultureIgnoreCase)) { string crc = vid.CRC32; if (string.IsNullOrEmpty(crc) && aniFile != null) crc = aniFile.CRC; if (string.IsNullOrEmpty(crc)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test file has an audio track string tagDubLanguage = Constants.FileRenameTag.DubLanguage.Substring(1, Constants.FileRenameTag.DubLanguage.Length - 1); // remove % at the front if (test.Trim().Equals(tagDubLanguage, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || aniFile.Languages.Count == 0) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test file has a subtitle track string tagSubLanguage = Constants.FileRenameTag.SubLanguage.Substring(1, Constants.FileRenameTag.SubLanguage.Length - 1); // remove % at the front if (test.Trim().Equals(tagSubLanguage, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || aniFile.Subtitles.Count == 0) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if Video resolution exists string tagVidRes = Constants.FileRenameTag.Resolution.Substring(1, Constants.FileRenameTag.Resolution.Length - 1); // remove % at the front if (test.Trim().Equals(tagVidRes, StringComparison.InvariantCultureIgnoreCase)) { string vidRes = ""; if (aniFile != null) vidRes = aniFile.File_VideoResolution; if (string.IsNullOrEmpty(vidRes) && vi != null) vidRes = vi.VideoResolution; if (string.IsNullOrEmpty(vidRes)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test file has a video codec defined string tagVideoCodec = Constants.FileRenameTag.VideoCodec.Substring(1, Constants.FileRenameTag.VideoCodec.Length - 1); // remove % at the front if (test.Trim().Equals(tagVideoCodec, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || string.IsNullOrEmpty(aniFile.File_VideoCodec)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test file has an audio codec defined string tagAudioCodec = Constants.FileRenameTag.AudioCodec.Substring(1, Constants.FileRenameTag.AudioCodec.Length - 1); // remove % at the front if (test.Trim().Equals(tagAudioCodec, StringComparison.InvariantCultureIgnoreCase)) { if (aniFile == null || string.IsNullOrEmpty(aniFile.File_AudioCodec)) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test file has Video Bit Depth defined string tagVideoBitDepth = Constants.FileRenameTag.VideoBitDepth.Substring(1, Constants.FileRenameTag.VideoBitDepth.Length - 1); // remove % at the front if (test.Trim().Equals(tagVideoBitDepth, StringComparison.InvariantCultureIgnoreCase)) { bool bitDepthExists = false; if (vi != null) { if (!string.IsNullOrEmpty(vi.VideoBitDepth)) { int bitDepth = 0; int.TryParse(vi.VideoBitDepth, out bitDepth); if (bitDepth > 0) bitDepthExists = true; } } if (!bitDepthExists) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if censored string tagCensored = Constants.FileRenameTag.Censored.Substring(1, Constants.FileRenameTag.Censored.Length - 1); // remove % at the front if (test.Trim().Equals(tagCensored, StringComparison.InvariantCultureIgnoreCase)) { bool isCensored = false; if (aniFile != null) isCensored = aniFile.IsCensored == 1; if (!isCensored) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if Deprecated string tagDeprecated = Constants.FileRenameTag.Deprecated.Substring(1, Constants.FileRenameTag.Deprecated.Length - 1); // remove % at the front if (test.Trim().Equals(tagDeprecated, StringComparison.InvariantCultureIgnoreCase)) { bool isDeprecated = false; if (aniFile != null) isDeprecated = aniFile.IsDeprecated == 1; if (!isDeprecated) { if (notCondition) return true; else return false; } else { if (notCondition) return false; else return true; } } #endregion #region Test if file has more than one episode #endregion return false; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return false; } }
private static void PerformActionOnFileNameADD(ref string newFileName, string action, VideoLocal vid, AniDB_File aniFile, List<AniDB_Episode> episodes, AniDB_Anime anime, VideoInfo vi) { // TODO Remove illegal characters // TODO check for double episodes // TODO allow for synonyms to be used // TODO allow a strategy for episode numbers // fixed 0 padding, look at number of episodes in series newFileName += action; newFileName = newFileName.Replace("'", ""); #region Anime ID if (action.Trim().ToLower().Contains(Constants.FileRenameTag.AnimeID.ToLower())) { newFileName = newFileName.Replace(Constants.FileRenameTag.AnimeID, anime.AnimeID.ToString()); } #endregion #region English title if (action.Trim().ToLower().Contains(Constants.FileRenameTag.AnimeNameEnglish.ToLower())) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.English, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { newFileName = newFileName.Replace(Constants.FileRenameTag.AnimeNameEnglish, ti.Title); } } } } #endregion #region Romaji title if (action.Trim().ToLower().Contains(Constants.FileRenameTag.AnimeNameRomaji.ToLower())) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.Romaji, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { newFileName = newFileName.Replace(Constants.FileRenameTag.AnimeNameRomaji, ti.Title); } } } } #endregion #region Kanji title if (action.Trim().ToLower().Contains(Constants.FileRenameTag.AnimeNameKanji.ToLower())) { foreach (AniDB_Anime_Title ti in anime.GetTitles()) { if (ti.Language.Equals(Constants.AniDBLanguageType.Kanji, StringComparison.InvariantCultureIgnoreCase)) { if (ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Main, StringComparison.InvariantCultureIgnoreCase) || ti.TitleType.Trim().Equals(Constants.AnimeTitleType.Official, StringComparison.InvariantCultureIgnoreCase)) { newFileName = newFileName.Replace(Constants.FileRenameTag.AnimeNameKanji, ti.Title); } } } } #endregion #region Episode Number if (action.Trim().ToLower().Contains(Constants.FileRenameTag.EpisodeNumber.ToLower())) { int zeroPadding = 2; string prefix = ""; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Credits) prefix = "C"; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Other) prefix = "O"; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Parody) prefix = "P"; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Special) prefix = "S"; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Trailer) prefix = "T"; int epCount = 1; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Episode) epCount = anime.EpisodeCountNormal; if (episodes[0].EpisodeTypeEnum == AniDBAPI.enEpisodeType.Special) epCount = anime.EpisodeCountSpecial; if (epCount > 10 && epCount < 100) zeroPadding = 2; if (epCount > 99 && epCount < 1000) zeroPadding = 3; if (epCount > 999) zeroPadding = 4; string episodeNumber = ""; // normal episode episodeNumber = prefix + episodes[0].EpisodeNumber.ToString().PadLeft(zeroPadding, '0'); if (episodes.Count > 1) episodeNumber += "-" + episodes[episodes.Count - 1].EpisodeNumber.ToString().PadLeft(zeroPadding, '0'); newFileName = newFileName.Replace(Constants.FileRenameTag.EpisodeNumber, episodeNumber); } #endregion #region Episode name (english) if (action.Trim().ToLower().Contains(Constants.FileRenameTag.EpisodeNameEnglish.ToLower())) newFileName = newFileName.Replace(Constants.FileRenameTag.EpisodeNameEnglish, episodes[0].EnglishName); #endregion #region Episode name (romaji) if (action.Trim().ToLower().Contains(Constants.FileRenameTag.EpisodeNameRomaji.ToLower())) newFileName = newFileName.Replace(Constants.FileRenameTag.EpisodeNameRomaji, episodes[0].RomajiName); #endregion #region sub group name (short) if (action.Trim().ToLower().Contains(Constants.FileRenameTag.GroupShortName.ToLower())) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.GroupShortName, aniFile.Anime_GroupNameShort); } #endregion #region sub group name (long) if (action.Trim().ToLower().Contains(Constants.FileRenameTag.GroupLongName.ToLower())) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.GroupLongName, aniFile.Anime_GroupName); } #endregion #region ED2k hash (upper) if (action.Trim().Contains(Constants.FileRenameTag.ED2KUpper)) { newFileName = newFileName.Replace(Constants.FileRenameTag.ED2KUpper, vid.Hash.ToUpper()); } #endregion #region ED2k hash (lower) if (action.Trim().Contains(Constants.FileRenameTag.ED2KLower)) { newFileName = newFileName.Replace(Constants.FileRenameTag.ED2KLower, vid.Hash.ToLower()); } #endregion #region CRC (upper) if (action.Trim().Contains(Constants.FileRenameTag.CRCUpper)) { string crc = vid.CRC32; if (string.IsNullOrEmpty(crc) && aniFile != null) crc = aniFile.CRC; if (!string.IsNullOrEmpty(crc)) { crc = crc.ToUpper(); newFileName = newFileName.Replace(Constants.FileRenameTag.CRCUpper, crc); } } #endregion #region CRC (lower) if (action.Trim().Contains(Constants.FileRenameTag.CRCLower)) { string crc = vid.CRC32; if (string.IsNullOrEmpty(crc) && aniFile != null) crc = aniFile.CRC; if (!string.IsNullOrEmpty(crc)) { crc = crc.ToLower(); newFileName = newFileName.Replace(Constants.FileRenameTag.CRCLower, crc); } } #endregion #region File Version if (action.Trim().Contains(Constants.FileRenameTag.FileVersion)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.FileVersion, aniFile.FileVersion.ToString()); } #endregion #region Audio languages (dub) if (action.Trim().Contains(Constants.FileRenameTag.DubLanguage)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.DubLanguage, aniFile.LanguagesRAW); } #endregion #region Subtitle languages (sub) if (action.Trim().Contains(Constants.FileRenameTag.SubLanguage)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.SubLanguage, aniFile.SubtitlesRAW); } #endregion #region Video Codec if (action.Trim().Contains(Constants.FileRenameTag.VideoCodec)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.VideoCodec, aniFile.File_VideoCodec); } #endregion #region Audio Codec if (action.Trim().Contains(Constants.FileRenameTag.AudioCodec)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.AudioCodec, aniFile.File_AudioCodec); } #endregion #region Video Bit Depth if (action.Trim().Contains(Constants.FileRenameTag.VideoBitDepth)) { newFileName = newFileName.Replace(Constants.FileRenameTag.VideoBitDepth, vi.VideoBitDepth); } #endregion #region Video Source if (action.Trim().Contains(Constants.FileRenameTag.Source)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.Source, aniFile.File_Source); } #endregion #region Anime Type if (action.Trim().Contains(Constants.FileRenameTag.Type)) { newFileName = newFileName.Replace(Constants.FileRenameTag.Type, anime.AnimeTypeRAW); } #endregion #region Video Resolution if (action.Trim().Contains(Constants.FileRenameTag.Resolution)) { string res = ""; bool hasResolution = true; if (aniFile != null) { res = aniFile.File_VideoResolution; if (aniFile.File_VideoResolution.Equals("0x0", StringComparison.InvariantCultureIgnoreCase)) hasResolution = false; if (aniFile.File_VideoResolution.Equals(Constants.FileRenameReserved.Unknown, StringComparison.InvariantCultureIgnoreCase)) hasResolution = false; } else hasResolution = false; if (!hasResolution) { // try the video info if (vi != null) res = vi.VideoResolution; } newFileName = newFileName.Replace(Constants.FileRenameTag.Resolution, res.Trim()); } #endregion #region Year if (action.Trim().Contains(Constants.FileRenameTag.Year)) { newFileName = newFileName.Replace(Constants.FileRenameTag.Year, anime.BeginYear.ToString()); } #endregion #region File ID if (action.Trim().Contains(Constants.FileRenameTag.FileID)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.FileID, aniFile.FileID.ToString()); } #endregion #region Episode ID if (action.Trim().Contains(Constants.FileRenameTag.EpisodeID)) { newFileName = newFileName.Replace(Constants.FileRenameTag.EpisodeID, episodes[0].EpisodeID.ToString()); } #endregion #region Group ID if (action.Trim().Contains(Constants.FileRenameTag.GroupID)) { if (aniFile != null) newFileName = newFileName.Replace(Constants.FileRenameTag.GroupID, aniFile.GroupID.ToString()); } #endregion #region Original File Name if (action.Trim().Contains(Constants.FileRenameTag.OriginalFileName)) { // remove the extension first if (aniFile != null) { string ext = Path.GetExtension(aniFile.FileName); string partial = aniFile.FileName.Substring(0, aniFile.FileName.Length - ext.Length); newFileName = newFileName.Replace(Constants.FileRenameTag.OriginalFileName, partial); } } #endregion #region Censored if (action.Trim().Contains(Constants.FileRenameTag.Censored)) { newFileName = newFileName.Replace(Constants.FileRenameTag.Censored, "cen"); } #endregion #region Deprecated if (action.Trim().Contains(Constants.FileRenameTag.Deprecated)) { newFileName = newFileName.Replace(Constants.FileRenameTag.Deprecated, "depr"); } #endregion }