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(); }
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(); }
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"); } }
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(); }
/// <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(); }
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"); } }
/// <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); }
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(); }
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(); }
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"); } }