@@ -55,9 +55,46 @@ public async Task<Subject[]> GetAllSubjectsAsync(string id = "getSubjects", Canc
5555 if ( response . StatusCode != HttpStatusCode . OK )
5656 throw new HttpRequestException ( $ "There was an error while the http request (Code: { response . StatusCode } ).") ;
5757
58- JsonSerializerSettings settings = new JsonSerializerSettings ( ) ;
59- settings . Converters . Add ( new ColorJsonConverter ( ) ) ;
60- JSONRPCResponeModel < List < Subject > > responseModel = JsonConvert . DeserializeObject < JSONRPCResponeModel < List < Subject > > > ( await response . Content . ReadAsStringAsync ( ) , settings ) ;
58+ JSONRPCResponeModel < List < Subject > > responseModel = JsonConvert . DeserializeObject < JSONRPCResponeModel < List < Subject > > > ( await response . Content . ReadAsStringAsync ( ) ) ;
59+
60+ // Check for WebUntis error
61+ if ( responseModel . Error != null )
62+ throw responseModel . Error ;
63+
64+ return responseModel . Result . ToArray ( ) ;
65+ }
66+
67+ public async Task < Class [ ] > GetAllClassesAsync ( string id = "getClasses" , CancellationToken ct = default )
68+ {
69+ // Check for disposing
70+ if ( _disposedValue )
71+ throw new ObjectDisposedException ( GetType ( ) . FullName ) ;
72+
73+ // Check if you logged in
74+ if ( ! LoggedIn )
75+ throw new UnauthorizedAccessException ( "You're not logged in" ) ;
76+
77+ // Make request
78+ JSONRPCRequestModel < object > requestModel = new JSONRPCRequestModel < object > ( )
79+ {
80+ Id = id ,
81+ Method = "getKlassen" ,
82+ Params = new object ( )
83+ } ;
84+ StringContent requestContent = new StringContent ( JsonConvert . SerializeObject ( requestModel ) , Encoding . UTF8 , "application/json" ) ;
85+
86+ // Send request
87+ HttpResponseMessage response = await _client . PostAsync ( ServerUrl + "/WebUntis/jsonrpc.do" , requestContent , ct ) ;
88+
89+ // Check cancellation token
90+ if ( ct . IsCancellationRequested )
91+ return null ;
92+
93+ // Verify response
94+ if ( response . StatusCode != HttpStatusCode . OK )
95+ throw new HttpRequestException ( $ "There was an error while the http request (Code: { response . StatusCode } ).") ;
96+
97+ JSONRPCResponeModel < List < Class > > responseModel = JsonConvert . DeserializeObject < JSONRPCResponeModel < List < Class > > > ( await response . Content . ReadAsStringAsync ( ) ) ;
6198
6299 // Check for WebUntis error
63100 if ( responseModel . Error != null )
0 commit comments