public static string ProposeFileName(this Reference source, FileNameTrimType fileNameTrimType = FileNameTrimType.None) { if (source == null) { return(null); } var renameSettings = source.Project.Engine.Settings.Engine.Settings.Rename; // TODO DL: für 5.2 abändern http://tfs2012:8080/tfs/CITAVICollection/Citavi/_workitems/edit/17175 //var values = renameSettings.NameDefineIds .Select(id => GetValue(source, id)).ToList(); var values = new List <ReferencePropertyId> { ReferencePropertyId.ShortTitle }.Select(id => source.GetReferencePropertybyId(id)).ToList(); values.RemoveAll(v => string.IsNullOrWhiteSpace(v)); var result = string.Join(renameSettings.Separator.ToStringSeparator(), values); if (string.IsNullOrEmpty(result)) { return(null); } result = Path2.GetValidFileName(result.Clean()); if (fileNameTrimType != FileNameTrimType.None) { result = result.Trim(fileNameTrimType, renameSettings.MaxNameLength); } return(result); }
public static string Trim(this string result, FileNameTrimType fileNameTrimType, int maxLength) { if (result.Length > maxLength) { int diff = result.Length - maxLength; switch (fileNameTrimType) { case FileNameTrimType.FromStart: return(result.Substring(diff)); case FileNameTrimType.FromEnd: return(result.Substring(0, result.Length - diff)); } } return(result); }