Пример #1
0
 /// <summary>Update the session state according to task results.</summary>
 private SessionData UpdateSession(SessionData session)
 {
     if (session.IsTaskRunning && !TaskService.TryGetRunningTask(session.RunningTaskId, out var _))
     {
         if (
             TaskService.TryGetTask(session.RunningTaskId, out var finishedTask) &&
             finishedTask.Result is TaskData.Success &&
             session.CurrentProblemId < Problems.Count &&
             Problems.AsList[session.CurrentProblemId] == finishedTask.Problem
             )
         {
             session = session.AdvanceToNextProblem();
         }
         session = session.RemoveRunningTaskId();
     }
     return(session);
 }