/// <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); }
/// <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); }