ilyalehchylin/educats-xamarin

View on GitHub
source/EduCATS/Helpers/Forms/Pages/Interfaces/IPages.cs

Summary

Maintainability
B
5 hrs
Test Coverage
using System.Collections.Generic;
using System.Threading.Tasks;
using EduCATS.Data.Models;
using EduCATS.Networking.Models.SaveMarks;
using EduCATS.Networking.Models.SaveMarks.LabSchedule;
using EduCATS.Pages.Parental.FindGroup.Models;

namespace EduCATS.Helpers.Forms.Pages
{
    /// <summary>
    /// App pages interface.
    /// </summary>
    public interface IPages
    {
        /// <summary>
        /// Close page.
        /// </summary>
        /// <param name="modal">Is page modal.</param>
        /// <param name="animated">Is close animation.</param>
        /// <returns>Task.</returns>
        Task ClosePage(bool modal, bool animated = true);

        /// <summary>
        /// Open login page.
        /// </summary>
        void OpenLogin();

        /// <summary>
        /// Open main page.
        /// </summary>
        void OpenMain();

        /// <summary>
        /// Open finding group page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns></returns>
        public Task OpenFindGroup(string title);

        /// <summary>
        /// Open parental control statistics
        /// </summary>
        /// <param name="group">Group info.</param>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        public Task OpenParentalStats(GroupInfo group, string title);

        public Task OpenRegistration(string title);

        public Task OpenAddMarks(string title, GroupItemModel groupId, int subjectId, string groupName);

        public Task OpenAddMarksPracticeAndLabs(string title, GroupItemModel groupId, int subject, string groupName);

        public Task OpenAddSingleMark(string title, string name, LabsVisitingList Marks, TakedLabs prOrLabStat, int subGruop);

        public Task OpenForgotPassword(string title);

        /// <summary>
        /// Open news details page.
        /// </summary>
        /// <param name="newsTitle">News title.</param>
        /// <param name="body">News html body.</param>
        /// <returns>Task.</returns>
        Task OpenNewsDetails(string newsTitle, string body);

        /// <summary>
        /// Open page with students.
        /// </summary>
        /// <param name="pageIndex">Index of a page to open after choosing a student.</param>
        /// <returns>Task.</returns>
        Task OpenStudentsListStats(int pageIndex, int subjectId,
            List<StatsStudentModel> students, string title);

        /// <summary>
        /// Open page with students.
        /// </summary>
        /// <param name="pageIndex">Index of a page to open after choosing a student.</param>
        /// <returns>Task.</returns>
        Task OpenParentalStudentsListStats(IPlatformServices services, int pageIndex, int subjectId,
            List<StatsStudentModel> students, string title);


        /// <summary>
        /// Open page with detailed statistics by page type.
        /// </summary>
        /// <param name="userLogin">User's login (username).</param>
        /// <param name="subjectId">Subject ID.</param>
        /// <param name="groupId">Group ID.</param>
        /// <param name="pageIndex">Page index (<see cref="StatsPageEnum"/>).</param>
        /// <param name="title">Page title.</param>
        /// <param name="name">Student's name.</param>
        /// <returns>Task.</returns>
        Task OpenDetailedStatistics(string userLogin, int subjectId, int groupId,
            int pageIndex, string title, string name);

        /// <summary>
        /// Open base testing page.
        /// </summary>
        /// <param name="title">Page title.</param>
        /// <returns>Task.</returns>
        Task OpenTesting(string title);

        /// <summary>
        /// Open test passing page.
        /// </summary>
        /// <param name="testId">Test ID.</param>
        /// <param name="forSelfStudy">Is test for self-study.</param>
        /// <returns>Task.</returns>
        Task OpenTestPassing(int testId, bool forSelfStudy);

        /// <summary>
        /// Open test results.
        /// </summary>
        /// <param name="testId">Test ID.</param>
        /// <param name="fromComplexLearning">Is opened from Complex learning page.</param>
        /// <param name="timePassed">Time passed/</param>
        /// <returns>Task.</returns>
        Task OpenTestResults(int testId, bool fromComplexLearning = false, string timePassed = null);

        /// <summary>
        /// Open Electronic educational methodological complexes page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <param name="searchId">(optional) Search ID.</param>
        /// <returns>Task.</returns>
        Task OpenEemc(string title, int searchId = -1);

        /// <summary>
        /// Open Files page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenFiles(string title);

        /// <summary>
        /// Open Adaptive Learning (Recommendations) page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenRecommendations(string title);

        /// <summary>
        /// Open Settings page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettings(string title);

        /// <summary>
        /// Open Settings Language page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettingsLanguage(string title);

        /// <summary>
        /// Open Settings Server page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettingsServer(string title);

        /// <summary>
        /// Open Settings Theme page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettingsTheme(string title);

        /// <summary>
        /// Open Settings Font page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettingsFont(string title);

        /// <summary>
        /// Open Settings About application page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenSettingsAbout(string title);

        /// <summary>
        /// Open Settings About application page.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <returns>Task.</returns>
        Task OpenProfileAbout(string title);
    }
}