Exemplo n.º 1
0
        public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> item)
        {
            var message    = await item;
            var paramValue = message.Text;

            var result = await service.QueryAsync(paramValue.ToString(), context.CancellationToken);

            var queryIntent = result.Intents.FirstOrDefault();

            ReservationManagement management   = new ReservationManagement();
            List <string>         roomNameList = management.GetAvailableReservation("1시");

            if (roomNameList.Count > 0)
            {
                string meetingRoomName;
                //사용자의 입력에 meetingRooom entity가 존재하는지만 체크
                var availableMeetingRoom = string.Join(", ", roomNameList.ToArray());
                await context.PostAsync($"사용가능한 회의실은 {availableMeetingRoom} 입니다.");

                //context.Wait(this.MessageReceivedAsync);
                context.Done <object>(null);
            }
            else
            {
                await context.PostAsync($"해당 시간에 사용 가능한 회의실이 없습니다.");

                context.Done <object>(null);
            }
        }
Exemplo n.º 2
0
        /**
         * k00233238
         *
         * Mark Hester (Reservations)
         */
        private void ReservationButton_Click(object sender, EventArgs e)
        {
            Form ReservationIndexForm = new ReservationManagement(this, _storage);

            this.Hide();

            ReservationIndexForm.Show();
        }
Exemplo n.º 3
0
 // GET: api/Reservation
 public IHttpActionResult Get()
 {
     try
     {
         var reservationManager = new ReservationManagement();
         apiResponse = new ApiResponse();
         var reservations = reservationManager.RetrieveAll();
         apiResponse.Data = reservations;
         return(Ok(apiResponse));
     }
     catch (BussinessException bex)
     {
         return(InternalServerError(new Exception(bex.AppMessage.Message)));
     }
 }
Exemplo n.º 4
0
        public IHttpActionResult Post(Reservation reservation)
        {
            try
            {
                var         reservationManager = new ReservationManagement();
                Reservation reservationFound   = reservationManager.Create(reservation);
                apiResponse      = new ApiResponse();
                apiResponse.Data = reservationFound;

                return(Ok(apiResponse));
            }
            catch (BussinessException bex)
            {
                return(InternalServerError(new Exception(bex.AppMessage.Message)));
            }
        }
Exemplo n.º 5
0
        public async Task <IHttpActionResult> SendFacturaAsync(ReservationInvoice reservationInvoice)
        {
            try
            {
                var reservationManager = new ReservationManagement();
                await reservationManager.SendInvoiceAsync(reservationInvoice);

                apiResponse = new ApiResponse();

                return(Ok(apiResponse));
            }
            catch (BussinessException bex)
            {
                return(InternalServerError(new Exception(bex.AppMessage.Message)));
            }
        }
Exemplo n.º 6
0
        static Reservation GetReservation()
        {
            Console.WriteLine("Please enter a reservationID");
            var reservationID = ValidateUserInput.ValidateInputInt(Console.ReadLine());

            using (var db = new RentCDb())
            {
                while (!db.Reservations.Any(r => r.ReservationID == reservationID))
                {
                    Console.WriteLine("Please enter a valid reservationID");
                    reservationID = ValidateUserInput.ValidateInputInt(Console.ReadLine());
                }
                var reservation = db.Reservations.Find(reservationID);
                ReservationManagement.DisplayReservationInfo(reservation);
                return(reservation);
            }
        }
