示例#1
0
        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);
        }
示例#2
0
        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);
     }
 }
示例#4
0
        public static void HandleNewTriageReport(TriageReport triageReport)
        {
            if (ShouldAddNewVictim(triageReport))
            {
                InsertNewVictim(triageReport);
            }
            else
            {
                AddNewReportToVictim(triageReport);
            }

            if (ShouldAddNewRescuer(triageReport))
            {
                InsertNewRescuer(triageReport);
            }
            else
            {
                AddNewReportToRescuer(triageReport);
            }
        }
示例#5
0
 static async Task Main(string[] args)
 {
     await TriageReport.Run();
 }
示例#6
0
 private static async void InsertNewRescuer(TriageReport report)
 {
     var res = new Rescuer(report);
     await rescuers.InsertOneAsync(res);
 }
示例#7
0
 private static async void InsertNewVictim(TriageReport report)
 {
     var vic = new Victim(report);
     await victims.InsertOneAsync(vic);
 }
示例#8
0
        private static bool ShouldAddNewVictim(TriageReport triageReport)
        {
            long count = victims.Find(v => v.VictimID == triageReport.SensorData.SensorID).CountDocuments();

            return(count == 0);
        }
示例#9
0
        private static bool ShouldAddNewRescuer(TriageReport triageReport)
        {
            long count = rescuers.Find(v => v.RescuerID == triageReport.RescuerID).CountDocuments();

            return(count == 0);
        }