ilyalehchylin/educats-xamarin

View on GitHub
source/EduCATS/Data/DataAccessCallbacks.cs

Summary

Maintainability
B
4 hrs
Test Coverage
using System.Threading.Tasks;
using EduCATS.Networking.AppServices;
using EduCATS.Networking.Models.Testing;

namespace EduCATS.Data
{
    public static partial class DataAccess
    {
        /// <summary>
        /// Login callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <param name="password">Password.</param>
        /// <returns>User data.</returns>
        static async Task<object> loginCallback(
            string username, string password) => await AppServices.Login(username, password);
        
        static async Task<object> loginCallbackEducatsby(
            string username, string password) => await AppServices.LoginEducatsBy(username, password);

        static async Task<object> getLecturesCallbackTest(
            int subjectId, int groupId) => await AppServices.GetLecturesEducatsBy(subjectId, groupId);

        static async Task<object> deleteAccountCallback() => await AppServices.DeleteAccount();

        /// <summary>
        /// Profile callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <returns>User profile data.</returns>
        static async Task<object> getProfileCallback(
            string username) => await AppServices.GetProfileInfo(username);

        /// <summary>
        /// News callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <returns>News data.</returns>
        static async Task<object> getNewsCallback(
            string username) => await AppServices.GetNews(username);

        /// <summary>
        /// Subjects callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <returns>Subjects data.</returns>
        static async Task<object> getSubjectsCallback(
            string username) => await AppServices.GetProfileInfoSubjects(username);

        /// <summary>
        /// Lectures callback.
        /// </summary>
        /// <param name="subjectId">SubjectId.</param>
        /// <returns>Data lectures.</returns>
        static async Task<object> getInfoLecturesCallback(
            int subjectId) => await AppServices.GetInfoLecturers(subjectId);

        /// <summary>
        /// Calendar callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <returns>Calendar data.</returns>
        static async Task<object> getCalendarCallback(
            string username) => await AppServices.GetProfileInfoCalendar(username);

        /// <summary>
        /// Schedule callback.
        /// </summary>
        /// <param name="username">Username.</param>
        /// <returns>Calendar data.</returns>
        static async Task<object> getScheduleCallback(
            string date) => await AppServices.GetSchedule(date);

        /// <summary>
        /// Statistics callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="groupId">Group ID.</param>
        /// <returns>Statistics data.</returns>
        static async Task<object> getStatsCallback(
            int subjectId, int groupId) => await AppServices.GetStatistics(subjectId, groupId);

        static async Task<object> getTestStatsCallback(
            int subjectId, int groupId) => await AppServices.GetTestStatistics(subjectId, groupId);

        static async Task<object> getTestPracticialStatsCallback(
            int subjectId, int groupId) => await AppServices.GetPracticials(subjectId, groupId);

        static async Task<object> getTestPractScheduleCallbak(
            int subjectId) => await AppServices.GetPractTestStatistics(subjectId);

        static async Task<object> getTestPractScheduleCallbak(
            int subjectId, int groupId) => await AppServices.GetPractTestStatistics(subjectId, groupId);

        /// <summary>
        /// Groups callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <returns>Group data.</returns>
        static async Task<object> getGroupsCallback(
            int subjectId) => await AppServices.GetOnlyGroups(subjectId);

        /// <summary>
        /// Groups data callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <returns>Group data.</returns>
        static async Task<object> getGroupsDataCallback() => await AppServices.GetGroupsData();

        /// <summary>
        /// Laboratory works callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="groupId">Group ID.</param>
        /// <returns>Laboratory works data.</returns>
        static async Task<object> getLabsCallback(
            int subjectId, int groupId) => await AppServices.GetLabs(subjectId, groupId);
        static async Task<object> getLabsCallback(
            int subjectId) => await AppServices.GetLabs(subjectId);

        /// <summary>
        /// Laboratory works callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="groupId">Group ID.</param>
        /// <returns>Laboratory works data.</returns>
        static async Task<object> getTestLabsCallback(
            int subjectId, int groupId) => await AppServices.GetLabs(subjectId, groupId);
        static async Task<object> getTestLabsCallback(
            int subjectId) => await AppServices.GetLabs(subjectId);

