Ejemplo n.º 1
0
        public void AddReservation(Model.Reservation reservationData)
        {
            if (!CheckPersonalDataExist(reservationData.User.UserId))
            {
                view.ShowMessage("Błąd. Uzupełnij swoje dane osobiste!");
                return;
            }

            var temp = model.Reservations
                       .Where(m => m.Car.CarId == reservationData.Car.CarId)
                       .Where(f => (f.DateFrom >= reservationData.DateFrom && f.DateFrom <= reservationData.DateTo) || (f.DateTo >= reservationData.DateFrom && f.DateTo <= reservationData.DateTo))
                       .FirstOrDefault();

            if (temp == null)
            {
                TimeSpan diff           = reservationData.DateTo - reservationData.DateFrom;
                double   timeDiffDouble = Math.Abs(diff.TotalDays);
                timeDiffDouble = Math.Round(timeDiffDouble, MidpointRounding.AwayFromZero);
                if (timeDiffDouble < 1)
                {
                    timeDiffDouble = 1;
                }
                decimal cost = (int)timeDiffDouble * reservationData.Car.CarDayPrince;
                reservationData.Cost = cost;
                model.Reservations.Add(reservationData);
                model.SaveChanges();
                view.ShowMessage("Samochód zarezerwowany pomyślnie.");
                return;
            }
            view.ShowMessage("Błąd. Wybrany termin koliduje z inną rezerwacją.");
        }
 private void addBtnClicked(object sender, RoutedEventArgs e)
 {
     if (!ValidateFields())
     {
         return;
     }
     Debug.WriteLine("Po ifie");
     Model.Reservation tempReservation = new Model.Reservation()
     {
         DateFrom = (DateTime)dateFrom.Value,
         DateTo   = (DateTime)dateTo.Value,
         Comments = Comments.Text.ToString(),
         Status   = Model.ReservationStatus.Verification,
         Car      = staffMenu.ObservableCar[CarCombo.SelectedIndex],
         User     = staffMenu.ObservableUsers[UserCombo.SelectedIndex]
     };
     Debug.WriteLine("Po tworzeniu obiektu");
     reservationList.SelectedIndex = -1;
     Debug.WriteLine("po zmianie indeksu");
     MyController.manageReservation.AddReservation(tempReservation);
     Debug.WriteLine("Po dodaniu");
     staffMenu.updateReservationList();
     Debug.WriteLine("Po aktualizacji");
     reservationList.Items.Refresh();
     reservationList.ItemsSource = staffMenu.ObservableReservations;
     Debug.WriteLine("Po refresh");
 }
Ejemplo n.º 3
0
        private void recent_reservation_Lv_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            ListView Item = (ListView)sender;

            Model.Reservation reservation = (Model.Reservation)Item.SelectedItem;
            this.NavigationService.Navigate(new ReservationDetailPage(reservation));
        }
Ejemplo n.º 4
0
        public void ShowReservationManager(Model.Reservation reservation)
        {
            var users = MyController.manageUser.GetUserList();
            var reservationManagerWindow = new ReservationManageWindow(null, reservation, users, cars, MyController);

            reservationManagerWindow.OnRemove = (reservationId) =>
            {
                Application.MainLoop.Invoke(() =>
                {
                    MyController.manageReservation.DeleteReservation(reservationId);
                });
            };
            reservationManagerWindow.OnSave = (editData) =>
            {
                Application.MainLoop.Invoke(() =>
                {
                    MyController.manageReservation.SaveReservation(editData.reservationData, editData.reservationId);
                });
            };
            reservationManagerWindow.OnBack = () =>
            {
                Application.RequestStop();
                Application.Top.Remove(reservationManagerWindow);
                ShowReservationList();
            };
            Top = Application.Top;
            Top.Add(reservationManagerWindow);
            Application.Run(Top);
        }
        private void reservationsGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DataGrid Item = (DataGrid)sender;

            Model.Reservation reservation = (Model.Reservation)Item.SelectedItem;
            this.NavigationService.Navigate(new ReservationDetailPage(reservation));
        }
 private void deleteBtnclicked(object sender, RoutedEventArgs e)
 {
     if (reservationList.SelectedIndex > 0)
     {
         Model.Reservation reservationItem = staffMenu.ObservableReservations[reservationList.SelectedIndex];
         staffMenu.ObservableReservations.Remove(reservationItem);
         MyController.manageReservation.DeleteReservation(reservationItem.ReservationId);
     }
 }
Ejemplo n.º 7
0
 public ReservationDetailPage(Model.Reservation reservation)
 {
     InitializeComponent();
     this.reservation = reservation;
     this.KeepAlive   = true;
     InitUIBuilders();
     InitUIElements();
     setController(new ReservationController(this));
     UpdateStatusGrid();
 }
 private void saveBtnClicked(object sender, RoutedEventArgs e)
 {
     if (!ValidateFields())
     {
         return;
     }
     Model.Reservation tempReservation = staffMenu.ObservableReservations[reservationList.SelectedIndex];
     reservationList.SelectedIndex = -1;
     MyController.manageReservation.SaveReservation(tempReservation, tempReservation.ReservationId);
     staffMenu.updateReservationList();
     reservationList.Items.Refresh();
 }
