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