示例#1
0
        private async void btnBack_ClickAsync(object sender, EventArgs e)
        {
            if (mTxtBox_TripDate.Text != "  -  -")
            {
                APIService _reservationService = new APIService("reservation");

                var reservations = await _reservationService.Get <List <ReservationDTO> >(new ReservationSearchRequest { TransportOfferId = _id.Value });

                foreach (var item in reservations)
                {
                    var req = new ReservationInsertRequest
                    {
                        StartTripDate    = DateTime.Parse(mTxtBox_TripDate.Text),
                        Canceled         = item.Canceled,
                        Finished         = item.Finished,
                        DateReserved     = item.DateReserved,
                        HotelOfferId     = item.HotelOfferId,
                        TransportOfferId = item.TransportOfferId,
                        NumberOfDays     = item.NumberOfDays,
                        NumberOfPersons  = item.NumberOfPersons,
                        TotalPrice       = item.TotalPrice,
                        UserId           = item.UserId
                    };
                    var res = await _reservationService.Update <ReservationDTO>(item.Id, req);

                    if (res == null)
                    {
                        MessageBox.Show("Problem occured while trying to update reservations", "OK");
                    }
                }
            }
        }
示例#2
0
        public async Task Init()
        {
            var currentUser = (await _userService.Get <List <UserDTO> >(new UserSearchRequest
            {
                UserName = APIService.Username
            })).FirstOrDefault(_ => _.UserName == APIService.Username);

            var reservations = await _reservationService.Get <List <ReservationDTO> >(new ReservationSearchRequest { UserId = currentUser.Id });

            FirstName = currentUser.FirstName;
            LastName  = currentUser.LastName;
            Picture   = currentUser.Picture;
            foreach (var reservation in reservations)
            {
                var hOffer = await _hOfferService.GetById <HotelOfferDTO>(reservation.HotelOfferId);

                var hotel = await _hotelService.GetById <HotelDTO>(hOffer.Id);

                var tOffer = await _tOfferService.GetById <TransportOfferDTO>(reservation.TransportOfferId);

                var tCompany = await _tCompanyService.GetById <TransportCompanyDTO>(tOffer.TransportCompanyId);

                var date = DateTime.Now.Subtract(tOffer.EndDate);


                if (!reservation.Finished && !reservation.Canceled && date.Days == 0)
                {
                    // do nothing yet
                    reservation.Finished = true;
                    var updateRequest = new ReservationInsertRequest
                    {
                        UserId           = reservation.UserId,
                        HotelOfferId     = reservation.HotelOfferId,
                        TransportOfferId = reservation.TransportOfferId,
                        NumberOfPersons  = reservation.NumberOfPersons,
                        TotalPrice       = reservation.TotalPrice,
                        DateReserved     = DateTime.Now,
                        NumberOfDays     = reservation.NumberOfDays
                    };
                    var res = await _reservationService.Update <ReservationDTO>(reservation.Id, reservation);
                }

                var item = new ReservationDetailModel
                {
                    Id            = reservation.Id,
                    TransportName = tCompany.TransportCompanyName,
                    HotelName     = hotel.HotelName,
                    Canceled      = reservation.Canceled ? "YES" : "NO",
                    Finished      = reservation.Finished ? "YES" : "NO",
                    TripDate      = reservation.StartTripDate != default(DateTime)?reservation.StartTripDate.ToString("dd.MM.yyyy"):"Not set ",
                    DateReserved  = reservation.DateReserved,
                    Price         = reservation.TotalPrice
                };

                Reservations.Add(item);
            }
        }
