Esempio n. 1
0
        /// <summary>
        /// 设置题目描述中给定部分的 HTML 表示。
        /// </summary>
        /// <param name="part">要设置的题目描述逻辑部分。</param>
        /// <param name="html">给定部分的 HTML 表示。</param>
        /// <exception cref="ArgumentNullException"/>
        public void SetProblemPart(ProblemParts part, string html)
        {
            if (html == null)
            {
                throw new ArgumentNullException(nameof(html));
            }

            if (m_parts.ContainsKey(part))
            {
                m_parts[part] = html;
            }
            else
            {
                m_parts.Add(part, html);
            }

            m_dirty = true;
        }
Esempio n. 2
0
        /// <summary>
        /// 获取题目描述中给定部分的 HTML 表示。
        /// </summary>
        /// <param name="part">要查询的题目描述逻辑部分。</param>
        /// <returns>给定部分的 HTML 表示。</returns>
        public string GetProblemPart(ProblemParts part)
        {
            if (m_parts.ContainsKey(part))
            {
                return(m_parts[part]);
            }

            // 缓存中未找到指定的逻辑部分。读取本地文件系统以查找。
            string filename = GetProblemPartFilename(part);

            if (File.Exists(filename))
            {
                // 将数据存入缓存中。
                string content = File.ReadAllText(filename);
                m_parts.Add(part, content);

                return(content);
            }
            else
            {
                return(string.Empty);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 获取题目描述中给定部分的文件名。
 /// </summary>
 /// <param name="part">要查询的题目描述逻辑部分。</param>
 /// <returns>给定部分的文件名。</returns>
 private string GetProblemPartFilename(ProblemParts part)
 {
     return(string.Concat(m_problemDirectory, "\\", PartFileName[part]));
 }