public async Task <IActionResult> PutMissionQueuesResponse(int id, MissionQueuesResponse missionQueuesResponse) { if (id != missionQueuesResponse.Id) { return(BadRequest()); } _context.Entry(missionQueuesResponse).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MissionQueuesResponseExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
protected async Task GetQueue(Robot host, ApplicationDbContext db) { if (!host.IsOnline) { return; } try { _client.DefaultRequestHeaders.Accept.Clear(); var httpResponse = await _client.SendAsync(HttpRequestMessage(host, "/mission_queue")); if (httpResponse.IsSuccessStatusCode) { await using var responseStream = await httpResponse.Content.ReadAsStreamAsync(); var response = await JsonSerializer.DeserializeAsync <List <MissionQueuesResponse> >(responseStream, _options); foreach (var queuesResponse in response) { queuesResponse.RobotId = host.Id; var isAvailable = db.MissionQueuesResponse .Where(s => s.Id.Equals(queuesResponse.Id)) .Any(s => s.RobotId.Equals(host.Id)); if (isAvailable) { db.MissionQueuesResponse.Update(new MissionQueuesResponse { Id = queuesResponse.Id, Robot = host, RobotId = host.Id, State = queuesResponse.State, Url = queuesResponse.Url }); } else { var missq = new MissionQueuesResponse { Id = queuesResponse.Id, Robot = host, RobotId = host.Id, State = queuesResponse.State, Url = queuesResponse.Url }; await db.MissionQueuesResponse.AddAsync(missq); } } await db.SaveChangesAsync(); } } catch (Exception e) { _logger.LogCritical("The Robot may be is offline"); } }