示例#1
0
        public void SaveStatusToDatabase()
        {
            string details = "";

            if (!string.IsNullOrEmpty(this.Result.Output))
            {
                details = this.Result.Output;
            }

            if (details.Length >= 1000)
            {
                details.Substring(0, 999);
            }

            IBuildServiceFacade facade = ServiceLocator.Instance.GetService <IBuildServiceFacade>();

            switch (Result.Result)
            {
            case ExitCode.Failure:
                facade.UpdateSubmitStatusDetails(Submit.Id, SubmitStatus.ErrorValidation, details, DateTime.Now);
                break;

            case ExitCode.Success:
                facade.UpdateSubmitStatusDetails(Submit.Id, SubmitStatus.Success, details, DateTime.Now);
                break;
            }
        }
示例#2
0
        public void Process()
        {
            IBuildServiceFacade facade = ServiceLocator.Instance.GetService <IBuildServiceFacade>();

            ProcessSettings settings = ServiceLocator.Instance.GetService <ProcessSettings>().Clone();

            settings.Submit = this.Submit;

            settings.Assignment = facade.GetAssignmentById(this.Submit.TournamentAssignment.Assignment.Id, true);
            this.Submit.TournamentAssignment.Assignment = settings.Assignment;

            facade.UpdateSubmitStatusDetails(Submit.Id, SubmitStatus.Processing, "submit is being processed", DateTime.Now);

            IFileSystem           fileSystem = ServiceLocator.Instance.GetService <IFileSystem>();
            MoCSValidationProcess process    = new MoCSValidationProcess(settings, fileSystem);
            ExecuteProcessResult  result     = process.Process();

            this.Result = result;
            SaveStatusToDatabase();
        }