Example #1
0
        public static string ParseValue(this string value, IDocumentData documentData, PageNumberInfo pageNumberInfo, DocumentProperties documentProperties, bool returnErrorMessage = true)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(value);
            }

            //Pick data fields and replace them with correct data
            var parsedValue = value;

            var startIndex = 0;
            var pos        = parsedValue.IndexOf("{", startIndex, StringComparison.Ordinal);

            while (pos != -1)
            {
                var posE     = parsedValue.IndexOf("}", pos, StringComparison.Ordinal);
                var dataName = parsedValue.Substring(pos + 1, posE - pos - 1);

                string dataValue = null;
                if (pageNumberInfo != null)
                {
                    dataValue = pageNumberInfo.GetPageNumberInfo(dataName);
                }

                switch (dataName)
                {
                case "Author":
                    dataValue = documentProperties.Author;
                    break;

                case "Subject":
                    dataValue = documentProperties.Subject;
                    break;

                case "Title":
                    dataValue = documentProperties.Title;
                    break;

                case "Creator":
                    dataValue = documentProperties.Creator;
                    break;
                }

                if (dataValue == null)
                {
                    dataValue = (documentData != null && documentData.Get(dataName) != null) ? documentData.Get(dataName) : (returnErrorMessage ? string.Format("[Data '{0}' is missing]", dataName) : string.Empty);
                }

                startIndex  = pos + dataValue.Length;
                parsedValue = string.Format("{0}{1}{2}", parsedValue.Substring(0, pos), dataValue, parsedValue.Substring(posE + 1));

                pos = parsedValue.IndexOf("{", startIndex, StringComparison.Ordinal);
            }

            return(parsedValue.TrimEnd(' '));
        }
Example #2
0
        protected override string GetValue(IDocumentData documentData, PageNumberInfo pageNumberInfo, DocumentProperties documentProperties)
        {
            if (!string.IsNullOrEmpty(HideValue))
            {
                var result = documentData.Get(HideValue);
                if (string.IsNullOrEmpty(result))
                {
                    return(string.Empty);
                }
            }

            return(Value.ParseValue(documentData, pageNumberInfo, documentProperties));
        }