Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }