private void AddSoba()
        {
            Soba novaSoba = new Soba();

            novaSoba.Sifra     = Convert.ToInt32(SifraTb.Text);
            novaSoba.Kapacitet = Convert.ToInt32(KapacitetTb.Text);
            novaSoba.Zauzetost = Convert.ToInt32(ZauzetostTb.Text);
            novaSoba.Tip       = (TypeOfUsage)TipCb.SelectedItem;
            novaSoba.Pocetak   = (DateTime)PocetakTb.SelectedDate;
            novaSoba.Kraj      = (DateTime)KrajTb.SelectedDate;
            Sobe.Add(novaSoba);
            RoomController             roomController             = new RoomController();
            RenovationPeriodController renovationPeriodController = new RenovationPeriodController();
            RenovationPeriod           p = new RenovationPeriod();
            Room room = new Room();

            room.Capacity   = novaSoba.Kapacitet;
            room.Number     = novaSoba.Sifra;
            room.Occupation = novaSoba.Zauzetost;
            room.Usage      = novaSoba.Tip;
            if (novaSoba.Pocetak != DateTime.Today && novaSoba.Kraj != DateTime.Today)
            {
                room.Renovation = true;
                p.room          = room;
                p.BeginDate     = novaSoba.Pocetak;
                p.EndDate       = novaSoba.Kraj;
                renovationPeriodController.ScheduleRenovation(p);
            }

            roomController.AddRoom(room);
            // Resetujemo polja
            ClearFields();

            UpdateTempSoba();
        }
        private void UpdateSoba()
        {
            SelektovanaSoba.Sifra     = Convert.ToInt32(SifraTb.Text);
            SelektovanaSoba.Kapacitet = Convert.ToInt32(KapacitetTb.Text);
            SelektovanaSoba.Zauzetost = Convert.ToInt32(ZauzetostTb.Text);
            SelektovanaSoba.Pocetak   = (DateTime)PocetakTb.SelectedDate;
            SelektovanaSoba.Tip       = (TypeOfUsage)TipCb.SelectedItem;
            SelektovanaSoba.Kraj      = (DateTime)KrajTb.SelectedDate;
            RoomController             roomController             = new RoomController();
            RenovationPeriodController renovationPeriodController = new RenovationPeriodController();
            RenovationPeriod           p = new RenovationPeriod();
            Room room = new Room();

            room.Capacity   = SelektovanaSoba.Kapacitet;
            room.Number     = SelektovanaSoba.Sifra;
            room.Occupation = SelektovanaSoba.Zauzetost;
            if (SelektovanaSoba.Pocetak == DateTime.Today && SelektovanaSoba.Kraj == DateTime.Today)
            {
                room.Renovation = false;
                renovationPeriodController.CancelRenovation(room.Number);
            }
            else if (SelektovanaSoba.Pocetak == DateTime.MinValue && SelektovanaSoba.Kraj == DateTime.MinValue)
            {
                room.Renovation = false;
                renovationPeriodController.CancelRenovation(room.Number);
            }
            else
            {
                if (renovationPeriodController.ViewRenovationByRoomNumber(room.Number) != null)
                {
                    room.Renovation = true;
                    p.room          = room;
                    p.BeginDate     = SelektovanaSoba.Pocetak;
                    p.EndDate       = SelektovanaSoba.Kraj;
                    renovationPeriodController.EditRenovation(p);
                }
                else
                {
                    room.Renovation = true;
                    p.room          = room;
                    p.BeginDate     = SelektovanaSoba.Pocetak;
                    p.EndDate       = SelektovanaSoba.Kraj;
                    renovationPeriodController.ScheduleRenovation(p);
                }
            }

            roomController.EditRoom(room);
        }
        private void UpdateTempSoba()
        {
            Sobe.Clear();
            TempSobe.Clear();
            RoomController             roomController             = new RoomController();
            RenovationPeriodController renovationPeriodController = new RenovationPeriodController();
            List <Room>             rooms   = roomController.ViewRooms();
            List <RenovationPeriod> periods = renovationPeriodController.ViewRenovations();

            if (rooms != null)
            {
                foreach (Room r in rooms)
                {
                    if (periods != null)
                    {
                        foreach (RenovationPeriod p in periods)
                        {
                            if (r.Number == p.room.Number)
                            {
                                Sobe.Add(new Soba()
                                {
                                    Sifra = r.Number, Kapacitet = r.Capacity, Zauzetost = r.Occupation, Tip = r.Usage, Pocetak = p.BeginDate, Kraj = p.EndDate
                                });
                                r.Renovation = true;
                            }
                        }
                    }
                    if (r.Renovation == false)
                    {
                        Sobe.Add(new Soba()
                        {
                            Sifra = r.Number, Kapacitet = r.Capacity, Zauzetost = r.Occupation, Tip = r.Usage
                        });
                    }
                }
            }
            foreach (var soba in Sobe)
            {
                TempSobe.Add(soba);
            }
        }
        private void buttonObrisiSalu_Click(object sender, RoutedEventArgs e)
        {
            if (SelektovanaSoba == null || string.IsNullOrWhiteSpace(SelektovanaSoba.Sifra.ToString()))
            {
                return;
            }
            foreach (Soba soba in TempSobe)
            {
                if (soba.Sifra == SelektovanaSoba.Sifra)
                {
                    RoomController             roomController             = new RoomController();
                    RenovationPeriodController renovationPeriodController = new RenovationPeriodController();
                    renovationPeriodController.CancelRenovation(soba.Sifra);
                    roomController.DeleteRoom(soba.Sifra);
                    //EquipmentInRoomsController ec = new EquipmentInRoomsController();
                    //ec.deleteLeftEquipmentInRooms(soba.Sifra);
                    ExaminationController exc = new ExaminationController();
                    exc.DeleteRoomExaminations(soba.Sifra);
                    PlacementInSickRoomController pc = new PlacementInSickRoomController();
                    pc.DeleteRoomPlacements(soba.Sifra);
                    DoctorController dc    = new DoctorController();
                    UserController   uc    = new UserController(dc);
                    List <User>      lista = uc.ViewAllUsers();
                    foreach (Doctor d in lista)
                    {
                        Doctor n = (Doctor)d;
                        n.DoctorsOffice = new Room();
                        List <Room> rooms = roomController.ViewRooms();
                        n.DoctorsOffice = rooms.First();
                    }
                    SelektovanaSoba = null;
                    ClearFields();
                    UpdateTempSoba();

                    break;
                }
            }
        }
        public RoomsView()
        {
            InitializeComponent();
            this.DataContext = this;
            this.izaberiTip();
            Sobe        = new ObservableCollection <Soba>();
            TempSobe    = new ObservableCollection <Soba>();
            Kriterijumi = new ObservableCollection <string>();
            Kriterijumi.Add("Sifra");
            SifraTb.IsEnabled = true;

            RoomController             roomController             = new RoomController();
            List <Room>                rooms                      = roomController.ViewRooms();
            RenovationPeriodController renovationPeriodController = new RenovationPeriodController();
            List <RenovationPeriod>    periods                    = renovationPeriodController.ViewRenovations();

            if (rooms != null)
            {
                foreach (Room r in rooms)
                {
                    if (periods != null)
                    {
                        foreach (RenovationPeriod p in periods)
                        {
                            if (r.Number == p.room.Number)
                            {
                                Sobe.Add(new Soba()
                                {
                                    Sifra = r.Number, Kapacitet = r.Capacity, Zauzetost = r.Occupation, Tip = r.Usage, Pocetak = p.BeginDate, Kraj = p.EndDate
                                });
                                r.Renovation = true;
                            }
                        }
                    }
                    if (r.Renovation == false)
                    {
                        Sobe.Add(new Soba()
                        {
                            Sifra = r.Number, Kapacitet = r.Capacity, Zauzetost = r.Occupation, Tip = r.Usage
                        });
                    }
                }
            }


            //Sobe.Add(new Soba() {  Kapacitet = "3", Sifra = "djna" , Tip="Operaciona sala",Zauzetost="0", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() {  Kapacitet = "30", Sifra = "aadjna",Pocetak=Convert.ToDateTime("1/12/2020"),Kraj= Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() {  Kapacitet = "40", Sifra = "jdjna", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() {  Kapacitet = "4000", Sifra = "ccdjna", Pocetak = Convert.ToDateTime(null), Kraj = Convert.ToDateTime(null) });
            //Sobe.Add(new Soba() {  Kapacitet = "50", Sifra = "aadjna", Pocetak = Convert.ToDateTime(null), Kraj = Convert.ToDateTime(null) });
            //Sobe.Add(new Soba() { Kapacitet = "3", Sifra = "djakda", Tip = "Operaciona sala", Zauzetost = "0", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() { Kapacitet = "3", Sifra = "123", Tip = "Operaciona sala", Zauzetost = "0", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() { Kapacitet = "3", Sifra = "987", Tip = "Operaciona sala", Zauzetost = "0", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });
            //Sobe.Add(new Soba() { Kapacitet = "3", Sifra = "23456789", Tip = "Operaciona sala", Zauzetost = "0", Pocetak = Convert.ToDateTime("1/12/2020"), Kraj = Convert.ToDateTime("1/12/2020") });


            foreach (var soba in Sobe)
            {
                TempSobe.Add(soba);
            }
            SelectedKriterijum = Kriterijumi[0];
            SifraHint          = "Unesi broj";
            PocetakHint        = "Izaberi datum";
            KrajHint           = "Izaberi datum";
            TipHint            = "Unesi tekst";
            KapacitetHint      = "Unesi broj";
            ZauzetostHint      = "Unesi broj";
            PretragaHint       = "Unesi tekst za pretragu";
            SelektovanaSoba    = null;
        }