private void ProcessResult(ProcessResult processResult, TournamentTask task, TournamentTaskAssignment assignee) { if (processResult.State == ProcessState.Completed && processResult.Status == BuildStatus.Complete) { assignee.Attempts += 1; assignee.LastAttemptedAt = DateTime.Now; bool isEqual = storageManager.CompareFiles(task.InputFilePath, processResult.OutputFilePath); assignee.IsPassed = isEqual; taskRepository.Update(task); } else if (processResult.State == ProcessState.Error) { var errorType = processResultHelper.GetErrorType(processResult.Error); if (errorType == ProceesResultErrorType.Unknown || errorType == ProceesResultErrorType.Internal) { return; } assignee.Attempts += 1; assignee.LastAttemptedAt = DateTime.Now; assignee.IsPassed = false; taskRepository.Update(task); } }
public IActionResult OnPostAddTask(int?id) { if (!id.HasValue) { return(NotFound()); } var tournament = tournamentRepository.GetTournament(id.Value); if (tournament == null) { return(NotFound()); } var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var user = userRepository.Get(userId); if (user == null) { return(NotFound()); } TournamentTask task = new TournamentTask { Tournament = tournament, DueDate = tournament.DueDate, Owner = user, Name = "Draft " + DateTime.Now.ToShortDateString(), CreatedAt = DateTime.Now, }; taskRepository.Add(task); return(LocalRedirect($"/Lecturer/Tasks/Edit/{task.TournamentTaskId}")); }
private void InitBaseFields(TournamentTask task) { Id = task.TournamentTaskId; Name = task.Name; LecturerFullName = task.Owner.FirstName + " " + task.Owner.SecondName; Desc = task.Desc; DueDate = task.DueDate; CreatedAt = task.CreatedAt; MaxAttempts = task.MaxAttempt; InputFilePath = task.InputFilePath; Langs = task.SupportedLanguages; }
public StudentTaskDetailsViewModel(TournamentTask task, string userId) { InitBaseFields(task); if (task.Assignees != null) { var assignee = task.Assignees.FirstOrDefault(x => x.User.Id == userId); if (assignee != null) { Passed = assignee.IsPassed; Attempts = assignee.Attempts; LastAttempt = assignee.LastAttemptedAt; } } }
public void Plan(GameSettings settings , params object[] worldStates) { var participants = Json.Read<List<TournamentParticipant>>("participants.json"); var list = new List<TournamentTask>(); int counter = 0; foreach(var e in participants) for (int i = 0; i<worldStates.Length;i++) { var state = worldStates[i]; var task = new TournamentTask { Id = i.ToString() + "-" + e.Id, Participants = new List<TournamentParticipant> { e }, GameSettings = settings, WorldState = JObject.FromObject(state) }; list.Add(task); } Json.Write("tournament.json", list); }
public void Plan(GameSettings settings, int[] counts, object[] worldStates, int seed) { var groups = GetGroups(seed, counts); var list = new List <TournamentTask>(); var gr = new List <TournamentTask[, ]>(); int stateCounter = 0; foreach (var e in groups) { var currentGr = new TournamentTask[e.Count, e.Count]; gr.Add(currentGr); for (int first = 0; first < e.Count - 1; first++) { for (int second = first + 1; second < e.Count; second++) { var p1 = e[first]; var p2 = e[second]; var state = worldStates[stateCounter]; var task = new TournamentTask { Id = stateCounter + "-" + p1.Id + "-" + p2.Id, GameSettings = settings, WorldState = JObject.FromObject(state), Participants = new List <TournamentParticipant> { p1, p2 } }; currentGr[first, second] = task; list.Add(task); stateCounter = (stateCounter + 1) % worldStates.Length; } } } Json.Write("tournament.json", list); Json.Write("groups.json", gr); }
public StudentTaskDetailsViewModel(TournamentTask task) => InitBaseFields(task);