示例#1
0
        private List <RenovationPeriod> ChooseAppointments(RenovationPeriod renovationPeriod, int roomId)
        {
            List <RenovationPeriod> alternativeAppointments = new List <RenovationPeriod>();
            List <DateTime>         potentialDates          = GetPotentiallyAlternativeAppointments(renovationPeriod.BeginDate);
            int timeSpanInMinutes = (int)renovationPeriod.EndDate.Subtract(renovationPeriod.BeginDate).TotalMinutes;
            int i = 0;

            foreach (DateTime date in potentialDates)
            {
                i++;
                renovationPeriod.BeginDate = date.AddMinutes(30);
                renovationPeriod.EndDate   = renovationPeriod.BeginDate.AddMinutes(timeSpanInMinutes);
                if (!CheckRoomAvailibility(date, roomId))
                {
                    potentialDates = GetPotentiallyAlternativeAppointments(renovationPeriod.BeginDate);
                    i = 0;
                    continue;
                }
                if (i >= timeSpanInMinutes / 30 && CheckIfTimeValid(date.AddMinutes(30 - timeSpanInMinutes)) && CheckIfTimeValid(date.AddMinutes(30)))
                {
                    alternativeAppointments.Add(new RenovationPeriod(date.AddMinutes(30 - timeSpanInMinutes), date.AddMinutes(30)));
                    i = 0;
                }
                if (alternativeAppointments.Count == 10)
                {
                    break;
                }
            }
            return(alternativeAppointments);
        }
示例#2
0
 public BaseRenovation(int roomId, RenovationPeriod renovationPeriod, string description, TypeOfRenovation typeOfRenovation)
 {
     RoomId           = roomId;
     RenovationPeriod = renovationPeriod;
     Description      = description;
     TypeOfRenovation = typeOfRenovation;
 }
示例#3
0
        public void DeleteRenovationPeriod(int roomNumber)
        {
            RenovationPeriod renovationPeriod = GetRenovationPeriodByRoomNumber(roomNumber);

            _context.Remove(renovationPeriod);
            _context.SaveChanges();
        }
        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();
        }
示例#5
0
        public Boolean Add(RenovationPeriod newRenovationPeriod)
        {
            List <RenovationPeriod> renovatonPeriods = GetAll();

            renovatonPeriods.Add(newRenovationPeriod);
            Save(renovatonPeriods);
            return(true);
        }
示例#6
0
 public MergeRenovation(RenovationPeriod renovationPeriod, string description, TypeOfRenovation typeOfRenovation,
                        int firstRoomId, int secondRoomId, string newRoomDescription, TypeOfUsage roomType)
     : base(firstRoomId, renovationPeriod, description, typeOfRenovation)
 {
     SecondRoomId       = secondRoomId;
     NewRoomDescription = newRoomDescription;
     RoomType           = roomType;
 }
 public DivideRenovation(RenovationPeriod renovationPeriod, string description, TypeOfRenovation typeOfRenovation,
                         int divideRoomId, string firstRoomDescription, string secondRoomDescription, TypeOfUsage firstRoomType, TypeOfUsage secondRoomType)
     : base(divideRoomId, renovationPeriod, description, typeOfRenovation)
 {
     FirstRoomDescription  = firstRoomDescription;
     SecondRoomDescription = secondRoomDescription;
     FirstRoomType         = firstRoomType;
     SecondRoomType        = secondRoomType;
 }
        /*public void CancelRenovation(RenovationPeriod renovationPeriod)
         * {
         *  renovationPeriod.Room.IsActive = true;
         *  renovationPeriod.IsDeleted = true;
         *  Update(renovationPeriod);
         *  _roomController.Update(renovationPeriod.Room);
         * }*/

        private void CreateRenovationPeriod(Room room, DateTime startDate, DateTime endDate)
        {
            room.IsActive = false;
            RenovationPeriod renPer = new RenovationPeriod(startDate, endDate, false, room);

            AddRenovatoinPeriod(renPer);
            _roomService.UpdateRoom(room);

            //return renPer;
        }
示例#9
0
        public List <RenovationPeriod> GetAlternativeAppointemntsForBaseRenovation(RenovationPeriod renovationPeriod, int roomId)
        {
            renovationPeriod.BeginDate = SetNewDateTimesForRenovation(renovationPeriod.BeginDate);
            renovationPeriod.EndDate   = SetNewDateTimesForRenovation(renovationPeriod.EndDate);
            List <RenovationPeriod> alternativeAppointments = new List <RenovationPeriod>();

            do
            {
                alternativeAppointments = ChooseAppointments(renovationPeriod, roomId);
            }while (alternativeAppointments.Count != 10);

            return(alternativeAppointments);
        }
