improve sync batching; added playback types
This commit is contained in:
@@ -18,4 +18,29 @@ public class AZKiRpcService(MediaService mediaService) : RPC.AZKi.AZKiBase
|
||||
result.Entries.AddRange(items.Select(e => e.ToRpc()));
|
||||
return result;
|
||||
}
|
||||
|
||||
public override async Task<PlaybackInfo> GetMediaPlayback(MediaPlaybackRequest request, ServerCallContext context)
|
||||
{
|
||||
var from = request.Date.ToDateTime().Date;
|
||||
var to = request.Date.ToDateTime().Date.AddDays(1);
|
||||
var items = await mediaService.GetEntriesInRangeAsync(Models.MediaType.All, from, to);
|
||||
var channels = items.GroupBy(i => i.CameraId).Select(c =>
|
||||
{
|
||||
var images = c.Where(m => m.Type == Models.MediaType.Image).Select(m => m.ToRpc());
|
||||
var videos = c.Where(m => m.Type == Models.MediaType.Video).Select(m => m.ToRpc());
|
||||
var result = new MediaChannel
|
||||
{
|
||||
CameraId = c.Key,
|
||||
};
|
||||
result.Images.AddRange(images);
|
||||
result.Videos.AddRange(videos);
|
||||
return result;
|
||||
});
|
||||
var playback = new PlaybackInfo
|
||||
{
|
||||
Date = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(from),
|
||||
};
|
||||
playback.Channels.AddRange(channels);
|
||||
return playback;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user