Example #1
0
        public async Task Execute()
        {
            Console.WriteLine("Executing rooms example");

            using var schoolAdministrationClient = new KMDStudicaSchoolAdministration(new TokenCredentials(tokenProvider));
            schoolAdministrationClient.BaseUri = string.IsNullOrEmpty(configuration.SchoolAdministrationBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/school-administration/v1")
                : new Uri(configuration.SchoolAdministrationBaseUri);

            var result = await schoolAdministrationClient.RoomsExternal.GetWithHttpMessagesAsync(
                schoolCode: configuration.SchoolCode,
                pageNumber: 1,
                pageSize: 1000,
                inlineCount: true,
                customHeaders: new Dictionary<string, List<string>>
                {
                    { "Logic-Api-Key", new List<string> { configuration.StudicaExternalApiKey } }
                });

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

            ConsoleTable
                .From(result.Body.Items)
                .Write();
        }
Example #2
0
        public async Task ExecuteBulk()
        {
            Console.WriteLine("Executing bulk departments example");

            using var schoolAdministrationClient = new KMDStudicaSchoolAdministration(new TokenCredentials(tokenProvider));
            schoolAdministrationClient.BaseUri   = string.IsNullOrEmpty(configuration.SchoolAdministrationBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/school-administration/v1")
                : new Uri(configuration.SchoolAdministrationBaseUri);

            var result = await schoolAdministrationClient.BulkDepartmentsExternal.PostWithHttpMessagesAsync(
                departmentIds : 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} departments from API");

            ConsoleTable
            .From(result.Body)
            .Write();
        }
        public async Task ExecuteActiveEmployees()
        {
            Console.WriteLine("Executing active employees example");
            using var schoolAdministrationClient = new KMDStudicaSchoolAdministration(new TokenCredentials(tokenProvider));
            schoolAdministrationClient.BaseUri   = string.IsNullOrEmpty(configuration.SchoolAdministrationBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/school-administration/v1")
                : new Uri(configuration.SchoolAdministrationBaseUri);

            bool hasMorePages;
            int  pageNumber = 0;
            int  pageSize   = 100;
            var  employees  = new List <EmployeeExternalResponse>();

            do
            {
                var result = await schoolAdministrationClient.ActiveEmployeesExternal.GetWithHttpMessagesAsync(
                    employeesActiveOnOrAfterDate : DateTime.Today,
                    schoolCode : configuration.SchoolCode,
                    pageNumber : ++pageNumber,
                    pageSize : pageSize,
                    inlineCount : true,
                    customHeaders : new Dictionary <string, List <string> >
                {
                    { "Logic-Api-Key", new List <string> {
                          configuration.StudicaExternalApiKey
                      } }
                });

                hasMorePages = pageNumber * pageSize < result.Body.TotalItems;
                employees.AddRange(result.Body.Items);
            } while (hasMorePages);

            Console.WriteLine($"Got {employees.Count} employees from API");
            ConsoleTable
            .From(employees)
            .Write();
        }
Example #4
0
        public async Task ExecuteDetailed()
        {
            Console.WriteLine("Executing detailed school hours plans example");

            using var schoolAdministrationClient =
                      new KMDStudicaSchoolAdministration(new TokenCredentials(tokenProvider));
            schoolAdministrationClient.BaseUri = string.IsNullOrEmpty(configuration.SchoolAdministrationBaseUri)
                ? new Uri("https://gateway.kmdlogic.io/studica/school-administration/v1")
                : new Uri(configuration.SchoolAdministrationBaseUri);

            try
            {
                var result = await schoolAdministrationClient.SchoolHoursPlanDetailsExternal.GetWithHttpMessagesAsync(
                    schoolCode : configuration.SchoolCode,
                    id : Guid.NewGuid(),
                    customHeaders : new Dictionary <string, List <string> >
                {
                    { "Logic-Api-Key", new List <string> {
                          configuration.StudicaExternalApiKey
                      } }
                });

                Console.WriteLine($"Got school hour plan from API: {result.Body?.Name}");

                if (result.Body?.SchoolHours.Count() > 0)
                {
                    ConsoleTable.From(result.Body.SchoolHours).Write();
                }
            }
            catch (HttpOperationException e)
            {
                // Sample error handler. If this service is called with a not-existing plan id,
                // the service will return HTTP 404 (NotFound)
                Console.WriteLine(e);
            }
        }