Ejemplo n.º 1
0
        public ActionResult UpdateUserCode(string id, UserCodeDTO userCodeDTO)
        {
            // Handle error if no data is sent.
            if (userCodeDTO == null)
            {
                return(BadRequest("User code data must be set!"));
            }

            try
            {
                // Map the DTO to entity and save it
                _service.Update(id, userCodeDTO.ToEntity());

                // According to the conventions, we have to return HTTP 204 No Content.
                return(NoContent());
            }
            catch (DocumentDoesntExistsException)
            {
                // Handle error if the user code to update doesn't exists.
                return(BadRequest("No user code exists with the given ID!"));
            }
            catch (ProgramLanguageNotSupportedException)
            {
                // Handle error if programming language is not supported
                return(BadRequest("This programming language is not supported!"));
            }
        }
Ejemplo n.º 2
0
        public string ExecuteCode(UserCodeDTO model)
        {
            var status = model.CodeStatus;

            if (FindUserCode(model.UserId, model.ExerciseId))
            {
                var code = unitOfWork.CodeRepo.Get(c => c.ExerciseId == model.ExerciseId && c.UserId == model.UserId).FirstOrDefault();
                if (code != null)
                {
                    status        = code.CodeStatus;
                    code.CodeText = model.CodeText;
                    unitOfWork.CodeRepo.Update(code);
                }
            }
            else
            {
                UserCode code = new UserCode
                {
                    CodeText   = model.CodeText,
                    UserId     = model.UserId,
                    ExerciseId = model.ExerciseId
                };

                unitOfWork.CodeRepo.Insert(code);
            }
            unitOfWork.Save();
            return(ExecutionResult(model.CodeText, model.ExerciseId, model.UserId, status));
        }
Ejemplo n.º 3
0
        public ActionResult <UserCodeDTO> CreateNewUserCode(UserCodeDTO userCodeDTO)
        {
            // Handle error if no data is sent.
            if (userCodeDTO == null)
            {
                return(BadRequest("User code data must be set!"));
            }

            try
            {
                // Map the DTO to entity and save the entity
                UserCode createdEntity = _service.Create(userCodeDTO.ToEntity());

                // According to the conventions, we have to return a HTTP 201 created repsonse, with
                // field "Location" in the header pointing to the created object
                return(CreatedAtAction(
                           nameof(GetUserCode),
                           new { id = createdEntity.Id },
                           new UserCodeDTO(createdEntity)));
            }
            catch (ProgramLanguageNotSupportedException)
            {
                // Handle error if programming language is not supported
                return(BadRequest("This programming language is not supported!"));
            }
        }
Ejemplo n.º 4
0
        public UserCodeDTO BuildCodeModel(UserCodeDTO model)
        {
            var exercise = exerciseManager.GetById(model.ExerciseId);

            model.Exercise = exercise;
            var user = userManager.FindByNameAsync(model.UserId).Result;

            model.UserId = user.Id;
            if (model.CodeText != null)
            {
                model.CodeStatus = CodeStatus.FromHistory;
                return(model);
            }
            else
            {
                var code = unitOfWork.CodeRepo.Get(c => c.ExerciseId == model.ExerciseId && c.UserId == model.UserId).FirstOrDefault();
                if (code != null)
                {
                    model.CodeText        = code.CodeText;
                    model.CodeStatus      = code.CodeStatus;
                    model.Mark            = code.Mark;
                    model.TeachersComment = code.TeachersComment;
                }
                else
                {
                    model.CodeStatus = CodeStatus.InProgress;
                    model.CodeText   = exercise.TaskBaseCodeField;
                }
            }
            return(model);
        }
Ejemplo n.º 5
0
        public UserCodeDTO BuildCodeModel(UserCodeDTO model)
        {
            var exercise = exerciseManager.GetById(model.ExerciseId);

            model.Exercise = exercise;
            if (model.CodeText == null)
            {
                model.CodeText = exercise.TaskBaseCodeField;
            }
            var user = userManager.FindByNameAsync(model.UserId).Result;

            model.UserId = user.Id;
            var code = unitOfWork.CodeRepo.Get(c => c.ExerciseId == model.ExerciseId && c.UserId == model.UserId).FirstOrDefault();

            if (code != null)
            {
                model.CodeText        = code.CodeText;
                model.CodeStatus      = code.CodeStatus;
                model.Mark            = code.Mark;
                model.TeachersComment = code.TeachersComment;
            }
            string text = IsUserDidExercise(user.Id, exercise.Id);

            if (text != null)
            {
                model.CodeText = text;
            }
            return(model);
        }
Ejemplo n.º 6
0
        public string GetOnFlyCode(UserCodeDTO model)
        {
            UserCode code = new UserCode
            {
                CodeText = model.CodeText
            };

            return(ExecuteOnFlyCode(model.CodeText));
        }
Ejemplo n.º 7
0
        public string GetOnFlyCode(UserCodeDTO model)
        {
            UserCode code = new UserCode
            {
                CodeText = model.CodeText
            };
            var testCasesCode = unitOfWork.ExerciseRepo.GetById(model.ExerciseId).TestCasesCode;
            var finalCode     = string.Concat(testCasesCode, code.CodeText);

            return(ExecuteOnFlyCode(finalCode));
        }
Ejemplo n.º 8
0
        public IActionResult Index(UserCodeDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(View("../Home/Index"));
            }
            var exercise = exerciseManager.GetById(model.ExerciseId);

            return(View(new CodeStartViewModel()
            {
                UserCodeDTO = codeManager.BuildCodeModel(model),
                ExerciseTaskText = exercise.TaskTextField
            }));
        }
Ejemplo n.º 9
0
 public bool DeleteHistoryLst(UserCodeDTO code)
 {
     try
     {
         var codeHistories = unitOfWork.CodeHistoryRepo.Get().Where(e => e.UserCodeId == code.Id).ToList();
         foreach (var ch in codeHistories)
         {
             unitOfWork.CodeHistoryRepo.Delete(ch);
         }
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Ejemplo n.º 10
0
        public bool DeleteCode(UserCodeDTO code)
        {
            var usercode = unitOfWork.CodeRepo.Get(c => c.UserId == code.UserId);

            try
            {
                foreach (var elem in usercode)
                {
                    unitOfWork.CodeRepo.Delete(elem);
                }
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Ejemplo n.º 11
0
 public string ExecuteOnFlyCode(UserCodeDTO model)
 {
     return(model.CodeText == null ? "Write some codeeeee" : codeManager.GetOnFlyCode(model));
 }
Ejemplo n.º 12
0
 public string GetCode(UserCodeDTO model)
 {
     return(model.CodeText == null ? "Write some code" : codeManager.ExecuteCode(model));
 }
Ejemplo n.º 13
0
        public UserCodeDTO UserCodeByExId(string userId, int exerciseId)
        {
            UserCodeDTO code = mapper.Map <UserCodeDTO>(unitOfWork.CodeRepo.Get(c => c.UserId == userId && c.ExerciseId == exerciseId).FirstOrDefault());

            return(code);
        }
Ejemplo n.º 14
0
        public UserCodeDTO GetUserCodeById(string id)
        {
            UserCodeDTO code = mapper.Map <UserCodeDTO>(unitOfWork.CodeRepo.Get(c => c.UserId == id).FirstOrDefault());

            return(code);
        }
Ejemplo n.º 15
0
 public IActionResult SendCodeToExecute(UserCodeDTO codeModel)
 {
     return(RedirectToAction("Index", "Code", codeModel));
 }