示例#3
0
        private async void Reservation_Canceled(object sender, EventArgs e)
        {
            var button        = sender as Button;
            var reservationId = (int)button.BindingContext;

            var reservation = await _reservationService.GetById <ReservationDTO>(reservationId);

            var tOffer = await _tOfferService.GetById <TransportOfferDTO>(reservation.TransportOfferId);

            if (reservation.Canceled)
            {
                await DisplayAlert("Info", "Reservation is already canceled", "OK");
            }
            if (reservation.StartTripDate != default(DateTime))
            {
                if (reservation.StartTripDate.Subtract(DateTime.Now).Days < 7)
                {
                    await DisplayAlert("Info", "You can cancel reservation 7 days before trip", "OK");
                }
            }
            else
            {
                var updateRequest = new ReservationInsertRequest
                {
                    HotelOfferId     = reservation.HotelOfferId,
                    DateReserved     = reservation.DateReserved,
                    Finished         = reservation.Finished,
                    Canceled         = true,
                    NumberOfPersons  = reservation.NumberOfPersons,
                    TotalPrice       = reservation.TotalPrice,
                    TransportOfferId = reservation.TransportOfferId,
                    UserId           = reservation.UserId
                };
                var result = await _reservationService.Update <ReservationDTO>(reservation.Id, updateRequest);
                await DisplayAlert("Info", (result != null)? "Successufully canceld reservation" : "Can't cancel reservation right now", "OK");

                Device.BeginInvokeOnMainThread(() =>
                {
                    var parent = (StackLayout)button.Parent.Parent;
                    var label  = (Label)parent.Children[5];
                    label.Text = "Canceled: YES";
                });
            }
        }
        private async Task <ReservationDTO> MakeReservation(object context)
        {
            var reservationModel = (ReservationDetailViewModel)context;
            //var rooms = reservationModel.Rooms;
            //var roomtypes = rooms.Where(_ => _.OrderedRooms != 0).ToList();
            //float totalPrice,roomPrice = 0;
            //if (roomtypes.Count != 0)
            //{
            //    foreach (var room in roomtypes)
            //    {
            //        NumberOfPersons += (room.OrderedRooms * room.NumberOfPeople);
            //        roomPrice += (room.Price * room.OrderedRooms);
            //    }
            //}
            //totalPrice = roomPrice + reservationModel.TransportOffer.tOffer.Price;


            var user = (await _userService.Get <List <UserDTO> >(new UserSearchRequest {
                UserName = APIService.Username
            }))
                       .FirstOrDefault(_ => _.UserName == APIService.Username);
            ReservationInsertRequest request = new ReservationInsertRequest()
            {
                UserId           = user.Id,
                HotelOfferId     = reservationModel.HotelOffer.hOffer.Id,
                TransportOfferId = reservationModel.TransportOffer.tOffer.Id,
                NumberOfPersons  = NumberOfPersons,
                TotalPrice       = TotalPrice,
                DateReserved     = DateTime.Now,
                NumberOfDays     = reservationModel.NumberOfDays
            };
            var result = await _reservationService.Insert <ReservationDTO>(request);

            if (result != null)
            {
                var hotel = await _hotelService.GetById <HotelDTO>(reservationModel.HotelOffer.hOffer.HotelId);

                var transport = await _tCompanyService.GetById <TransportCompanyDTO>(reservationModel.TransportOffer.tOffer.TransportCompanyId);

                hotel.TotalVisits           += request.NumberOfPersons;
                transport.TotalReservations += request.NumberOfPersons;

                var hotelUpdate = new HotelInsertRequest()
                {
                    CityId       = hotel.CityId,
                    HotelAddress = hotel.HotelAddress,
                    HotelName    = hotel.HotelName,
                    TotalVisits  = hotel.TotalVisits
                };
                await _hotelService.Update <HotelDTO>(hotel.Id, hotelUpdate);

                var transportUpdate = new TransportCompanyInsertRequest
                {
                    TransportTypeId      = transport.TransportTypeId,
                    IsActive             = transport.IsActive,
                    Picture              = transport.Picture,
                    TransportCompanyName = transport.TransportCompanyName,
                    TotalReservations    = transport.TotalReservations
                };
                await _tCompanyService.Update <TransportCompanyDTO>(transport.Id, transportUpdate);

                await Application.Current.MainPage.DisplayAlert("Info", "Successufully added reservation", "Ok");
            }
            else
            {
                await Application.Current.MainPage.DisplayAlert("Info", "Error occured while adding reservation, please check your inputs", "Ok");
            }

            return(result);
        }