Exemplo n.º 7
0
        public void AddReservationsHavingUnpayedThrowsException()
        {
            Reservation r1 = new Reservation()
            {
                ReservationDate = DateTime.Now.AddMonths(-1)
            };
            Reservation r2 = new Reservation()
            {
                ReservationDate = DateTime.Now
            };

            using (IUnitOfWork unitOfWork = GetContext())
            {
                using (ReservationManagement reservationManagement = new ReservationManagement(unitOfWork, TestHelper.GetGenericPrincipalAdmin(), Mapper.Instance))
                {
                    reservationManagement.Add(r1);
                    Assert.Throws <BussinesException>(() => reservationManagement.Add(r2));
                }
            }
        }
        public async Task <IHttpActionResult> Post3Async(Reservation reservation)
        {
            try
            {
                var qrCodeManager      = new QRCodeManagement();
                var userManager        = new UserManagement();
                var reservationManager = new ReservationManagement();

                // State is user email
                var user = new User()
                {
                    Correo = reservation.State
                };
                var userFound             = userManager.RetrieveByCorreo(user);
                var subReservationCreated = reservationManager.CreateSubreservation(reservation, userFound);

                // Build QR Code
                QRCode code = new QRCode()
                {
                    Id                = userFound.Id,
                    Value             = "none",
                    State             = "none",
                    FK_SubReservation = subReservationCreated.FkSubreservation
                };
                QRCode qrcode = qrCodeManager.Create(code, "INVITADO_ENA");

                // Send Email
                await qrCodeManager.SendEmail(user, qrcode.Value);

                apiResponse = new ApiResponse();
                return(Ok(apiResponse));
            }
            catch (BussinessException bex)
            {
                return(InternalServerError(new Exception(bex.AppMessage.Message)));
            }
        }
        public static void DisplayScreen()
        {
            Reservation reservation = new Reservation();

            Console.Write("Car Plate:");
            var carPlate = Console.ReadLine();
            var carID    = ReservationManagement.ValidateCar(carPlate);

            reservation.CarID = carID;


            Console.Write("Client ID:");
            var clientID = ValidateUserInput.ValidateInputInt(Console.ReadLine());

            reservation.CostumerID = ReservationManagement.ValidateClient(clientID);


            Console.Write("Start Date(mm.dd.yyyy):");
            var startDate = ValidateUserInput.ValidateInputDate(Console.ReadLine());

            Console.Write("End Date(mm.dd.yyyy):");
            var endDate = ValidateUserInput.ValidateInputDate(Console.ReadLine());

            reservation.StartDate = ReservationManagement.ValidateDates(startDate, endDate).Item1;
            reservation.EndDate   = ReservationManagement.ValidateDates(startDate, endDate).Item2;


            Console.Write("Location:");
            var location = Console.ReadLine();

            reservation.LocationID = ReservationManagement.ValidateCarLocation(carID, location);


            List <Nullable <DateTime> > carReserved = ReservationManagement.IsCarAvailabe(carID, startDate, endDate);

            if (carReserved.Count() > 0)
            {
                Console.WriteLine("Car is not available on: " + carReserved);
                ReservationManagement.DisplayReservationInfo(reservation);
            }

            using (var db = new RentCDb())
            {
                Car car = db.Cars.Find(reservation.CarID);

                var     price = car.PricePerDay * (decimal)((endDate - startDate).TotalDays);
                decimal totalPrice;

                Console.WriteLine("The car is available for " + car.PricePerDay + "/day");
                Console.Write("Do you have a cupone code?\nIf yes enter it, if no type NO: ");
                var ans = Console.ReadLine();
                if (ans.ToUpper() == "NO")
                {
                    totalPrice = price;
                }
                else
                {
                    var customerCupon = Console.ReadLine();
                    var cupon         = db.Coupons.FirstOrDefault(c => c.CouponCode == customerCupon);
                    if (cupon != null)
                    {
                        Console.WriteLine("Discount: " + cupon.Discount + ": " + cupon.Description);
                        totalPrice = price - (cupon.Discount * price);
                    }
                    totalPrice = price;
                }

                Console.WriteLine("Total price: " + totalPrice);
                Console.WriteLine("Save the reservation? Type YES to save \nNO to go back to main menu: ");

                ans = Console.ReadLine();
                if (ans == "NO")
                {
                    MenuPage.SelectOption();
                }
                else
                {
                    reservation.ReservStatsID = 1;
                    db.Reservations.Add(reservation);
                    db.SaveChanges();
                }
            }
        }
Exemplo n.º 10
0
 public ReservationManagementController()
 {
     this.reservationManagement = new ReservationManagement();
 }
 public ReservationManagementBLL()
 {
     _management = new ReservationManagement();
 }