        /// <summary>
        /// Lectures callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="groupId">Group ID.</param>
        /// <returns>Lectures data.</returns>
        static async Task<object> getLecturesCallback(
            int subjectId, int groupId) => await AppServices.GetLectures(subjectId, groupId);

        /// <summary>
        /// Tests callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="userId">User ID.</param>
        /// <returns>List of test data.</returns>
        static async Task<object> getTestsCallback(
            int subjectId, int userId) => await AppServices.GetAvailableTests(subjectId, userId);

        /// <summary>
        /// Test callback.
        /// </summary>
        /// <param name="testId">User ID.</param>
        /// <returns>Test details data.</returns>
        static async Task<object> getTestCallback(
            int testId) => await AppServices.GetTest(testId);

        /// <summary>
        /// Next question callback.
        /// </summary>
        /// <param name="testId">User ID.</param>
        /// <param name="questionNumber">Question number.</param>
        /// <param name="userId">User ID.</param>
        /// <returns>Test question data.</returns>
        static async Task<object> getNextQuestionCallback(
            int testId, int questionNumber, int userId) =>
            await AppServices.GetNextQuestion(testId, questionNumber, userId);

        /// <summary>
        /// Answer question callback.
        /// </summary>
        /// <param name="answer">Answer model.</param>
        /// <returns>String. <c>"Ok"</c>, for example.</returns>
        static async Task<object> answerQuestionCallback(
            TestAnswerPostModel answer) =>
            await AppServices.AnswerQuestionAndGetNext(answer);

        /// <summary>
        /// Test answers callback.
        /// </summary>
        /// <param name="userId">User ID.</param>
        /// <param name="testId">User ID.</param>
        /// <returns>List of results data.</returns>
        static async Task<object> getTestAnswersCallback(
            int userId, int testId) => await AppServices.GetUserAnswers(userId, testId);
        static async Task<object> getTestAnswersCallback(
            int testId) => await AppServices.GetUserAnswers(testId);

        /// <summary>
        /// Root concepts callback.
        /// </summary>
        /// <param name="userId">User ID.</param>
        /// <param name="subjectId">Subject ID.</param>
        /// <returns>Root concept data.</returns>
        static async Task<object> getRootConceptsCallback(
            string userId, string subjectId) => await AppServices.GetRootConcepts(userId, subjectId);

        static async Task<object> getRootConceptsCallback(
            string subjectId) => await AppServices.GetRootConcepts(subjectId);

        /// <summary>
        /// Concept tree callback.
        /// </summary>
        /// <param name="elementId">Root element ID.</param>
        /// <returns>Concept data.</returns>
        static async Task<object> getConceptTreeCallback(
            int elementId) => await AppServices.GetConceptTree(elementId);

        /// <summary>
        /// Concept cascade callback.
        /// </summary>
        /// <param name="elementId">Root element ID.</param>
        /// <returns>Concept data.</returns>
        static async Task<object> getConceptCascadeCallback(
            int elementId) => await AppServices.GetConceptCascade(elementId);

        /// <summary>
        /// Files callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <returns>Files data.</returns>
        static async Task<object> getFilesCallback(
            int subjectId) => await AppServices.GetFiles(subjectId);

        /// <summary>
        /// Recommendations callback.
        /// </summary>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="userId">User ID.</param>
        /// <returns>List of recommendations data.</returns>
        static async Task<object> getRecommendationsCallback(
            int subjectId, int userId) => await AppServices.GetRecommendations(subjectId, userId);

        /// <summary>
        /// Files details callback.
        /// </summary>
        /// <param name="content uri">content uri.</param>
        /// <returns>Files data.</returns>
        static async Task<object> getFilesDetailsCallback(
            string uri) => await AppServices.GetFilesDetails(uri);

        /// <summary>
        /// GroupInfo Callback
        /// </summary>
        /// <param name="groupName"></param>
        /// <returns></returns>
        static async Task<object> getGroupInfoCallback(
                string groupName) => await AppServices.GetGroupInfo(groupName);

    }
}