public Dictionary <string, string> ReadIncludedKeyValues(ArticleInclusionConfiguration config, GetArticleModel model)
        {
            _logger.LogTrace("Reading included key-value-pairs of article.");

            string[] keys   = ReadIncludedKeys(config).ToArray();
            string[] values = ReadIncludedValues(config, model).ToArray();

            return(DictionaryUtil.KvpToDictionary(keys, values));
        }
        public IEnumerable <string> ReadIncludedKeys(ArticleInclusionConfiguration config)
        {
            _logger.LogTrace("Reading included keys of article.");

            var keys = new List <string>();

            if (config.IncludeId)
            {
                keys.Add(ID);
            }
            if (config.IncludeType)
            {
                keys.Add(TYPE);
            }
            if (config.IncludeUserId)
            {
                keys.Add(USER_ID);
            }
            if (config.IncludeText)
            {
                keys.Add(TEXT);
            }
            if (config.IncludeCommentIds)
            {
                keys.Add(COMMENT_IDS);
            }
            if (config.IncludeKarma)
            {
                keys.Add(KARMA);
            }
            if (config.IncludeTitle)
            {
                keys.Add(TITLE);
            }
            if (config.IncludeUsersLiked)
            {
                keys.Add(USERS_LIKED);
            }
            if (config.IncludeUsersDisliked)
            {
                keys.Add(USERS_DISLIKED);
            }
            if (config.IncludePostDate)
            {
                keys.Add(POST_DATE);
            }
            if (config.IncludeBoardId)
            {
                keys.Add(BOARD_ID);
            }
            if (config.IncludeDeleted)
            {
                keys.Add(DELETED);
            }
            if (config.IncludeAssociatedImageId)
            {
                keys.Add(ASSOCIATED_IMAGE_ID);
            }

            return(keys);
        }
        public IEnumerable <string> ReadIncludedValues(ArticleInclusionConfiguration config, GetArticleModel article)
        {
            _logger.LogTrace("Reading included values of article.");

            var  values    = new List <string>();
            char delimiter = ',';

            if (config.IncludeId)
            {
                values.Add(article.Id.ToString());
            }
            if (config.IncludeType)
            {
                values.Add(article.Type.ToString().Quote());
            }
            if (config.IncludeUserId)
            {
                values.Add(article.UserId.ToString());
            }
            if (config.IncludeText)
            {
                values.Add(article.Text.Quote());
            }
            if (config.IncludeCommentIds)
            {
                values.Add(article.CommentIds.ToDelimitedList(delimiter).Quote());
            }
            if (config.IncludeKarma)
            {
                values.Add(article.Karma.ToString());
            }
            if (config.IncludeTitle)
            {
                values.Add(article.Title.Quote());
            }
            if (config.IncludeUsersLiked)
            {
                values.Add(article.UsersLiked.ToDelimitedList(delimiter).Quote());
            }
            if (config.IncludeUsersDisliked)
            {
                values.Add(article.UsersDisliked.ToDelimitedList(delimiter).Quote());
            }
            if (config.IncludePostDate)
            {
                values.Add(article.PostDate.ToString().Quote());
            }
            if (config.IncludeBoardId)
            {
                values.Add(article.BoardId.ToString());
            }
            if (config.IncludeDeleted)
            {
                values.Add(article.Deleted.ToString());
            }
            if (config.IncludeAssociatedImageId)
            {
                values.Add(article.AssociatedImageId.ToString());
            }

            return(values);
        }