コード例 #1
0
        public KrankenhausMain()
        {
            //Generates 10 beds in the sanatorium and 5 beds in the ICU if empty
            //Also generates a record in AfterLives and Dischargeds to hold references to any patients which belong to that category
            using (var db = new KrankenhausContext())
            {
                if (db.Sanatorium.FirstOrDefault() == null)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        var ICUSpot = new IntensiveCareUnit()
                        {
                            AvailableBed = true
                        };
                        db.IntesiveCareUnit.Add(ICUSpot);
                    }


                    for (int i = 0; i < 10; i++)
                    {
                        var sanatoriumBed = new Sanatorium()
                        {
                            AvailableBed = true
                        };
                        db.Sanatorium.Add(sanatoriumBed);
                    }


                    db.AfterLives.Add(new AfterLife()
                    {
                    });
                    db.Dischargeds.Add(new Discharged()
                    {
                    });

                    db.SaveChanges();
                }
            }
        }
コード例 #2
0
 public Simulator(int IVAD, int IVAI, int SanaD, int SanaI, int Patients, int Doctors, int QueI, int QueD)
 {
     hospital       = new Hospital(Patients, Doctors, QueI, QueD);
     IVADept        = new IVA(IVAI, IVAD);
     sanatoriumDept = new Sanatorium(SanaI, SanaD);
 }
コード例 #3
0
        public static void SendpatientsToIvaAndSanatorium()
        {
            IVA iva = new IVA();

            iva.Patients = new List <Patient>();
            Sanatorium sanatorium = new Sanatorium();

            sanatorium.Patients = new List <Patient>();

            using (var DB = new Context())
            {
                Queue      patientInqueue      = DB.Queues.FirstOrDefault(q => q.Patients.Count > 0);
                IVA        patientInIva        = DB.Ivas.FirstOrDefault(P => P.Patients.Count > 0);
                Sanatorium patientInSanatorium = DB.Sanatoria.FirstOrDefault(P => P.Patients.Count > 0);

                if (patientInqueue != null && patientInqueue.Patients.Count > 0)
                {
                    DB.Entry(patientInqueue).Collection(p => p.Patients).Load();
                    patientInqueue.Patients = patientInqueue.Patients.OrderByDescending(p => p.Symptomnivå).ThenBy(p => p.Age).ToList();
                }
                if (patientInSanatorium != null && patientInSanatorium.Patients.Count > 0)
                {
                    DB.Entry(patientInSanatorium).Collection(p => p.Patients).Load();
                    patientInSanatorium.Patients = patientInSanatorium.Patients.OrderByDescending(p => p.Symptomnivå).ThenBy(p => p.Age).ToList();
                }
                if (patientInIva != null && patientInqueue != null || patientInIva != null && patientInSanatorium != null)
                {
                    while (patientInIva.Patients.Count < 5)
                    {
                        //0 för Sanatorium 1 för Iva
                        int     numOfTable = Method.FindSickestPatient();
                        Patient patient;

                        if (numOfTable == 0)
                        {
                            patient = patientInSanatorium.Patients.FirstOrDefault();
                            patientInIva.Patients.Add(patient);
                            EventsManager.OnSendPatientsInIVA(patient);

                            patientInSanatorium.Patients.Remove(patient);
                        }
                        else
                        {
                            patient = patientInqueue.Patients.FirstOrDefault();
                            patientInIva.Patients.Add(patient);
                            EventsManager.OnSendPatientsInIVA(patient);
                            patientInqueue.Patients.Remove(patient);
                        }
                    }
                    DB.SaveChanges();
                }
                // för första gången....
                else if (patientInIva == null && patientInqueue != null || patientInIva == null && patientInSanatorium != null)
                {
                    while (iva.Patients.Count < 5)
                    {
                        //0 för Sanatorium 1 för Iva
                        int     numOfTable = Method.FindSickestPatient();
                        Patient patient;

                        if (numOfTable == 0)
                        {
                            patient = patientInSanatorium.Patients.FirstOrDefault();
                            iva.Patients.Add(patient);
                            DB.Ivas.Add(iva);

                            EventsManager.OnSendPatientsInIVA(patient);

                            patientInSanatorium.Patients.Remove(patient);
                        }
                        else
                        {
                            patient = patientInqueue.Patients.FirstOrDefault();
                            iva.Patients.Add(patient);
                            DB.Ivas.Add(iva);

                            EventsManager.OnSendPatientsInIVA(patient);
                            patientInqueue.Patients.Remove(patient);
                        }
                    }
                    DB.SaveChanges();
                }
                if (patientInSanatorium != null && patientInqueue != null)
                {
                    while (patientInSanatorium.Patients.Count < 10)
                    {
                        var patient = patientInqueue.Patients.FirstOrDefault();
                        patientInSanatorium.Patients.Add(patient);
                        EventsManager.OnSendpatientsToSanatorium(patient);
                        patientInqueue.Patients.Remove(patient);
                    }
                    DB.SaveChanges();
                }
                else if (patientInSanatorium == null && patientInqueue != null)    // för första gången
                {
                    while (sanatorium.Patients.Count < 10)
                    {
                        var patient = patientInqueue.Patients.FirstOrDefault();
                        sanatorium.Patients.Add(patient);
                        DB.Sanatoria.Add(sanatorium);
                        EventsManager.OnSendpatientsToSanatorium(patient);
                        patientInqueue.Patients.Remove(patient);
                    }
                    DB.SaveChanges();
                }
            }
        }