Exemplo n.º 12
0
        public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> item)
        {
            var message    = await item;
            var paramValue = message.Text;

            var result = await service.QueryAsync(paramValue.ToString(), context.CancellationToken);

            var queryIntent = result.Intents.FirstOrDefault();

            if (!"None".Equals(queryIntent.Intent, StringComparison.InvariantCultureIgnoreCase) &&
                !"MS.MeetingRoom.Book".Equals(queryIntent.Intent, StringComparison.InvariantCultureIgnoreCase))
            {
                /*
                 * Intent가 None값이라면.. 질의에 대한 대답으로 판단.
                 * 새로운 Intent라면 시나리오 변경.
                 */
                QueryResult queryResult = new QueryResult(false)
                {
                    NewIntent = queryIntent.Intent
                };
                await context.PostAsync("진행중인 회의실 예약을 취소합니다.");

                context.Done <object>(message);
            }
            else
            {
                //회의실정보 있나 확인
                if (meetingRoom.Hour == null)
                {
                    // Entity에서 Hour값 가져온다. 있다면..
                    if (!AskHour(context, result))
                    {
                        //시간정보가 없다 받아야 한다.
                        await context.PostAsync("몇시부터 사용하실 건가요?");

                        context.Wait(this.MessageReceivedAsync);
                    }
                }

                if (meetingRoom.Hour != null)
                {
                    //먼저 가능한 회의실을 찾아서 알려준다.
                    ReservationManagement management   = new ReservationManagement();
                    List <string>         roomNameList = management.GetAvailableReservation(meetingRoom.Hour);

                    if (roomNameList.Count > 0)
                    {
                        string meetingRoomName;
                        //사용자의 입력에 meetingRooom entity가 존재하는지만 체크
                        if (!GetUserInputMeetingRoomEntity(context, result, out meetingRoomName))
                        {
                            //회의실정보를 입력하지 않았다...받아야 한다.
                            var availableMeetingRoom = string.Join(", ", roomNameList.ToArray());
                            await context.PostAsync($"사용가능한 회의실은 {availableMeetingRoom} 입니다. 어떤 회의실을 예약할까요?");

                            context.Wait(this.MessageReceivedAsync);
                        }
                        else if (roomNameList.Contains(meetingRoomName))
                        {
                            meetingRoom.MeetingRoomName = meetingRoomName;
                        }
                    }
                    else
                    {
                        meetingRoom.Hour = null;
                        await context.PostAsync("사용가능한 회의실이 없습니다. 다른 시간을 입력해주세요.");

                        context.Wait(this.MessageReceivedAsync);
                    }
                }

                //회의실정보 있나 확인
                if (meetingRoom.Hour != null && meetingRoom.MeetingRoomName != null)
                {
                    //회의실 예약
                    ReservationManagement management = new ReservationManagement();
                    management.SaveMeetingRoom(meetingRoom.Hour, meetingRoom.MeetingRoomName);
                    await context.PostAsync($"{meetingRoom.MeetingRoomName} 회의실 {meetingRoom.Hour}에 예약 되었습니다.");

                    context.Done <object>(meetingRoom);
                }
            }
        }
Exemplo n.º 13
0
        public static void UpdateRental()
        {
            //  Reservation reservation = GetReservation();


            Console.WriteLine("Please enter a reservationID");
            var reservationID = ValidateUserInput.ValidateInputInt(Console.ReadLine());

            using (var db = new RentCDb())
            {
                while (!db.Reservations.Any(r => r.ReservationID == reservationID))
                {
                    Console.WriteLine("Please enter a valid reservationID");
                    reservationID = ValidateUserInput.ValidateInputInt(Console.ReadLine());
                }
                var reservation = db.Reservations.Find(reservationID);
                ReservationManagement.DisplayReservationInfo(reservation);

Options:
                var ans = UpdateCarRentalOptions();

                switch (ans)
                {
                case "1":
                    Console.WriteLine("Please enter a new car Plate");
                    var carPlate = Console.ReadLine();
                    var carID    = ReservationManagement.ValidateCar(carPlate);
                    reservation.CarID = carID;
                    db.SaveChanges();
                    break;

                case "2":
                    Console.WriteLine("Please enter a Client ID:");
                    var clientID = ReservationManagement.ValidateClient
                                       (ValidateUserInput.ValidateInputInt(Console.ReadLine()));
                    reservation.CostumerID = clientID;
                    db.SaveChanges();
                    break;

                case "3":
                    Console.WriteLine("Please enter Start Date (mm.dd.yyy):");
                    var enteredStartDate = ValidateUserInput.ValidateInputDate(Console.ReadLine());
                    var validStartDate   = ReservationManagement.ValidateDates(enteredStartDate, reservation.EndDate).Item1;
                    reservation.StartDate = validStartDate;
                    db.SaveChanges();
                    break;

                case "4":
                    Console.WriteLine("Please enter End Date (mm.dd.yyy):");
                    var enteredEndDate = ValidateUserInput.ValidateInputDate(Console.ReadLine());
                    var validEndDate   = ReservationManagement.ValidateDates(reservation.StartDate, enteredEndDate).Item2;
                    reservation.EndDate = validEndDate;
                    db.SaveChanges();
                    break;

                case "5":
                    Console.WriteLine("Please enter a new location: ");
                    var enteredLocation = Console.ReadLine();
                    var newLocation     = ReservationManagement.ValidateCarLocation(reservation.CarID, enteredLocation);
                    reservation.LocationID = newLocation;
                    db.SaveChanges();
                    break;

                default:
                    Console.WriteLine("Option not available");
                    goto Options;
                }

                Console.WriteLine("New Reservation Data:");
                ReservationManagement.DisplayReservationInfo(reservation);
                Console.WriteLine("Would you like to modify something else? \n" +
                                  "If yes, type YES if no type NO to go back to main menu");
                ans = Console.ReadLine();
                if (ans.ToUpper() == "NO")
                {
                    MenuPage.SelectOption();
                }
                else if (ans.ToUpper() == "YES")
                {
                    goto Options;
                }


                db.SaveChanges();
            }
        }
Exemplo n.º 14
0
 public ReservationController()
 {
     reservationManagement = new ReservationManagement();
 }