public ParticipantScoresBusinessService(
     IParticipantScoresDataService participantScoresData,
     ISubmissionsDataService submissionsData)
 {
     this.participantScoresData = participantScoresData;
     this.submissionsData       = submissionsData;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TestsController"/> class.
 /// </summary>
 /// <param name="data">Open Judge System Database context for the control
 /// ler to work with</param>
 /// <param name="submissionsForProcessingData">ISubmissionsForProcessingDataService
 /// for the controller to work with the SubmissionsForProcessing table via a service</param>
 /// /// <param name="participantScoresData">IParticipantScoresDataService
 /// for the controller to work with the ParticipantScore table via a service</param>
 public TestsController(
     IOjsData data,
     ISubmissionsForProcessingDataService submissionsForProcessingData,
     IParticipantScoresDataService participantScoresData)
     : base(data)
 {
     this.submissionsForProcessingData = submissionsForProcessingData;
     this.participantScoresData        = participantScoresData;
 }
 public ContestsBusinessService(
     IContestsDataService contestsData,
     IParticipantsDataService participantsData,
     IParticipantScoresDataService participantScoresData)
 {
     this.contestsData          = contestsData;
     this.participantsData      = participantsData;
     this.participantScoresData = participantScoresData;
 }
Example #4
0
 public ResultsController(
     IOjsData data,
     IContestsDataService contestsData,
     IParticipantsDataService participantsData,
     IParticipantScoresDataService participantScoresData)
     : base(data)
 {
     this.contestsData          = contestsData;
     this.participantsData      = participantsData;
     this.participantScoresData = participantScoresData;
 }
Example #5
0
 public SubmissionsBusinessService(
     IEfDeletableEntityRepository <Submission> submissions,
     ISubmissionsDataService submissionsData,
     IArchivedSubmissionsDataService archivedSubmissionsData,
     IParticipantScoresDataService participantScoresData)
 {
     this.submissions             = submissions;
     this.submissionsData         = submissionsData;
     this.archivedSubmissionsData = archivedSubmissionsData;
     this.participantScoresData   = participantScoresData;
 }
 public ContestsBusinessService(
     IEfDeletableEntityRepository <Contest> contests,
     IContestsDataService contestsData,
     IParticipantsDataService participantsData,
     IParticipantScoresDataService participantScoresData,
     IExamGroupsDataService examGroupsData)
 {
     this.contests              = contests;
     this.contestsData          = contestsData;
     this.participantsData      = participantsData;
     this.participantScoresData = participantScoresData;
     this.examGroupsData        = examGroupsData;
 }
Example #7
0
 public ProblemsController(
     IOjsData data,
     ISubmissionsForProcessingDataService submissionsForProcessingData,
     IParticipantScoresDataService participantScoresData,
     IContestsDataService contestsData,
     IProblemsDataService problemsData)
     : base(data)
 {
     this.submissionsForProcessingData = submissionsForProcessingData;
     this.participantScoresData        = participantScoresData;
     this.contestsData = contestsData;
     this.problemsData = problemsData;
 }
 public OjsSubmissionProcessingStrategy(
     ISubmissionsDataService submissionsData,
     ITestRunsDataService testRunsData,
     IParticipantsDataService participantsData,
     IParticipantScoresDataService participantScoresData,
     ISubmissionsForProcessingDataService submissionsForProcessingData)
 {
     this.submissionsData              = submissionsData;
     this.testRunsData                 = testRunsData;
     this.participantsData             = participantsData;
     this.participantScoresData        = participantScoresData;
     this.submissionsForProcessingData = submissionsForProcessingData;
 }
 public ContestsController(
     IOjsData data,
     IParticipantScoresDataService participantScoresData,
     IContestsDataService contestsData,
     IContestsBusinessService contestsBusiness,
     IParticipantsBusinessService participantsBusiness)
     : base(data)
 {
     this.participantScoresData = participantScoresData;
     this.contestsData          = contestsData;
     this.contestsBusiness      = contestsBusiness;
     this.participantsBusiness  = participantsBusiness;
 }
 public SubmissionsController(
     IOjsData data,
     ISubmissionsForProcessingDataService submissionsForProcessingData,
     IParticipantScoresBusinessService participantScoresBusiness,
     IParticipantScoresDataService participantScoresData,
     IParticipantsDataService participantsData,
     ITestRunsDataService testRunsData)
     : base(data)
 {
     this.submissionsForProcessingData = submissionsForProcessingData;
     this.participantScoresBusiness    = participantScoresBusiness;
     this.participantScoresData        = participantScoresData;
     this.participantsData             = participantsData;
     this.testRunsData = testRunsData;
 }
Example #11
0
 public ProblemsBusinessService(
     IEfDeletableEntityRepository <Problem> problems,
     IContestsDataService contestsData,
     IParticipantScoresDataService participantScoresData,
     IProblemsDataService problemsData,
     IProblemResourcesDataService problemResourcesData,
     ISubmissionsDataService submissionsData,
     ISubmissionsForProcessingDataService submissionsForProcessingData,
     ITestRunsDataService testRunsData,
     ISubmissionTypesDataService submissionTypesData,
     IProblemGroupsBusinessService problemGroupsBusiness)
 {
     this.problems                     = problems;
     this.contestsData                 = contestsData;
     this.participantScoresData        = participantScoresData;
     this.problemsData                 = problemsData;
     this.problemResourcesData         = problemResourcesData;
     this.submissionsData              = submissionsData;
     this.submissionsForProcessingData = submissionsForProcessingData;
     this.testRunsData                 = testRunsData;
     this.submissionTypesData          = submissionTypesData;
     this.problemGroupsBusiness        = problemGroupsBusiness;
 }
Example #12
0
        private void BeginProcessingSubmission(
            Submission submission,
            SubmissionForProcessing submissionForProcessing,
            IOjsData data,
            ISubmissionsForProcessingDataService submissionsForProccessingData,
            IParticipantScoresDataService participantScoresData)
        {
            submission.ProcessingComment = null;
            try
            {
                data.TestRuns.DeleteBySubmissionId(submission.Id);
                this.ProcessSubmission(submission);
                data.SaveChanges();
            }
            catch (Exception exception)
            {
                this.logger.ErrorFormat("ProcessSubmission on submission №{0} has thrown an exception: {1}", submission.Id, exception);
                submission.ProcessingComment = $"Exception in ProcessSubmission: {exception.Message}";
            }

            try
            {
                this.CalculatePointsForSubmission(submission);
            }
            catch (Exception exception)
            {
                this.logger.ErrorFormat("CalculatePointsForSubmission on submission №{0} has thrown an exception: {1}", submission.Id, exception);
                submission.ProcessingComment = $"Exception in CalculatePointsForSubmission: {exception.Message}";
            }

            submission.Processed = true;
            submissionsForProccessingData.SetToProcessed(submissionForProcessing.Id);

            try
            {
                participantScoresData.SaveBySubmission(submission);
            }
            catch (Exception exception)
            {
                this.logger.ErrorFormat("SaveParticipantScore on submission №{0} has thrown an exception: {1}", submission.Id, exception);
                submission.ProcessingComment = $"Exception in SaveParticipantScore: {exception.Message}";
            }

            try
            {
                submission.CacheTestRuns();
            }
            catch (Exception exception)
            {
                this.logger.ErrorFormat("CacheTestRuns on submission №{0} has thrown an exception: {1}", submission.Id, exception);
                submission.ProcessingComment = $"Exception in CacheTestRuns: {exception.Message}";
            }

            try
            {
                data.SaveChanges();
            }
            catch (Exception exception)
            {
                this.logger.ErrorFormat("Unable to save changes to the submission №{0}! Exception: {1}", submission.Id, exception);
            }

            this.logger.InfoFormat("Submission №{0} successfully processed", submission.Id);
        }
 public ResultsController(IOjsData data, IParticipantScoresDataService participantScoresData)
     : base(data) =>
     this.participantScoresData = participantScoresData;