private static async void AddNewReportToRescuer(TriageReport report) { var filter = Builders <Rescuer> .Filter.Eq(r => r.RescuerID, report.RescuerID); var update = Builders <Rescuer> .Update.Push(v => v.Reports, report); await rescuers.FindOneAndUpdateAsync(filter, update); }
private static async void AddNewReportToVictim(TriageReport report) { var filter = Builders <Victim> .Filter.Eq(v => v.VictimID, report.SensorData.SensorID); var update = Builders <Victim> .Update.Push(v => v.Reports, report).Set(v => v.CurrentPriority, report.Priority); await victims.FindOneAndUpdateAsync(filter, update); }
private async void SaveTriageReport(StreamSocket socket, string message) { try { Console.WriteLine(" Generating example triage report..."); var report = new TriageReport(); DBWrapper.HandleNewTriageReport(report); var wrt = new DataWriter(socket.OutputStream); string response = "ACK"; wrt.WriteString(response + Environment.NewLine); await wrt.StoreAsync(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } }
public static void HandleNewTriageReport(TriageReport triageReport) { if (ShouldAddNewVictim(triageReport)) { InsertNewVictim(triageReport); } else { AddNewReportToVictim(triageReport); } if (ShouldAddNewRescuer(triageReport)) { InsertNewRescuer(triageReport); } else { AddNewReportToRescuer(triageReport); } }
static async Task Main(string[] args) { await TriageReport.Run(); }
private static async void InsertNewRescuer(TriageReport report) { var res = new Rescuer(report); await rescuers.InsertOneAsync(res); }
private static async void InsertNewVictim(TriageReport report) { var vic = new Victim(report); await victims.InsertOneAsync(vic); }
private static bool ShouldAddNewVictim(TriageReport triageReport) { long count = victims.Find(v => v.VictimID == triageReport.SensorData.SensorID).CountDocuments(); return(count == 0); }
private static bool ShouldAddNewRescuer(TriageReport triageReport) { long count = rescuers.Find(v => v.RescuerID == triageReport.RescuerID).CountDocuments(); return(count == 0); }