diff --git a/source/EduCATS/Constants/GlobalConsts.cs b/source/EduCATS/Constants/GlobalConsts.cs
index 122176ec..4afb5f46 100644
--- a/source/EduCATS/Constants/GlobalConsts.cs
+++ b/source/EduCATS/Constants/GlobalConsts.cs
@@ -67,6 +67,11 @@ public static class GlobalConsts
///
public const string DataGetLabsKey = "GET_LABS_KEY";
+ ///
+ /// Practs key.
+ ///
+ public const string DataGetPractsKey = "GET_PRACTS_KEY";
+
///
/// Delete key.
///
diff --git a/source/EduCATS/Data/DataAccess.cs b/source/EduCATS/Data/DataAccess.cs
index aeca1316..9cb75c49 100644
--- a/source/EduCATS/Data/DataAccess.cs
+++ b/source/EduCATS/Data/DataAccess.cs
@@ -4,7 +4,9 @@
using EduCATS.Constants;
using EduCATS.Data.Models;
using EduCATS.Data.Models.User;
+using EduCATS.Networking;
using EduCATS.Networking.Models.SaveMarks;
+using EduCATS.Networking.Models.SaveMarks.Labs;
using EduCATS.Networking.Models.SaveMarks.LabSchedule;
using EduCATS.Networking.Models.SaveMarks.Practicals;
using EduCATS.Networking.Models.Testing;
@@ -74,9 +76,18 @@ public async static Task> GetNews(string username)
/// Subjects data.
public async static Task> GetProfileInfoSubjects(string username)
{
- var dataAccess = new DataAccess(
- "today_subjects_error", getSubjectsCallback(username), GlobalConsts.DataGetSubjectsKey);
- return await GetDataObject(dataAccess, true) as List;
+ if (Servers.Current == Servers.EduCatsBntuAddress)
+ {
+ var dataAccess = new DataAccess(
+ "today_subjects_error", getSubjectsCallback(username), GlobalConsts.DataGetSubjectsKey);
+ return await GetDataObject(dataAccess, true) as List;
+ }
+ else
+ {
+ var dataAccess = new DataAccess(
+ "today_subjects_error", getSubjectsCallback(username), GlobalConsts.DataGetSubjectsKey);
+ return (await GetDataObject(dataAccess, false) as SubjectModelTest).Subjects;
+ }
}
///
@@ -127,6 +138,14 @@ public async static Task GetPractTest(int subjectId, int groupId)
return await GetDataObject(dataAccess, false) as TakedLabs;
}
+ public async static Task GetPracticals(int subjectId)
+ {
+ var dataAccess = new DataAccess(
+ "stats_marks_error", getTestPractScheduleCallbak(subjectId),
+ GetKey(GlobalConsts.DataGetPractsKey, subjectId));
+ return await GetDataObject(dataAccess, false) as Practs;
+ }
+
///
/// Fetch statistics.
///
@@ -176,6 +195,14 @@ public async static Task GetLabs(int subjectId, int groupId)
return await GetDataObject(dataAccess, false) as LabsModel;
}
+ public async static Task GetLabs(int subjectId)
+ {
+ var dataAccess = new DataAccess(
+ "labs_fetch_error", getLabsCallback(subjectId),
+ GetKey(GlobalConsts.DataGetLabsKey, subjectId));
+ return await GetDataObject(dataAccess, false) as Laboratories;
+ }
+
///
/// Fetch laboratory works data.
///
@@ -268,6 +295,14 @@ public async static Task> GetUserAnswers(int userId, int
return await GetDataObject(dataAccess, true) as List;
}
+ public async static Task GetUserAnswers(int testId)
+ {
+ var dataAccess = new DataAccess(
+ "test_results_error", getTestAnswersCallback(testId),
+ GetKey(GlobalConsts.DataGetTestAnswersKey, testId));
+ return await GetDataObject(dataAccess, false) as ExtendedTestResultModel;
+ }
+
///
/// Fetch Electronic Educational Methodological Complexes
/// root concepts.
@@ -277,10 +312,20 @@ public async static Task> GetUserAnswers(int userId, int
/// Root concept data.
public async static Task GetRootConcepts(string userId, string subjectId)
{
- var dataAccess = new DataAccess(
- "eemc_root_concepts_error", getRootConceptsCallback(userId, subjectId),
- GetKey(GlobalConsts.DataGetRootConceptKey, userId, subjectId));
- return await GetDataObject(dataAccess, false) as RootConceptModel;
+ DataAccess dataAccess = null;
+ if (Servers.Current == Servers.EduCatsBntuAddress)
+ {
+ dataAccess = new DataAccess(
+ "eemc_root_concepts_error", getRootConceptsCallback(userId, subjectId),
+ GetKey(GlobalConsts.DataGetRootConceptKey, userId, subjectId));
+ }
+ else
+ {
+ dataAccess = new DataAccess(
+ "eemc_root_concepts_error", getRootConceptsCallback(subjectId),
+ GetKey(GlobalConsts.DataGetRootConceptKey, subjectId));
+ }
+ return await GetDataObject(dataAccess, false) as RootConceptModel;
}
///
@@ -295,8 +340,22 @@ public async static Task GetConceptTree(int elementId)
"eemc_concept_tree_error", getConceptTreeCallback(elementId),
GetKey(GlobalConsts.DataGetConceptTreeKey, elementId));
return await GetDataObject(dataAccess, false) as ConceptModel;
- }
-
+ }
+
+ ///
+ /// Fetch Electronic Educational Methodological Complexes
+ /// concept cascade.
+ ///
+ /// Root element ID.
+ /// Concept data.
+ public async static Task GetConceptCascade(int elementId)
+ {
+ var dataAccess = new DataAccess(
+ "eemc_concept_tree_error", getConceptCascadeCallback(elementId),
+ GetKey(GlobalConsts.DataGetConceptTreeKey, elementId));
+ return await GetDataObject(dataAccess, false) as ConceptModelTest;
+ }
+
///
/// Fetch files.
///
@@ -310,6 +369,14 @@ public async static Task GetFiles(int subjectId)
return await GetDataObject(dataAccess, false) as FilesModel;
}
+ public async static Task GetFilesTest(int subjectId)
+ {
+ var dataAccess = new DataAccess(
+ "files_fetch_error", getFilesCallback(subjectId),
+ GetKey(GlobalConsts.DataGetFilesKey, subjectId));
+ return await GetDataObject(dataAccess, false) as FilesModelTest;
+ }
+
///
/// Load goup info by groupName
///
diff --git a/source/EduCATS/Data/DataAccessCallbacks.cs b/source/EduCATS/Data/DataAccessCallbacks.cs
index bbfd9121..4e996602 100644
--- a/source/EduCATS/Data/DataAccessCallbacks.cs
+++ b/source/EduCATS/Data/DataAccessCallbacks.cs
@@ -14,7 +14,7 @@ public static partial class DataAccess
/// User data.
static async Task