fix: синхронизации аудиторий

This commit is contained in:
2026-05-11 23:59:13 +03:00
parent 6824d7ce7d
commit 34334e9a8d
6 changed files with 255 additions and 41 deletions
@@ -29,9 +29,34 @@ public class ModeusApiClient : IModeusApiClient
public async Task<ModeusRoomsResponse> SearchRoomsAsync()
{
var response = await _http.PostAsJsonAsync("/api/proxy/rooms/search", new { });
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync<ModeusRoomsResponse>() ?? new(new());
const int pageSize = 100;
var allRooms = new List<ModeusRoom>();
var page = 0;
var totalPages = 1;
do
{
var body = new
{
name = "",
sort = "+building.name,+name",
size = pageSize,
page,
deleted = false
};
var response = await _http.PostAsJsonAsync("/api/proxy/rooms/search", body);
response.EnsureSuccessStatusCode();
var payload = await response.Content.ReadFromJsonAsync<ModeusRoomsResponse>() ?? new ModeusRoomsResponse();
allRooms.AddRange(payload.RoomItems);
totalPages = payload.Page?.TotalPages ?? page + 1;
page++;
}
while (page < totalPages);
return new ModeusRoomsResponse { Rooms = allRooms };
}
public async Task<List<ModeusEmployee>> SearchEmployeeAsync(string fullname)