Example #1
0
 public static void Log(object sender, HospitalEventArgs e)
 {
     //Väldigt sällan kraschar programmet för olika trådar använder denna metod samtidigt. isf får dom vänta med hjälp av denna lock.
     lock(streamLocker)
     {
         using (StreamWriter w = File.AppendText("log.txt"))
         {
             if (e.Patient != null)
             {
                 // Om sanatorium är null och IVA är inte null så befann sig patienten i kön och flyttades till iva.
                 if (e.Patient.Sanatorium == null && e.Patient.IVA != null)
                 {
                     Console.WriteLine("Flyttade patient med namn {0} till IVA från Kön. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                     w.WriteLine("Flyttade patient med namn {0} till IVA från Kön. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                 }
                 //Om sanatorium inte är null och iva inte är null så flyttade vi patienten från sana till iva.
                 if (e.Patient.Queue == null && e.Patient.Sanatorium != null && e.Patient.IVA != null)
                 {
                     Console.WriteLine("Flyttade patient med namn {0} till IVA från Sanatorium. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                     w.WriteLine("Flyttade patient med namn {0} till IVA från Kön. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                 }
                 //Om kö inte är null och sanatorium inte är null flyttade vi från kö till sanatorium.
                 if (e.Patient.Queue != null && e.Patient.Sanatorium != null)
                 {
                     Console.WriteLine("Flyttade patient med namn {0} till Sanatorium från Kön. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                     w.WriteLine("Flyttade patient med namn {0} till Sanatorium från Kön. Sjukdomslevel {1}", e.Patient.Name, e.Patient.SymptomLevel);
                 }
                 //Om afterlife inte är null är han död.
                 if (e.Patient.Afterlife != null)
                 {
                     Console.ForegroundColor = ConsoleColor.Red;
                     Console.WriteLine("Patient med namn {0} gick bort", e.Patient.Name);
                     w.WriteLine("Patient med namn {0} gick bort", e.Patient.Name);
                     DeadPatients++;
                     Console.WriteLine("Toalt Döda patienter {0}", DeadPatients);
                     Console.ResetColor();
                 }
                 //om Healthy inte är null är patienten frisk.
                 if (e.Patient.Healthy != null)
                 {
                     Console.ForegroundColor = ConsoleColor.Blue;
                     Console.WriteLine("Patient med namn {0} blev frisk", e.Patient.Name);
                     w.WriteLine("Patient med namn {0} gick bort", e.Patient.Name);
                     RecoveredPatients++;
                     Console.WriteLine("Friska patienter {0}", RecoveredPatients);
                     Console.ResetColor();
                 }
             }
         }
     }
 }
Example #2
0
 /// <summary>
 /// EventRaiser. Kallar på denna när hospital skall raisa ett event.
 /// </summary>
 /// <param name="e"></param>
 internal virtual void OnPatientMoved(HospitalEventArgs e)
 {
     PatientMovedEventHandler?.Invoke(this, e);
 }