private string AddReadLine(GenericCodeSkeletonDto skeleton) { var readLines = skeleton.ReadLine; var withReadLines = skeleton.Skeleton.Replace("{read}", readLines); return(withReadLines); }
private string GenerateReadSkeleton(TaskDto task, GenericCodeSkeletonDto genericSkeleton) { string skeleton; if (task.InputType.Equals("Standart")) { skeleton = AddReadLine(genericSkeleton); } else if (task.InputType.Equals("String")) { skeleton = AddReadLine(genericSkeleton); } else if (task.InputType.Equals("Line of integers")) { skeleton = AddReadLineOfIntegers(genericSkeleton); } else if (task.InputType.Equals("Integer")) { skeleton = AddReadInteger(genericSkeleton); } else if (task.InputType.Equals("Two lines (first integer, second list of integers)")) { skeleton = AddTwoLinesRead(genericSkeleton); } else if (task.InputType.Equals("First line says how many lines of integers")) { skeleton = AddMultiReadLines(genericSkeleton); } else { skeleton = genericSkeleton.Skeleton.Replace("{read}", ""); } return(skeleton); }
public async Task <CodeSkeletonDto> GetCodeSkeleton(string userEmail, int taskId, string language) { if (userEmail != null) { var solution = _solutionRepository.GetSolution(userEmail, taskId); if (solution != null) { var languages = _compiler.GetLanguages(); var languageCode = languages.Codes.FirstOrDefault(c => c.Value == solution.Language).Key; if (languageCode.Equals(language.ToLower()) || language.Equals("undefined")) { return new CodeSkeletonDto { Language = languageCode.Replace(" ", string.Empty), Skeleton = solution.Source } } ; } } if (language.Equals("undefined")) { language = "Java"; } /* var umbracoApiUrl = _iconfiguration["UmbracoApiUrl"]; * var client = new RestClient(umbracoApiUrl); * * var request = new RestRequest("codeskeleton/get/{language}", Method.GET); * request.AddUrlSegment("language", language); * * TaskCompletionSource<GenericCodeSkeletonDto> taskCompletion = new TaskCompletionSource<GenericCodeSkeletonDto>(); * client.ExecuteAsync<GenericCodeSkeletonDto>(request, response => * { * if (response.StatusCode != System.Net.HttpStatusCode.OK) * throw new ArgumentException("Error getting code skeleton"); * taskCompletion.SetResult(response.Data); * }); * * var codeSkeletonDto = await taskCompletion.Task; */ var codeSkeletonDto = new GenericCodeSkeletonDto { Language = "Java", Skeleton = "yoooooo", }; var task = await _taskRepository.GetCachedTaskByIdAsync(taskId); var skeleton = GenerateCodeSkeletonForTask(task, codeSkeletonDto); return(new CodeSkeletonDto { Language = language.ToLower().Replace(" ", string.Empty), Skeleton = skeleton.Replace("\\\n", "\\n") }); }
private string AddTwoLinesRead(GenericCodeSkeletonDto skeleton) { var readLines = skeleton.ReadInteger; readLines += "\n" + skeleton.ReadLineOfIntegers; var withReadLines = skeleton.Skeleton.Replace("{read}", readLines); return(withReadLines); }
public async Task <CodeSkeletonDto> GetCodeSkeleton(LanguageDto languages, string userEmail, int taskId, string language) { if (userEmail != null) { var solution = _solutionRepository.GetSolution(userEmail, taskId); if (solution != null) { var languageCode = languages.Codes.FirstOrDefault(c => c.Value == solution.Language).Key; if (languageCode.Equals(language.ToLower()) || language.Equals("undefined")) { return new CodeSkeletonDto { Language = languageCode.Replace(" ", string.Empty), Skeleton = solution.Source } } ; } } if (language.Equals("undefined")) { language = "Java"; } var codeSkeletonEntity = _dbContext.CodeSkeletons.FirstOrDefault(x => x.Language.Equals(language, StringComparison.CurrentCultureIgnoreCase)); var genericCodeSkeleton = new GenericCodeSkeletonDto(); if (codeSkeletonEntity == null) { genericCodeSkeleton.Language = language; genericCodeSkeleton.Skeleton = string.Empty; } else { genericCodeSkeleton.Language = language; genericCodeSkeleton.Skeleton = codeSkeletonEntity.Skeleton; genericCodeSkeleton.ReadInputIntegerNumberOfLinesOfIntegers = codeSkeletonEntity.ReadInputIntegerNumberOfLinesOfIntegers.Replace("\\n", "\n"); genericCodeSkeleton.ReadLine = codeSkeletonEntity.ReadLine.Replace("\\n", "\n"); genericCodeSkeleton.ReadInteger = codeSkeletonEntity.ReadInteger.Replace("\\n", "\n"); genericCodeSkeleton.WriteLine = codeSkeletonEntity.WriteLine; genericCodeSkeleton.ReadLineOfIntegers = codeSkeletonEntity.ReadLineOfIntegers.Replace("\\n", "\n"); } var task = await _taskRepository.GetTaskInputType(taskId); var skeleton = GenerateReadSkeleton(task, genericCodeSkeleton); return(new CodeSkeletonDto { Language = language.ToLower().Replace(" ", string.Empty), Skeleton = skeleton.Replace("\\\n", "\\n") }); }
private string AddMultiReadLines(GenericCodeSkeletonDto skeleton) { var readLines = skeleton.ReadInteger; readLines += "\n" + skeleton.ReadInputIntegerNumberOfLinesOfIntegers; var withReadLines = skeleton.Skeleton.Replace("{read}", readLines); return(withReadLines); }
public string GenerateCodeSkeletonForTask(TaskDto task, GenericCodeSkeletonDto genericSkeleton) { var skeleton = GenerateReadSkeleton(task, genericSkeleton); return(skeleton); }