示例#10
0
        public Model.Manager.RenovationPeriod NewRenovationPeriod(Model.Manager.RenovationPeriod renovationPeriod)
        {
            List <RenovationPeriod> renovationPeriods      = ReadFromFile();
            RenovationPeriod        searchRenovationPeriod = GetRenovationPeriodByRoomNumber(renovationPeriod.room.Number);

            if (searchRenovationPeriod != null)
            {
                return(null);
            }

            renovationPeriods.Add(renovationPeriod);
            WriteInFile(renovationPeriods);
            return(renovationPeriod);
        }
示例#11
0
        private bool CheckIfRoomIsAbsoulitelyAvailable(RenovationPeriod renovationPeriod, int roomId)
        {
            DateTime renovationTime = renovationPeriod.BeginDate;

            while (renovationTime.CompareTo(renovationPeriod.EndDate) <= 0)
            {
                if (!CheckRoomAvailibility(renovationTime, roomId))
                {
                    return(false);
                }

                renovationTime = renovationTime.AddMinutes(30);
            }
            return(true);
        }
示例#12
0
        public Boolean Update(int roomId, RenovationPeriod newRenovationPeriod)
        {
            List <RenovationPeriod> renovationPeriods = GetAll();

            foreach (RenovationPeriod renPer in renovationPeriods)
            {
                if (renPer.Room.RoomId == roomId)
                {
                    renovationPeriods[renovationPeriods.IndexOf(renPer)] = newRenovationPeriod;
                    Save(renovationPeriods);
                    return(true);
                }
            }
            return(false);
        }
        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);
        }
        public RoomView()
        {
            InitializeComponent();
            txtNameToSearch.Focus();

            rooms.AddRange(roomController.ViewRooms());

            foreach (Room r in rooms)
            {
                if (r.Usage != TypeOfUsage.Soba_za_lezanje)
                {
                    RoomDTO roomDTO = new RoomDTO();

                    roomDTO.NumberOfRoom = r.Number.ToString();

                    roomDTO.isRenovate = r.Renovation;

                    if (r.Usage == TypeOfUsage.Soba_za_pregled)
                    {
                        roomDTO.Purpose = "Soba za pregled";
                    }
                    else
                    {
                        roomDTO.Purpose = "Operaciona sala";
                    }

                    renovationPeriod = periodController.ViewRenovationByRoomNumber(r.Number);

                    if (renovationPeriod != null)
                    {
                        roomDTO.StartRenovationDate = renovationPeriod.BeginDate.ToShortDateString();
                        roomDTO.EndRenovationDate   = renovationPeriod.EndDate.ToShortDateString();
                    }
                    else
                    {
                        roomDTO.StartRenovationDate = "-";
                        roomDTO.EndRenovationDate   = "-";
                    }
                    roomsDTO.Add(roomDTO);
                }
            }

            dgRooms.ItemsSource = roomsDTO;
        }
示例#15
0
        public List <Room> ViewRoomByUsage(TypeOfUsage usage, DateTime date)
        {
            List <Room> roomsByUsage = roomRepository.GetRoomsByUsage(usage);
            List <Room> result       = new List <Room>();

            foreach (Room r in roomsByUsage)
            {
                if (!r.Renovation)
                {
                    result.Add(r);
                }
                else
                {
                    RenovationPeriod renovationPeriod = renovationPeriodRepository.GetRenovationPeriodByRoomNumber(r.Number);
                    if (renovationPeriod != null && DateTime.Compare(date, renovationPeriod.EndDate) >= 0)
                    {
                        result.Add(r);
                    }
                }
            }
            return(result);
        }
示例#16
0
        public bool DeleteRenovationPeriod(int roomNumber)
        {
            List <RenovationPeriod> renovationPeriods         = ReadFromFile();
            RenovationPeriod        renovationPeriodForDelete = null;

            foreach (RenovationPeriod renovationPeriod in renovationPeriods)
            {
                if (renovationPeriod.room.Number == roomNumber)
                {
                    renovationPeriodForDelete = renovationPeriod;
                    break;
                }
            }
            if (renovationPeriodForDelete == null)
            {
                return(false);
            }

            renovationPeriods.Remove(renovationPeriodForDelete);
            WriteInFile(renovationPeriods);
            return(true);
        }
        public List <Room> ViewRoomByUsage(TypeOfUsage usage, DateTime beginDate, DateTime endDate)
        {
            List <Room> roomsByUsage = _roomRepository.GetRoomsByUsage(usage);
            List <Room> result       = new List <Room>();

            foreach (Room r in roomsByUsage)
            {
                if (!r.Renovation)
                {
                    result.Add(r);
                }
                else
                {
                    RenovationPeriod renovationPeriod = _renovationPeriodRepository.GetRenovationPeriodByRoomNumber(r.Id);
                    int beginDateCompare = DateTime.Compare(beginDate, renovationPeriod.BeginDate);
                    int endDateCompare   = DateTime.Compare(endDate, renovationPeriod.EndDate);
                    if (renovationPeriod != null && (beginDateCompare <= 0 && endDateCompare <= 0 || beginDateCompare >= 0 && endDateCompare >= 0))
                    {
                        result.Add(r);
                    }
                }
            }
            return(result);
        }
 public void RemoveRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _renovationPeriodPeriodService.RemoveRenovationPeriod(renovationPeriod);
 }
