public async Task ExecuteBulk()
        {
            Console.WriteLine("Executing bulk educational programmes example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.BulkEducationalProgrammesExternal.PostWithHttpMessagesAsync(
                educationalProgrammeIds : new[] { Guid.NewGuid() },
                schoolCode : configuration.SchoolCode,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            Console.WriteLine($"Got {result.Body} educational programmes from API");

            ConsoleTable
            .From(result.Body)
            .Write();
        }
Beispiel #2
0
        public async Task Execute()
        {
            Console.Write("Executing activity reports example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.StudentActivityReportsExternal.GetWithHttpMessagesAsync(
                periodFrom : new DateTime(DateTime.Today.Year - 1, 1, 1),
                periodTo : new DateTime(DateTime.Today.Year - 1, 12, 31),
                schoolCode : configuration.SchoolCode,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            Console.WriteLine($"Got {result.Body.Count} activity reports from API");

            ConsoleTable
            .From(result.Body)
            .Write();
        }
Beispiel #3
0
        public async Task ExecuteDeleteLessons()
        {
            Console.WriteLine("Delete lessons example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.DeleteLessonsExternal.PostWithHttpMessagesAsync(
                body : new DeleteLessonsExternalCommand(
                    ids: new[] { Guid.NewGuid() },
                    subjectCourseId: Guid.NewGuid(),
                    schoolCode: configuration.SchoolCode),
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            if (result.Response.IsSuccessStatusCode)
            {
                Console.WriteLine("[Delete lesson] Successfully delete lessons");
            }
            else
            {
                Console.WriteLine("[Delete lesson] Couldn't delete lessons");
            }
        }
Beispiel #4
0
        public async Task ExecuteGetUnscheduled()
        {
            Console.WriteLine("Get unscheduled lessons example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.UnscheduledLessonsExternal.GetWithHttpMessagesAsync(
                dateFrom : DateTime.Now.AddMonths(-12),
                dateTo : DateTime.Now.AddMonths(6),
                schoolCode : configuration.SchoolCode,
                pageNumber : 1,
                pageSize : 10,
                inlineCount : true,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            Console.WriteLine($"Got {result.Body.TotalItems} lessons from API");

            ConsoleTable
            .From(result.Body.Items)
            .Write();
        }
Beispiel #5
0
        /// <summary>
        /// Use the school courses service to get a detailed list of school courses based on a list of students and a given interval
        /// The is e.g. used for correlating with school based internships.
        /// </summary>
        public async Task ExecuteStudentSchoolCourses()
        {
            Console.WriteLine("Executing school courses example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.StudentSchoolCoursesExternal.GetWithHttpMessagesAsync(
                studentIds : new[] { Guid.NewGuid() },
                periodFrom : DateTime.Now.AddMonths(-2),
                periodTo : DateTime.Now.AddMonths(2),
                schoolCode : configuration.SchoolCode,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            Console.WriteLine($"Got {result.Body.Count} school courses courses from API");

            ConsoleTable
            .From(result.Body)
            .Write();
        }
Beispiel #6
0
        public async Task ExecuteEditLesson()
        {
            Console.WriteLine("Edit lesson example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.EditLessonExternal.PostWithHttpMessagesAsync(
                body : new EditLessonExternalCommand(
                    id: Guid.NewGuid(),
                    subjectCourseId: Guid.NewGuid(),
                    roomIds: new[] { Guid.NewGuid() },
                    date: DateTime.Now,
                    startTime: "11:15",
                    endTime: "12:00",
                    teacherIds: new[] { Guid.NewGuid() },
                    schoolCode: configuration.SchoolCode),
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            if (result.Response.IsSuccessStatusCode)
            {
                Console.WriteLine("[Edit lesson] Successfully edited lesson");
            }
            else
            {
                Console.WriteLine("[Edit lesson] Couldn't edit lesson");
            }
        }
Beispiel #7
0
        /// <summary>
        /// Use the school courses service to get a generic list of school courses
        /// </summary>
        public async Task Execute()
        {
            Console.WriteLine("Executing school courses example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.SchoolCoursesExternal.GetWithHttpMessagesAsync(
                periodFrom : new DateTime(2021, 01, 01),
                periodTo : new DateTime(2021, 06, 30),
                schoolCode : configuration.SchoolCode,
                pageNumber : 1,
                pageSize : 30,
                inlineCount : true,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            Console.WriteLine($"Got {result.Body.TotalItems} school courses courses from API");

            ConsoleTable
            .From(result.Body.Items)
            .Write();
        }
        public async Task ExecuteBulk()
        {
            Console.WriteLine("Executing bulk subject courses example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.BulkSubjectCoursesExternal.PostWithHttpMessagesAsync(
                subjectCourseIds : new[] { Guid.Parse("f5c51d83-e498-4bf9-a8eb-104e0eee76aa") },
                schoolCode : configuration.SchoolCode,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            ConsoleTable
            .From(result.Body)
            .Write();

            var json = JsonConvert.SerializeObject(result.Body);
        }
Beispiel #9
0
        public async Task Execute()
        {
            Console.WriteLine("Executing get absence registrations example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var doContinue = true;
            var pageNum    = 0;
            var pageSize   = 100;
            var absence    = new List <AbsenceRegistrationExternalResponse>();

            do
            {
                var result = await programmesClient.AbsenceRegistrationsExternal.GetWithHttpMessagesAsync(
                    dateFrom : new DateTime(2021, 08, 01),
                    dateTo : new DateTime(2022, 07, 01),
                    onlyAbsenceReports : true,
                    schoolCode : configuration.SchoolCode,
                    pageNumber : ++pageNum,
                    pageSize : pageSize,
                    inlineCount : true,
                    customHeaders : new Dictionary <string, List <string> >
                {
                    { "Logic-Api-Key", new List <string> {
                          configuration.StudicaExternalApiKey
                      } }
                });

                if (pageNum == 1)
                {
                    Console.WriteLine($"Reading {result.Body.TotalItems} absence elements");
                }

                absence.AddRange(result.Body.Items);

                Console.Write(".");

                doContinue = pageNum * pageSize < result.Body.TotalItems;
            } while (doContinue);

            Console.WriteLine($"Got {absence.Count} absence registrations from API");

            ConsoleTable
            .From(absence)
            .Write();
        }
Beispiel #10
0
        public async Task ExecuteRegisterAbsence()
        {
            Console.WriteLine("Executing add absence registrations example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.RegisterAbsenceExternal.PostWithHttpMessagesAsync(
                body : new RegisterAbsenceExternalCommand
            {
                AbsenceRegistered    = true,
                LessonId             = new Guid(),
                SubjectCourseId      = new Guid(),
                AbsenceRegistrations = new List <RegisterAbsenceRegistrationDto>
                {
                    new RegisterAbsenceRegistrationDto
                    {
                        Approved  = true,
                        Comment   = "Student had dentist appointment",
                        Minutes   = 10,
                        Status    = AbsenceRegistrationStatus.PartialAbsence.ToString("D"),
                        StudentId = new Guid()
                    },
                    new RegisterAbsenceRegistrationDto
                    {
                        Approved  = false,
                        Comment   = "Student didn't show up",
                        Minutes   = 0,
                        Status    = AbsenceRegistrationStatus.Absent.ToString("D"),
                        StudentId = new Guid()
                    }
                },
                SchoolCode = configuration.SchoolCode,
            },
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });
        }
        public async Task Execute()
        {
            Console.WriteLine("Executing educational programmes example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            bool doContinue = true;
            int  pageNum    = 0;
            int  pageSize   = 100;

            var programmes = new List <EducationalProgrammeExternalResponse>();

            do
            {
                var result = await programmesClient.EducationalProgrammesExternal.GetWithHttpMessagesAsync(
                    startDateFrom : DateTime.Today.AddYears(-1),
                    startDateTo : DateTime.Today.AddYears(1),
                    schoolCode : configuration.SchoolCode,
                    pageNumber : ++pageNum,
                    pageSize : pageSize,
                    inlineCount : true,
                    customHeaders : new Dictionary <string, List <string> >
                {
                    { "Logic-Api-Key", new List <string> {
                          configuration.StudicaExternalApiKey
                      } }
                });

                doContinue = pageNum * pageSize < result.Body.TotalItems;
                programmes.AddRange(result.Body.Items);
            } while (doContinue);

            Console.WriteLine($"Got {programmes.Count} educational programmes from API");

            ConsoleTable
            .From(programmes)
            .Write();
        }
Beispiel #12
0
        public async Task ExecuteAddLessons()
        {
            Console.WriteLine("Add lessons example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.AddLessonsExternal.PostWithHttpMessagesAsync(
                newLessons : new[]
            {
                new NewLessonExternal
                {
                    Id = Guid.NewGuid(),
                    ExternalLessonId = "external id 1",
                    SubjectCourseId  = Guid.NewGuid(),
                    StartTime        = "11:15",
                    EndTime          = "12:00",
                    Date             = DateTime.Now,
                    RoomIds          = new[] { Guid.NewGuid() },
                    TeacherIds       = new[] { Guid.NewGuid() },
                }
            },
                schoolCode : configuration.SchoolCode,
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            if (result.Response.IsSuccessStatusCode)
            {
                Console.WriteLine("[Add lesson] Successfully added new lessons");
            }
            else
            {
                Console.WriteLine("[Add lesson] Couldn't add new lessons");
            }
        }
        public async Task ExecuteRegisterAbsence()
        {
            Console.WriteLine("Register absence example");

            using var programmesClient = new KMDStudicaProgrammes(new TokenCredentials(tokenProvider));
            programmesClient.BaseUri   = string.IsNullOrEmpty(configuration.ProgrammesBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/programmes/v1")
                : new Uri(configuration.ProgrammesBaseUri);

            var result = await programmesClient.RegisterAbsenceExternal.PostWithHttpMessagesAsync(
                body : new RegisterAbsenceExternalCommand(
                    lessonId: Guid.NewGuid(),
                    subjectCourseId: Guid.NewGuid(),
                    absenceRegistered: true,
                    absenceRegistrations: new List <RegisterAbsenceRegistrationDto>
            {
                new RegisterAbsenceRegistrationDto(
                    studentId: Guid.NewGuid(),
                    status: "Absent",
                    minutes: 34,
                    approved: false,
                    comment: "Custom comment"),
            },
                    schoolCode: configuration.SchoolCode),
                customHeaders : new Dictionary <string, List <string> >
            {
                { "Logic-Api-Key", new List <string> {
                      configuration.StudicaExternalApiKey
                  } }
            });

            if (result.Response.IsSuccessStatusCode)
            {
                Console.WriteLine("[Register absence] Successfully registered absence");
            }
            else
            {
                Console.WriteLine("[Register absence] Couldn't register absence");
            }
        }