示例#1
0
        /// <summary>
        /// 从底层模型对象创建 UserSubmissionStatistics 类的新实例。
        /// </summary>
        /// <param name="model">模型对象。</param>
        /// <returns>从模型对象创建的 UserSubmissionStatistics 类。</returns>
        /// <exception cref="ArgumentNullException"/>
        internal static UserSubmissionStatistics FromStatisticsModel(UserSubmissionStatisticsModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            UserSubmissionStatistics stat = new UserSubmissionStatistics()
            {
                TotalSubmissions    = model.TotalSubmissions,
                AcceptedSubmissions = model.AcceptedSubmissions
            };

            // 复制列表对象。

            // TODO: 复制用户提交 ID 列表到提交句柄列表。

            foreach (string probId in model.AttemptedProblemId)
            {
                stat.AttemptedProblems.Add(new ProblemHandle(probId));
            }
            foreach (string probId in model.AcceptedProblemId)
            {
                stat.AcceptedProblems.Add(new ProblemHandle(probId));
            }

            return(stat);
        }
示例#2
0
        /// <summary>
        /// 从当前对象创建底层模型对象。
        /// </summary>
        /// <returns>当前对象的底层模型对象。</returns>
        internal UserSubmissionStatisticsModel ToStatisticsModel()
        {
            UserSubmissionStatisticsModel model = new UserSubmissionStatisticsModel()
            {
                TotalSubmissions    = TotalSubmissions,
                AcceptedSubmissions = AcceptedSubmissions,
            };

            // 复制列表对象。
            foreach (SubmissionHandle handle in Submissions)
            {
                model.Submissions.Add(handle.SubmissionId);
            }
            foreach (ProblemHandle handle in AttemptedProblems)
            {
                model.AttemptedProblemId.Add(handle.ProblemId);
            }
            foreach (ProblemHandle handle in AcceptedProblems)
            {
                model.AttemptedProblemId.Add(handle.ProblemId);
            }

            return(model);
        }