Ejemplo n.º 9
0
 private void reserveBtnClicked(object sender, RoutedEventArgs e)
 {
     if (!ValidateFields())
     {
         return;
     }
     Model.Reservation tempReservation = new Model.Reservation()
     {
         DateFrom = (DateTime)dateFrom.Value,
         DateTo   = (DateTime)dateTo.Value,
         Comments = Comments.Text,
         Car      = userMenu.ObservableCar[CarCombo.SelectedIndex],
         User     = userMenu.WindowManager.user,
         Status   = Model.ReservationStatus.Verification,
     };
     MyController.manageReservation.AddReservation(tempReservation);
 }
Ejemplo n.º 10
0
        public void SaveReservation(Model.Reservation reservationData, int editReservationId)
        {
            var temp = model.Reservations
                       .Where(m => m.Car.CarId == reservationData.Car.CarId)
                       .Where(m => m.ReservationId != editReservationId)
                       .Where(f => (f.DateFrom >= reservationData.DateFrom && f.DateFrom <= reservationData.DateTo) || (f.DateTo >= reservationData.DateFrom && f.DateTo <= reservationData.DateTo))
                       .FirstOrDefault();

            if (temp == null)
            {
                TimeSpan diff           = reservationData.DateTo - reservationData.DateFrom;
                double   timeDiffDouble = Math.Abs(diff.TotalDays);
                timeDiffDouble = Math.Round(timeDiffDouble, MidpointRounding.AwayFromZero);
                if (timeDiffDouble < 1)
                {
                    timeDiffDouble = 1;
                }
                decimal cost = (int)timeDiffDouble * reservationData.Car.CarDayPrince;
                if (editReservationId == -1)
                {
                    reservationData.Cost = cost;
                    model.Reservations.Add(reservationData);
                    model.SaveChanges();
                    view.ShowMessage("Samochód zarezerwowany pomyślnie.");
                    return;
                }
                else
                {
                    var tempReservation = model.Reservations.Where(r => r.ReservationId == editReservationId).FirstOrDefault();
                    tempReservation.DateFrom = reservationData.DateFrom;
                    tempReservation.DateTo   = reservationData.DateTo;
                    tempReservation.Car      = reservationData.Car;
                    tempReservation.Comments = reservationData.Comments;
                    tempReservation.Cost     = cost;
                    tempReservation.User     = reservationData.User;
                    view.ShowMessage("Rezerwacja zmieniona pomyślnie.");
                    model.SaveChanges();
                    return;
                }
                view.ShowMessage("Nie udało się dodać rezerwacji.");
                return;
            }
            view.ShowMessage("Błąd. Wybrany termin koliduje z inną rezerwacją.");
        }
        public async void UpdateStatusReservation(string id, string status, string description)
        {
            var client         = new ApiClient(API.URL);
            var requestBuilder = new ApiRequestBuilder();
            var request        = requestBuilder
                                 .buildHttpRequest()
                                 .addParameters("status", status)
                                 .addParameters("description", description)
                                 .setEndpoint(API.reservationId.Replace("{Id}", id))
                                 .setRequestMethod(HttpMethod.Put);

            client.setAuthorizationToken(File.ReadAllText("jwt.txt"));
            Console.WriteLine(request.getApiRequestBundle().getHeaders().convertToJSON());
            var response = await client.sendRequest(request.getApiRequestBundle());

            string json = response.getJObject()["reservation"].ToString();

            Model.Reservation updatedReservation = JsonConvert.DeserializeObject <Model.Reservation>(json);
            MessageBox.Show(response.getJObject()["message"].ToString(), "Success", MessageBoxButton.OK, MessageBoxImage.Information);
            getView().callMethod("GetUpdatedReservation", updatedReservation);
        }
        public bool InsertReservation(Model.Reservation r)
        {
            using (PersonServiceClient proxy = new PersonServiceClient())
            {
                Reservation res = new Reservation();
                res.ReservationId = r.ReservationId;
                res.MovieId       = r.MovieId;
                res.CustomerId    = r.CustomerId;
                res.Seats         = new List <Seat>();
                foreach (Model.Seat s in r.Seats)
                {
                    Seat seat = new Seat();
                    seat.HallId = s.HallId;
                    seat.Number = s.Number;
                    seat.ResId  = s.ResId;
                    seat.Row    = s.Row;
                    seat.SeatId = s.SeatId;
                    res.Seats.Add(seat);
                }

                return(proxy.InsertReservation(res));
            }
        }
