public BTask GetBTask(SubjectTheme theme, int num) { string fileName = subject.ToString() + "/" + theme.Num.ToString() + @"/b/" + num.ToString() + "/" + "task.txt"; var assets = MRApplication.GetAssetManager(); try { using (StreamReader reader = new StreamReader(assets.Open(fileName))) { string content = reader.ReadToEnd(); var json = JsonObject.Parse(content); JsonObject jsonTask = json ["task"] as JsonObject; var bTask = new BTask(num, theme, subject); SetCommonTaskParams(jsonTask, bTask); List <AVariant> variants = new List <AVariant> (); bTask.Variant = jsonTask ["variant"]; return(bTask); } } catch (Exception e) { return(null); } }
private string CreateTaskName(Task task, SubjectTheme theme) { string taskType = "b"; if (task is ATask) { taskType = "a"; } return(subject.ToString() + "/" + theme.Num + "/" + taskType + "/" + task.TaskNum); }
private int GetTasksStatistic(SubjectTheme theme) { int answered = subjectRetriever.AnsweredTasksForTheme(theme); int overall = subjectRetriever.OverallTasksForTheme(theme); if (overall == 0) { return(0); } return((int)(((float)answered) / overall * 100)); }
private int GetTaskStatistic(SubjectRetriever retriever, SubjectTheme theme, Task task) { var taskData = retriever.GetTaskDBData(task, theme); int answered = taskData.RightAttempts; int overall = taskData.OverallAttempts; if (overall == 0) { return(0); } return((int)(((float)answered) / overall * 100)); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.ChooseTrainingTasksLayout); Enum.TryParse <SubjectsEnumeration> (Intent.GetStringExtra("TestType"), out subjectType); themeNum = Intent.GetIntExtra("ThemeNum", 1).ToString(); subjectStringName = SubjectHelper.GetSubjectName(subjectType, this); theme = (new ThemesRetriever(subjectType)).GetThemes.FirstOrDefault(x => x.Num == themeNum); taskButtonsLayout = FindViewById <LinearLayout> (Resource.Id.TasksLinearLayout); (FindViewById <TextView> (Resource.Id.ThemeName)).Text = theme.Name; }
private void RetrieveSubjectTheme(string fileName) { themes = new List <SubjectTheme> (); AssetManager assets = MRApplication.GetAssetManager(); using (StreamReader reader = new StreamReader(assets.Open(fileName))) { string content = reader.ReadToEnd(); var json = JsonObject.Parse(content); JsonArray themesJson = json ["Themes"] as JsonArray; foreach (JsonObject theme in themesJson) { SubjectTheme newTheme = new SubjectTheme(theme ["Num"], theme ["Name"], theme ["InetLink"], theme ["LocalLink"]); themes.Add(newTheme); } } }
protected void SetParameters() { Enum.TryParse <SubjectsEnumeration> (Intent.GetStringExtra("TestType"), out subjectType); themeNum = Intent.GetStringExtra("ThemeNum"); currentTaskToShow = Intent.GetIntExtra("TaskNum", 0); subjectStringName = SubjectHelper.GetSubjectName(subjectType, this); subjectRetriever = new SubjectRetriever(subjectType, ApplicationContext); theme = subjectRetriever.GetThemeByNum(themeNum); tasks = subjectRetriever.GetTasks(themeNum); taskImages = new Drawable[tasks.Count]; isAnswered = new List <bool> (tasks.Count); isRightAnswered = new List <bool> (tasks.Count); isShowAnswer = new List <bool> (tasks.Count); for (int i = 0; i < tasks.Count; i++) { isAnswered.Add(false); isRightAnswered.Add(false); isShowAnswer.Add(false); } }
public ATask GetATask(SubjectTheme theme, int num) { string fileName = subject.ToString() + "/" + theme.Num.ToString() + @"/a/" + num.ToString() + "/" + "task.txt"; var assets = MRApplication.GetAssetManager(); try { using (StreamReader reader = new StreamReader(assets.Open(fileName))) { string content = reader.ReadToEnd(); var json = JsonObject.Parse(content); JsonObject jsonTask = json ["task"] as JsonObject; var aTask = new ATask(num, theme, subject); SetCommonTaskParams(jsonTask, aTask); List <AVariant> variants = new List <AVariant> (); JsonArray variantsJSON = jsonTask ["vs"] as JsonArray; foreach (var variant in variantsJSON) { string text = variant ["txt"]; string png = variant ["png"]; bool isRight = Boolean.Parse(variant ["right"]); AVariant newVariant = new AVariant() { ImageLink = png, IsRight = isRight, Text = text }; variants.Add(newVariant); } aTask.Variants = variants; return(aTask); } } catch (Exception e) { return(null); } }
public int AnsweredTasksForTheme(SubjectTheme theme) { int answeredCount = 0; foreach (var task in GetTasks(theme.Num)) { var taskName = CreateTaskName(task, theme); TaskDBData dbTask = DB.GetEntry(taskName); if (dbTask == null) { DB.InsertEntry(new TaskDBData() { Name = taskName, OverallAttempts = 0, RightAttempts = 0 }); continue; } if (dbTask.RightAttempts > 0) { answeredCount++; } } return(answeredCount); }
public List <Type> GetTasksInfo(string themeNum) { SubjectTheme theme = GetThemeByNum(themeNum); int taskNum = 1; var tasksInfo = new List <Type> (); bool taskExits = IsATaskExist(theme, taskNum); while (taskExits) { tasksInfo.Add(typeof(ATask)); taskNum++; taskExits = IsATaskExist(theme, taskNum); } taskNum = 1; taskExits = IsBTaskExist(theme, taskNum); while (taskExits) { tasksInfo.Add(typeof(BTask)); taskNum++; taskExits = IsBTaskExist(theme, taskNum); } return(tasksInfo); }
public TaskDBData GetTaskDBData(Task task, SubjectTheme theme) { string taskName = CreateTaskName(task, theme); return(DB.GetEntry(taskName)); }
public int OverallTasksForTheme(SubjectTheme theme) { return(GetATasksCount(theme.Num) + GetBTasksCount(theme.Num)); }
public bool IsBTaskExist(SubjectTheme theme, int num) { string fileName = subject.ToString() + "/" + theme.Num.ToString() + @"/b/" + num.ToString() + "/" + "task.txt"; return(IsTaskExist(fileName)); }