Ejemplo n.º 1
0
        public string ExecutionResult(string code, int exId, string userId, CodeStatus codeStatus)
        {
            var codeId = unitOfWork.CodeRepo.Get(c => c.ExerciseId == exId && c.UserId == userId).First().Id;
            var res    = sandboxManager.Execute(code);

            if (res.Success)
            {
                string result =
                    $"Result: {res.Result};\r\nCompile time: {res.CompileTime.TotalMilliseconds};\r\nExecution Time: {res.ExecutionTime.TotalMilliseconds};";
                if (codeStatus != CodeStatus.Done)
                {
                    AddHistory(codeId, code, DateTime.Now, null, result);
                }
                return(result);
            }

            string errors = res.CompileTimeExceptions.Aggregate("", (current, v) => current + (v + ";\r\n"));

            errors = res.RunTimeExceptions.Aggregate(errors, (current, v) => current + (v + ";\r\n"));
            if (codeStatus != CodeStatus.Done)
            {
                AddHistory(codeId, code, DateTime.Now, errors, null);
            }
            return(errors);
        }
Ejemplo n.º 2
0
        public string ExecutionResult(string code, int exId, string userId, CodeStatus codeStatus)
        {
            var codeId        = unitOfWork.CodeRepo.Get(c => c.ExerciseId == exId && c.UserId == userId).First().Id;
            var testCasesCode = unitOfWork.ExerciseRepo.GetById(exId).TestCasesCode;
            var finalCode     = string.Concat(testCasesCode, code);
            var res           = sandboxManager.Execute(finalCode);

            if (res.Success)
            {
                string result = res.Result;
                if (codeStatus == CodeStatus.InProgress)
                {
                    AddHistory(codeId, code, DateTime.Now, null, result);
                }
                return(result);
            }

            string errors = res.Result;

            if (codeStatus == CodeStatus.InProgress)
            {
                AddHistory(codeId, code, DateTime.Now, errors, null);
            }
            return(errors);
        }