public async Task <ActionResult <string> > GetSignalsForCaller(string to, string from, WebRTCSignalTypesEnum type = WebRTCSignalTypesEnum.any) { if (string.IsNullOrEmpty(to) || string.IsNullOrEmpty(from)) { return(BadRequest()); } var query = _context.WebRTCSignals.Where(x => x.To.ToLower() == to.ToLower() && x.From.ToLower() == from.ToLower() && x.DeliveredAt == null); if (type != WebRTCSignalTypesEnum.any) { query = query.Where(x => x.SignalType == type.ToString()); } var nextSignal = await query .OrderBy(x => x.Inserted) .FirstOrDefaultAsync(); if (nextSignal != null) { nextSignal.DeliveredAt = DateTime.UtcNow.ToString("o"); await _context.SaveChangesAsync(); return(nextSignal.Signal); } else { return(NoContent()); } }
private async Task SendToSignalingServer(HttpClient httpClient, string jsonStr, WebRTCSignalTypesEnum sendType) { var content = new StringContent(jsonStr, Encoding.UTF8, "application/json"); var res = await httpClient.PutAsync($"{_restServerUri}/{sendType}/{_ourID}/{_theirID}", content).ConfigureAwait(false); logger.LogDebug($"webrtc-rest PUT result for {_restServerUri}/{sendType}/{_ourID}/{_theirID} {res.StatusCode}."); }