示例#19
0
 public void UpdateRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _context.Update(renovationPeriod);
     _context.SaveChanges();
 }
示例#20
0
 public void AddRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _context.RenovationPeriods.Add(renovationPeriod);
     _context.SaveChanges();
 }
 public void UpdateRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _renovationPeriodPeriodService.UpdateRenovationPeriod(renovationPeriod);
 }
示例#22
0
        private void Button_Click_9(object sender, RoutedEventArgs e)
        {
            string s1 = dataOd.SelectedDate.ToString();

            string[] lines1  = s1.Split(' ');
            string   datumOd = lines1[0];

            if (String.IsNullOrEmpty(datumOd))
            {
                MessageBox.Show("Morate izabrati datum početka ležanja.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);

                dataOd.Focus();
                return;
            }
            else if (String.IsNullOrEmpty(comboSoba.Text))
            {
                MessageBox.Show("Morate izabrati sobu u koju želite smjesiti pacijenta.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                comboSoba.Focus();
                return;
            }
            else if (String.IsNullOrEmpty(comboKrevet.Text))
            {
                MessageBox.Show("Morate izabrati krevet u koji želite smjesiti pacijenta.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                comboKrevet.Focus();
                return;
            }
            else if (comboKrevet.Text.Contains("zauzet"))
            {
                MessageBox.Show("Ne možete smjestiti pacijenta u krevet koji je zauzet.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                comboKrevet.Focus();
                return;
            }

            string[] t1 = datumOd.Split('/');

            string s2 = dataDo.SelectedDate.ToString();

            string[] lines2  = s2.Split(' ');
            string   datumDo = lines2[0];

            if (String.IsNullOrEmpty(datumDo))
            {
                MessageBox.Show("Morate izabrati datum kraja ležanja.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);

                dataDo.Focus();
                return;
            }

            string[] t2 = datumDo.Split('/');

            int god1 = Int32.Parse(t1[2]);
            int god2 = Int32.Parse(t2[2]);

            int mj1 = Int32.Parse(t1[0]);
            int mj2 = Int32.Parse(t2[0]);

            int dan1 = Int32.Parse(t1[1]);
            int dan2 = Int32.Parse(t2[1]);

            if (god2 < god1)
            {
                MessageBox.Show("Greška! Krajnji datum je stariji od početnog.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);

                dataOd.Focus();
                return;
            }
            else if (god1 == god2 && mj1 > mj2)
            {
                MessageBox.Show("Greška! Krajnji datum je stariji od početnog.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);

                dataOd.Focus();
                return;
            }
            else if (god1 == god2 && mj1 == mj2 && dan1 > dan2)
            {
                MessageBox.Show("Greška! Krajnji datum je stariji od početnog.", "Upozorenje!",
                                MessageBoxButton.OK, MessageBoxImage.Warning);

                dataOd.Focus();
                return;
            }
            Room r = roomPlacment;

            r.Occupation = r.Occupation + 1;
            rc.EditRoom(r);

            List <Examination> examinations = ec.ViewExaminationsByRoom(r.Number);

            foreach (Examination exm in examinations)
            {
                exm.room = r;
                ec.EditExamination(exm);
            }

            RenovationPeriod period = rpc.ViewRenovationByRoomNumber(r.Number);

            period.room = r;
            rpc.EditRenovation(period);

            PlacemetnInARoom placement = new PlacemetnInARoom();
            int idPlacement            = prc.getLastId();

            placement.Id = ++idPlacement;
            placement.DateOfPlacement = (DateTime)dataOd.SelectedDate;
            placement.DateOfDismison  = (DateTime)dataDo.SelectedDate;
            placement.room            = r;
            placement.patientCard     = patientCard;

            prc.PlaceInRoom(placement);

            var p = new PlaceInSickRoom();

            p.Show();
        }
 public void RemoveRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _renovationPeriodRepository.Remove(renovationPeriod.Room.RoomId);
 }
 public void UpdateRenovationPeriod(RenovationPeriod renovationPeriod)
 {
     _renovationPeriodRepository.Update(renovationPeriod.Room.RoomId, renovationPeriod);
 }
 public void AddRenovatoinPeriod(RenovationPeriod newRenovationPeriod)
 {
     _renovationPeriodRepository.Add(newRenovationPeriod);
 }
 public static RenovationPeriodDTO RenovationPeriodToRenovationPeriodDTO(RenovationPeriod renovationPeriod)
 {
     return(new RenovationPeriodDTO(renovationPeriod.BeginDate, renovationPeriod.EndDate));
 }
 public void AddRenovatoinPeriod(RenovationPeriod newRenovationPeriod)
 {
     _renovationPeriodPeriodService.AddRenovatoinPeriod(newRenovationPeriod);
 }