Ejemplo n.º 13
0
        private void InitControls()
        {
            #region Fields
            var userSecionLabel = new Label(1, 1, "Rezerwacja:");
            Add(userSecionLabel);
            var dateFromLabel = new Label("Data od:")
            {
                X = Pos.Left(userSecionLabel),
                Y = Pos.Top(userSecionLabel) + 1,
            };
            Add(dateFromLabel);

            var fromTime = new TimeField()
            {
                X = Pos.Left(dateFromLabel),
                Y = Pos.Top(dateFromLabel) + 1,
            };
            Add(fromTime);

            var fromDate = new DateField()
            {
                X = Pos.Right(fromTime) + 5,
                Y = Pos.Top(fromTime),
            };
            Add(fromDate);

            var dateToLabel = new Label("Data do:")
            {
                X = Pos.Left(fromTime),
                Y = Pos.Top(fromTime) + 1,
            };
            Add(dateToLabel);

            var toTime = new TimeField()
            {
                X = Pos.Left(dateToLabel),
                Y = Pos.Top(dateToLabel) + 1,
            };
            Add(toTime);

            var toDate = new DateField()
            {
                X = Pos.Right(toTime) + 5,
                Y = Pos.Top(toTime),
            };
            Add(toDate);

            var commentsLabel = new Label("Uwagi:")
            {
                X = Pos.Left(toTime),
                Y = Pos.Top(toTime) + 1,
            };
            Add(commentsLabel);
            var commentsText = new TextField("")
            {
                X     = Pos.Left(commentsLabel),
                Y     = Pos.Top(commentsLabel) + 1,
                Width = Dim.Fill()
            };
            Add(commentsText);

            var carLabel = new Label("Samochód:")
            {
                X = Pos.Left(commentsText),
                Y = Pos.Top(commentsText) + 1,
            };
            Add(carLabel);

            var carList = new ListView()
            {
                X      = Pos.Left(carLabel),
                Y      = Pos.Top(carLabel) + 1,
                Width  = Dim.Fill(),
                Height = 5
            };
            carList.SetSource(cars);
            Add(carList);

            var datewLabel = new Label("Zajęte terminy:")
            {
                X = Pos.Left(carList),
                Y = Pos.Top(carList) + 6,
            };
            Add(datewLabel);

            var dateList = new ListView()
            {
                X      = Pos.Left(datewLabel),
                Y      = Pos.Top(datewLabel) + 1,
                Width  = Dim.Fill(),
                Height = Dim.Fill() - 5,
            };
            Add(dateList);
            #endregion


            #region Button
            var saveButton = new Button("Rezerwuj", true)
            {
                X = Pos.Center() - 20,
                Y = Pos.Percent(100) - 2,
            };
            Add(saveButton);

            var backButton = new Button("Anuluj")
            {
                X = Pos.Center() + 5,
                Y = Pos.Top(saveButton)
            };
            Add(backButton);
            #endregion

            carList.SelectedItemChanged += (a) =>
            {
                dateList.SetSource(controller.manageReservation.GetCarReservationDates(cars[carList.SelectedItem].CarId));
            };

            #region Set Data
            if (selectedCar != null)
            {
                carList.SelectedItem = cars.FindIndex(c => c.CarId == selectedCar.CarId);
            }
            #endregion

            fromTime.Time = DateTime.Now.TimeOfDay;
            fromDate.Date = DateTime.Now;
            toTime.Time   = DateTime.Now.TimeOfDay;
            toDate.Date   = DateTime.Now.AddDays(3);

            #region bind-button-events
            saveButton.Clicked += () =>
            {
                if (string.IsNullOrEmpty(commentsText.Text.ToString()))
                {
                    MessageBox.ErrorQuery(25, 8, "Błąd", "Pole uwagi nie może być puste.", "Ok");
                    return;
                }
                var dateFrom = fromDate.Date.Date + fromTime.Time;
                var dateTo   = toDate.Date.Date + toTime.Time;
                if (dateFrom > dateTo)
                {
                    MessageBox.ErrorQuery(25, 8, "Błąd", "Data rozpoczęcia musi być mniejsza niż data zakończenia.", "Ok");
                    return;
                }
                if (dateFrom < DateTime.Now)
                {
                    MessageBox.ErrorQuery(25, 8, "Błąd", "Data rozpoczęcia musi być większa od obecnej daty.", "Ok");
                    return;
                }
                Model.Reservation newReservationData = new Model.Reservation()
                {
                    DateFrom = dateFrom,
                    DateTo   = dateTo,
                    Comments = commentsText.Text.ToString(),
                    Status   = (int)Model.ReservationStatus.Verification,
                    User     = user,
                    Car      = cars[carList.SelectedItem]
                };
                OnSave?.Invoke(newReservationData);
            };

            backButton.Clicked += () =>
            {
                OnBack?.Invoke();
                Close();
            };
            #endregion
        }
Ejemplo n.º 14
0
 public void GetUpdatedReservation(Model.Reservation reservation)
 {
     this.reservation = reservation;
     UpdateStatusGrid();
 }