コード例 #1
0
 private void DuaDataBookRoomVaoTextBox(BookRoom bRoom)
 {
     dTimeNgayDat.Value  = bRoom.dateBooking;
     dTimeNgayNhan.Value = bRoom.Checkin_Date;
     dTimeNgayTra.Value  = bRoom.Checkout_Date;
     txtSoNguoi.Text     = bRoom.peopleCount.ToString();
 }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("BookRoomId,Name,FromDate,NumberPeople,TelePhone,Address")] BookRoom bookRoom)
        {
            if (id != bookRoom.BookRoomId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bookRoom);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BookRoomExists(bookRoom.BookRoomId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(bookRoom));
        }
コード例 #3
0
        public IActionResult Index(BookRoom confirmBooking, String btnbookroom)
        {
            var   roomName   = _motelContext.RoomTypes.Where(p => p.RoomName == btnbookroom).Select(p => p.RoomName).FirstOrDefault();
            var   roomTypeID = _motelContext.RoomTypes.Where(p => p.RoomName == roomName).Select(x => x.ID).FirstOrDefault();
            var   guestID    = _motelContext.Guests.Where(p => p.FirstName == confirmBooking.firstName && p.LastName == confirmBooking.lastName).Select(x => x.ID).FirstOrDefault();
            var   locationID = 1;
            Guest g          = new Guest()
            {
                FirstName   = confirmBooking.firstName,
                LastName    = confirmBooking.lastName,
                Address     = confirmBooking.address,
                PhoneNumber = confirmBooking.phoneno,
                ZipCode     = confirmBooking.zipcode
            };

            RoomReservation confirmRoomReservation = new RoomReservation()
            {
                RoomTypeID        = roomTypeID,
                GuestID           = g.ID,
                checkIn           = confirmBooking.checkinDate,
                checkOut          = confirmBooking.checkoutDate,
                MotelPropertiesID = locationID
            };

            confirmRoomReservation.Guest = g;
            _motelContext.RoomReservations.Add(confirmRoomReservation);


            //_motelContext.Entry(confirmRoomReservation).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            _motelContext.SaveChanges();

            ViewData["ReservationID"] = confirmRoomReservation.ID;

            return(View(confirmRoomReservation));
        }
コード例 #4
0
        public async Task <IActionResult> BookRoom(BookRoom bookRoom)
        {
            // prepare the parameters to be inserted into the query
            var IDA           = new SqliteParameter("ida", bookRoom.RoomID);
            var usercheckinA  = new SqliteParameter("checkinA", bookRoom.userCheckIn);
            var usercheckoutA = new SqliteParameter("checkoutA", bookRoom.userCheckOut);

            var selectedRoom = _context.Booking.FromSql("select * from [Booking] where [Booking].RoomID=@ida in"
                                                        + "(select [Room].ID from [Room] inner join [Booking] on [Booking].RoomID = [Room].ID"
                                                        + " where  [Booking].CheckIN < @checkoutA and [Booking].CheckOut >@checkinA )", IDA, usercheckinA, usercheckoutA)
                               .Select(b => new Booking {
                RoomID = b.ID, CustomerEmail = b.CustomerEmail, CheckIn = b.CheckIn, CheckOut = b.CheckOut, Cost = b.Cost
            });

            // ViewBag.RowsAffected = await _context.Database.ExecuteSqlCommandAsync("UPDATE RoomID, CustomerEmail, CheckIn, CheckOut, Cost");

            // Run the query and save the results in ViewBag for passing to view
            ViewBag.SelectedRooms = await selectedRoom.ToListAsync();

            await _context.SaveChangesAsync();

            // Save the options for both dropdown lists in ViewBag for passing to view
            ViewBag.BookingList = new SelectList(_context.Room, "ID", "ID");
            // invoke the view with the ViewModel object
            return(View(bookRoom));
        }
コード例 #5
0
        private void dataToTextBox(BookRoom br)
        {
            //lấy thông tin bookroom
            txtBookRoom.Text    = br.id_BookRoom;
            txtCMND.Text        = br.id_Customer;
            txtCountKH.Text     = br.peopleCount.ToString();
            dTimeNgayNhan.Value = br.Checkin_Date;
            dTimeNgayTra.Value  = br.Checkout_Date;
            dTimeDatPhong.Value = br.dateBooking;

            //Lấy thông tin khách đặt phòng
            foreach (Customer item in c.getListCustomer())
            {
                if (br.id_Customer.Equals(item.id_Customer))
                {
                    txtHoTen.Text       = item.name;
                    txtDiaChi.Text      = item.address;
                    txtSoDienThoai.Text = item.phone;
                    dTimeNgaySinh.Value = item.birthday;
                    cboGioiTinh.Text    = item.sex;
                }
            }

            //lấy thông tên phòng
            foreach (Room i in r.getListRoom())
            {
                if (br.id_Room.Equals(i.id_Room))
                {
                    txtPhong.Text     = i.RoomNumber;
                    cboLoaiPhong.Text = i.id_RoomStyle;
                }
            }
        }
コード例 #6
0
 public ActionResult SendMail(BookRoom model)
 {
     if (ModelState.IsValid)
     {
         #region Gửi mail cho nhóm hỗ trợ
         // Dùng cho người quản lý mail Book từ khách hàng (Admin)
         List <ReceiverEmail> listReceiverEmailSupport = new List <ReceiverEmail>();
         listReceiverEmailSupport.Add(new ReceiverEmail {
             ReceiverEmailAddress = "*****@*****.**", ReceiverFullName = "Nhân Nguyễn"
         });
         string bodySupport = "<section bgcolor=\"#fff\" class=\"form-email-booking\" >  <table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"container-for-gmail-android\" width=\"100%\" style=\"border-collapse: collapse !important; min-width: 290px !important; width: 100% !important;\">   <tbody><tr>    <td align=\"left\" valign=\"top\" width=\"100%\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background-color: #333;\" bgcolor=\"#333\">     <center>      <table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" bgcolor=\"#ffffff\" style=\"border-collapse: collapse !important;\">       <tbody><tr>        <td width=\"100%\" height=\"80\" valign=\"top\" style=\"text-align: center; vertical-align: middle; border-collapse: collapse; font-size: 14px; color: #777777; line-height: 21px; background-color: #333;\" align=\"center\" bgcolor=\"#333\">         <center>          <table cellpadding=\"0\" cellspacing=\"0\" width=\"600\" class=\"w320\" style=\"border-collapse: collapse !important; width: 320px !important;\">           <tbody><tr>            <td class=\"mobile-header-padding-left\" style=\"vertical-align: middle; border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 160px !important; padding: 15px 0;\" align=\"center\" valign=\"middle\">             <a href=\"http://youandweresort.naansolution.net/\"><img src=\"http://youandweresort.naansolution.net/Images/logoYouAndWeResort%20copy.png\" alt=\"logo\" style=\"max-width: 28%; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; border: none;\"></a>            </td>           </tr>          </tbody></table>         </center>        </td>       </tr>      </tbody></table>     </center>    </td>   </tr>   <tr>    <td align=\"center\" valign=\"top\" width=\"100%\" style=\"font-size: 16px;/* text-transform: uppercase; */letter-spacing: -1px;color: rgba(51, 51, 51, 0.64);border-collapse: collapse;text-align: center;line-height: 21px;background-color: #f7f7f7;padding: 5px 0;\" class=\"content-padding\" bgcolor=\"#f7f7f7\">     <center>      <table cellspacing=\"0\" cellpadding=\"0\" width=\"600\" class=\"w320\" style=\"border-collapse: collapse !important;width: 600px !important;\">       <tbody><tr>        <td class=\"header-lg\" style=\"border-collapse: collapse; font-size: 24px !important; color: #4d4d4d; text-align: center; line-height: normal; font-weight: 700; padding: 35px 0 5px;font-family: 'Open Sans', sans-serif !important;\" align=\"center\">         Xin chào , Admin !!!        </td>       </tr>       <tr>        <td class=\"free-text\" style=\"border-collapse: collapse; font-size: 15px; color: black; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 18px 30px;\" align=\"center\">         Bạn vừa nhận được thông tin đặt phòng từ khách hàng " + model.FullName + "   </td>       </tr>       <tr>        <td class=\"w320\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px;\" align=\"center\">         <table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse: collapse !important;\">          <tbody><tr>           <td class=\"mini-container-left\" style=\"border-collapse: collapse;font-size: 14px;color: #777777;text-align: center;line-height: 21px;width: 278px !important;/* display: block !important; */padding: 0 15px 10px 0;\" align=\"center\">            <table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse: collapse !important;\">             <tbody><tr>              <td class=\"mini-block-padding\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px;\" align=\"center\">               <h5 style=\"font-size: 16px; text-transform: uppercase; letter-spacing: -1px; color: rgba(51, 51, 51, 0.64);\">Thông tin phòng</h5>               <table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" style=\"border-collapse: separate !important;\">                <tbody><tr>                 <td class=\"mini-block\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: left; line-height: 21px; border-radius: 1px; width: 253px; background-color: #ffffff; padding: 12px 15px 15px; border: 1px solid #ececec;\" align=\"left\" bgcolor=\"#ffffff\">                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Ngày đến</span><br>                  <p style=\"margin: 5px 0;\">" + model.ArrivalDate + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Ngày đi</span><br>                  <p style=\"margin: 5px 0;\">" + model.DepartureDate + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Đêm</span><br>                  <p style=\"margin: 5px 0;\">" + model.Nights + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px;font-weight: 700;line-height: 1.7;color: #4d4d4d;/* text-transform: capitalize; */padding: 5px 0;\">Loại phòng</span><br>                  <p style=\"margin: 5px 0;\">" + model.Rooms + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Số lượng phòng</span><br>                  <p style=\"margin: 5px 0;\">" + model.QuantityRooms + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Người lớn</span><br>                  <p style=\"margin: 5px 0;\">" + model.Adults + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Trẻ em</span><br>                  <p style=\"margin: 5px 0;\">" + model.Children + "</p>                 </td>                </tr>               </tbody></table>              </td>             </tr>            </tbody></table>           </td>           <td class=\"mini-container-right\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 290px !important; display: block !important; padding: 0 15px 15px;\" align=\"center\">            <table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse: collapse !important;\">             <tbody><tr>              <td class=\"mini-block-padding\" style=\"border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px;\" align=\"center\">               <h5 style=\"font-size: 16px; text-transform: uppercase; letter-spacing: -1px; color: rgba(51, 51, 51, 0.64);\">Thông tin khách hàng</h5>               <table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" style=\"border-collapse: separate !important;\">                <tbody><tr>                 <td class=\"mini-block\" style=\"border-collapse: collapse;font-size: 14px;color: #777777;text-align: left;line-height: 21px;border-radius: 1px;width: 253px;background-color: #ffffff;padding: 12px 15px 15px;border: 1px solid #ececec;\" align=\"left\" bgcolor=\"#ffffff\">                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Họ và tên</span><br>                  <p style=\"margin: 5px 0;\">" + model.FullName + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Email</span><br>                  <p style=\"margin: 5px 0;\">" + model.Email + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Địa chỉ</span><br>                  <p style=\"margin: 5px 0;\">" + model.Address + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Số điện thoại</span><br>                  <p style=\"margin: 5px 0;\">" + model.Phone + "</p>                  <span class=\"header-sm\" style=\"font-size: 16px; font-weight: 700; line-height: 1.7; color: #4d4d4d; text-transform: capitalize; padding: 5px 0;\">Yêu cầu từ khách hàng</span><br>                  <p style=\"margin: 5px 0;\">" + model.Messages + "</p>                  <span class=\"header-sm\" style=\"color: #fff; font-size: 16px; font-weight: 700; line-height: 1.7; text-transform: capitalize; padding: 5px 0;\">----------</span><br>                  <p style=\"color: #fff; margin: 5px 0;\">/-----/</p>                  <span class=\"header-sm\" style=\"color: #fff; font-size: 16px; font-weight: 700; line-height: 1.7; text-transform: capitalize; padding: 5px 0;\">----------</span><br>                  <p style=\"color: #fff; margin: 5px 0;\">/-----/</p>                 </td>                </tr>               </tbody></table>              </td>             </tr>            </tbody></table>           </td>          </tr>         </tbody></table>        </td>       </tr>      </tbody></table>     </center>    </td>   </tr>   <tr>    <td align=\"center\" valign=\"top\" width=\"100%\" style=\"height: 100px; border-collapse: collapse; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background-color: #fff;\" bgcolor=\"#fff\">     <center>      <table cellspacing=\"0\" cellpadding=\"0\" width=\"600\" class=\"w320\" style=\"border-collapse: collapse !important; width: 320px !important;\">       <tbody><tr>        <td style=\"text-align: center; border-collapse: collapse; font-size: 14px; color: #777777; line-height: 21px; padding: 34px 0 0;\" align=\"center\">         <strong>YOU &amp; WE RESORT</strong><br>         Phu Quoc Resort<br>         All rights reserved<br><br>        </td>       </tr>      </tbody></table>     </center>    </td>   </tr>  </tbody></table> </section>";
         SendEmail.BookRoomYAW("Nhân Nguyễn", "*****@*****.**", listReceiverEmailSupport, "Mail Booking", bodySupport);
         #endregion
         #region Gửi mail cho khách hàng
         // Dùng cho khách hàng
         List <ReceiverEmail> listReceiverEmailCustomer = new List <ReceiverEmail>();
         listReceiverEmailCustomer.Add(new ReceiverEmail {
             ReceiverEmailAddress = model.Email, ReceiverFullName = model.FullName
         });
         string bodyCustomer = "Dear Ms/Mr " + model.FullName + ", <br />" + "Thank you for your booking. We would get in touch with you within 8 working hours. If you need urgent assistance, we are ready to assist at: +84 (0) 77 6257979. This is an automatic email, please do not reply to this email. <br />Regards,<br />You & We Resort ";
         SendEmail.BookRoomYAW("Robot Booking", "*****@*****.**", listReceiverEmailCustomer, "Mail tự động", bodyCustomer);
         #endregion
     }
     Response.StatusCode = (int)HttpStatusCode.OK;
     return(Content("Mail sended."));
 }
コード例 #7
0
 public int insertBookRoom(BookRoom b)
 {
     using (System.Data.Common.DbTransaction br = dt.Connection.BeginTransaction())
     {
         try
         {
             dt.Transaction = br;
             if (CheckExist(b.id_BookRoom) != null)
             {
                 return(0);
             }
             else
             {
                 dt.BookRooms.InsertOnSubmit(b);
                 dt.SubmitChanges();
                 dt.Transaction.Commit();
                 return(1);
             }
         }
         catch (Exception e)
         {
             dt.Transaction.Rollback();
             throw new Exception("Lỗi không thêm được" + e.Message);
         }
     }
 }
コード例 #8
0
        public bool FixBookRoom(BookRoom br)
        {
            using (System.Data.Common.DbTransaction fixBookRoom = dt.Connection.BeginTransaction())
            {
                try
                {
                    dt.Transaction = fixBookRoom;
                    IEnumerable <BookRoom> fix = from i in dt.BookRooms
                                                 where i.id_BookRoom == br.id_BookRoom
                                                 select i;
                    fix.First().peopleCount   = br.peopleCount;
                    fix.First().dateBooking   = br.dateBooking;
                    fix.First().Checkin_Date  = br.Checkin_Date;
                    fix.First().Checkout_Date = br.Checkout_Date;
                    fix.First().id_Customer   = br.id_Customer;
                    fix.First().id_Room       = br.id_Room;

                    dt.SubmitChanges();
                    dt.Transaction.Commit();
                    return(true);
                }
                catch (Exception)
                {
                    dt.Transaction.Rollback();
                    throw new Exception("Lỗi không sữa được");
                }
            }
        }
コード例 #9
0
        public void EmpAcceptBooking(int id, BookMv book)
        {
            try
            {
                //accept guest
                var guest = _unitOfWork.Guests.GetByID(_unitOfWork.Bookings.GetByID(book.Id).GuestId);

                guest.IdentityNo = book.IdentityNo;
                guest.Email      = book.Email;
                guest.LastName   = book.LastName;
                guest.FirstName  = book.FirstName;
                guest.Phone      = book.Phone;


                _unitOfWork.Guests.Update(guest);
                _unitOfWork.Commit();

                //acceptBooking
                var booking = _unitOfWork.Bookings.GetByID(book.Id);
                booking.CheckOut     = book.CheckOut;
                booking.CheckIn      = book.CheckIn;
                booking.DurationStay = (int)(book.CheckOut - book.CheckIn).TotalDays;
                booking.Status       = BookedStatus.booked;
                var amountMoney = 0;

                foreach (var item in book.ListRoomIds)
                {
                    var money = _unitOfWork.CategoryRooms
                                .GetByID(_unitOfWork.Rooms.GetByID(item).CategoryRoomId)
                                .Price;
                    var durationDay = booking.DurationStay;

                    var totalMoney = durationDay * money;
                    amountMoney += (int)totalMoney;
                }

                booking.Amount = amountMoney;

                _unitOfWork.Bookings.Update(booking);
                _unitOfWork.Commit();
                //create booking room
                foreach (var item in book.ListRoomIds)
                {
                    var bookRoom = new BookRoom()
                    {
                        BookingId = book.Id,
                        RoomId    = item
                    };
                    _unitOfWork.BookRooms.Insert(bookRoom);
                    _unitOfWork.Commit();
                }
                new OrderDao(_unitOfWork, _mapper).CreateOrder(booking.Id);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
コード例 #10
0
        public ActionResult InsertCMND(InsertCMND ir)
        {
            try
            {
                if (ModelState.IsValid && TempData != null)
                {
                    BookRoom date = SessionHelper.GetDateSession();
                    TempData["datein"]  = date.dateRent;
                    TempData["dateout"] = date.datePay;
                    List <Room> lstroom = SessionHelper.getBookrooms();
                    int         giatien = 0;
                    foreach (Room temp in lstroom)
                    {
                        giatien += temp.giatien * temp.soluong;
                    }
                    TempData["giatien"] = giatien;
                    String sql = "select * from KHACHHANG where CMND_PASSPORT='" + ir.idCard + "'";
                    if (DataUtil.ExecQueryString(sql))
                    {
                        BookRoom br = new BookRoom();
                        br = SessionHelper.GetDateSession();
                        var dt = DataUtil.ExecSqlDataTable(sql, DataUtil.connstr);

                        if (dt.Rows.Count > 0)
                        {
                            DataRow  kh = dt.Rows[0];
                            RentInfo ri = new RentInfo();
                            ri.deposit    = (int)(giatien * 20 / 100);
                            ri.dateRent   = br.dateRent;
                            ri.datePay    = br.datePay;
                            ri.idCard     = kh[0].ToString();
                            ri.phone      = kh[3].ToString();
                            ri.email      = kh[6].ToString();
                            ri.nameClient = kh[1].ToString() + kh[2].ToString();
                            ri.birth      = kh[5].ToString();
                            return(View("CheckInfor", ri));
                        }
                        else
                        {
                            return(View("CheckInfor"));
                        }
                    }
                    else
                    {
                        return(View("CheckInfor"));
                    }
                }
                else
                {
                    return(View("InsertCMND"));
                }
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
コード例 #11
0
        // sự kiện chọn chuyển sang text box
        private void lvwDSDatPhong_SelectedIndexChanged(object sender, EventArgs e)
        {
            BookRoom br = null;

            if (lvwDSDatPhong.SelectedItems.Count > 0)
            {
                br = (BookRoom)lvwDSDatPhong.SelectedItems[0].Tag;
                dataToTextBox(br);
            }
        }
コード例 #12
0
        public async Task <IActionResult> Create([Bind("BookRoomId,Name,FromDate,NumberPeople,TelePhone,Address")] BookRoom bookRoom)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bookRoom);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(bookRoom));
        }
コード例 #13
0
ファイル: BookRoomBL.cs プロジェクト: QuangDoXuan/QLKS
        public string Create(BookRoom bookRoom)
        {
            if (bookRoom != null)
            {
                bookRoom.BookRoomID = Guid.NewGuid();
                db.BookRooms.Add(bookRoom);
                db.SaveChanges();

                return(bookRoom.BookRoomID.ToString());
            }
            return(null);
        }
コード例 #14
0
 public ActionResult Detail(int Id)
 {
     using (var db = new MyDbDataContext())
     {
         BookRoom detailBook = db.BookRooms.FirstOrDefault(a => a.ID == Id);
         if (detailBook == null)
         {
             return(RedirectToAction("Index"));
         }
         return(View("Detail", detailBook));
     }
 }
コード例 #15
0
    public async Task MapEnrichedCommand()
    {
        var store = new InMemoryEventStore();

        var app = new WebApplicationFactory <Program>()
                  .WithWebHostBuilder(
            builder => builder.ConfigureServices(services => services.AddAggregateStore(_ => store))
            );

        var httpClient = app.CreateClient();

        using var client = new RestClient(httpClient, disposeHttpClient: true).UseSerializer(
                  () => new SystemTextJsonSerializer(
                      new JsonSerializerOptions(JsonSerializerDefaults.Web).ConfigureForNodaTime(DateTimeZoneProviders.Tzdb)
                      )
                  );

        var cmd = new BookRoom(
            "123",
            "123",
            LocalDate.FromDateTime(DateTime.Now),
            LocalDate.FromDateTime(DateTime.Now.AddDays(1)),
            100
            );

        var response = await client.PostJsonAsync("/book", cmd);

        response.Should().Be(HttpStatusCode.OK);

        var storedEvents = await store.ReadEvents(
            StreamName.For <Booking>(cmd.BookingId),
            StreamReadPosition.Start,
            100,
            default
            );

        var actual = storedEvents.FirstOrDefault();

        actual.Should().NotBeNull();

        actual !.Payload.Should()
        .BeEquivalentTo(
            new BookingEvents.RoomBooked(
                cmd.BookingId,
                cmd.RoomId,
                cmd.CheckIn,
                cmd.CheckOut,
                cmd.Price,
                TestData.GuestId
                )
            );
    }
コード例 #16
0
        public async Task <IActionResult> BookRoom(BookRoom order)
        {
            if (ModelState.IsValid)
            {
                if (order.RoomNumber != null || order.Email != null)
                {
                    var checkIfRoomExist = _roomRepository.Find(x => x.RoomNumber == order.RoomNumber);
                    var customerbyId     = _customerRepository.Find(x => x.EmailAddress == order.Email);
                    if (checkIfRoomExist == null)
                    {
                        return(BadRequest(new { message = "the room with this room number doesn't exist" }));
                    }

                    var newOrder = new BookRoom()
                    {
                        RoomNumber   = order.RoomNumber,
                        CustomerName = order.CustomerName,
                        Email        = order.Email,
                        DateBooked   = DateTime.Now.ToLocalTime().ToShortDateString()
                    };

                    var updateRoom = await _roomRepository.GetRoomById(checkIfRoomExist.Id);

                    updateRoom.IsFree     = false;
                    updateRoom.DateBooked = DateTime.Now.ToLocalTime().ToShortDateString();
                    updateRoom.Occupancy  = true;

                    var customer = await _customerRepository.GetCustomerById(customerbyId.Id);

                    customer.IsCheckin = true;

                    _orderRepository.Create(newOrder);
                    await _orderRepository.Save();

                    var emailContent = new EmailModel()
                    {
                        To       = order.Email,
                        Email    = "*****@*****.**",
                        Password = "******",
                        Subject  = "Your Uploaded Files",
                        Body     = "Dear " + order.CustomerName + "\n\n\n  You are receiving this mail because you have just booked a room at our Hotel." +
                                   " \n\n " + "Email Address: " + order.Email + "\n" + "Room Number : " + order.RoomNumber + "\n" + "Check-in: " + customer.IsCheckin
                                   + "\n\n Regards. \n\n Adminstrator"
                    };
                    var send = _emailService.SendEmail(emailContent);

                    return(Ok(new { response = newOrder, updateRoom }));
                }
                return(BadRequest(new { message = "Error occurred, The information does not match" }));
            }
            return(BadRequest(new { message = "Please fill in required fields" }));
        }
コード例 #17
0
        public JsonResult Delete(int Id)
        {
            var      db  = new MyDbDataContext();
            BookRoom del = db.BookRooms.FirstOrDefault(a => a.ID == Id);

            if (del == null)
            {
                return(Json(new { Result = "ERROR", Message = "Đặt phòng không tồn tại." }));
            }
            db.BookRooms.DeleteOnSubmit(del);
            db.SubmitChanges();
            return(Json(new { Result = "OK", Message = "Xóa thành công." }));
        }
コード例 #18
0
 public ActionResult ReservationCustom(int?room)
 {
     if (room > 6)
     {
         return(RedirectToAction("Reservation"));
     }
     else
     {
         ViewBag.RoomCode = room;
         var model = new BookRoom();
         return(View(model));
     }
 }
コード例 #19
0
        public async Task <IActionResult> Create([FromBody] BookRoomViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();
                return(BadRequest(errors));
            }

            // add customer

            var foundCustomer = await _context.Customers.Where(item => item.Phone == model.Phone).FirstOrDefaultAsync();

            if (foundCustomer == null)
            {
                foundCustomer = new Customer
                {
                    Name      = model.FullName,
                    Phone     = model.Phone,
                    Email     = model.Email,
                    CreatedAt = DateTime.Now,
                    Avatar    = "/uploads/avatar-customer.jpg",
                    BookCount = 1
                };

                await _context.Customers.AddAsync(foundCustomer);

                await _context.SaveChangesAsync();
            }


            // add Book Room

            var bookRoom = new BookRoom
            {
                TypeRoomId     = model.TypeRoomId,
                CustomerId     = foundCustomer.Id,
                Status         = false,
                TimeBook       = (int)model.TimeBook,
                TimeCreated    = model.TimeCreated.HasValue ? model.TimeCreated.Value : DateTime.Now,
                CreatedAt      = DateTime.Now,
                BookRoomStatus = BookRoomStatus.Waiting
            };
            await _context.BookRooms.AddAsync(bookRoom);

            await _context.SaveChangesAsync();


            return(Ok(1));
        }
コード例 #20
0
        private ListViewItem createItem(BookRoom i)
        {
            ListViewItem item;

            item = new ListViewItem(i.id_BookRoom);
            item.SubItems.Add(i.peopleCount.ToString());
            item.SubItems.Add(i.dateBooking.ToString());
            item.SubItems.Add(i.Checkin_Date.ToString());
            item.SubItems.Add(i.Checkout_Date.ToString());
            item.SubItems.Add(i.id_Room);
            item.SubItems.Add(i.id_Customer);
            item.Tag = i;
            return(item);
        }
コード例 #21
0
        public static BookRoom GetDateSession()
        {
            var PickupDate = HttpContext.Current.Session["PickupDate"];
            var ReturnDate = HttpContext.Current.Session["ReturnDate"];

            if (PickupDate == null && ReturnDate == null)
            {
                return(null);
            }
            else
            {
                BookRoom r = new BookRoom();
                r.dateRent = (Convert.ToDateTime(PickupDate));
                r.datePay  = (Convert.ToDateTime(ReturnDate));
                return(r);
            }
        }
コード例 #22
0
        public ActionResult Confirm(RentInfo ren)
        {
            try
            {
                if (ModelState.IsValid && TempData != null)
                {
                    List <Room> lstroom = SessionHelper.getBookrooms();
                    if (DataUtil.addPhieuDat(ren, lstroom))
                    {
                        TempData["HomeIndexError"] = HomeIndexError.BookingRoomIsOk;
                        return(RedirectToAction("Index", "Home"));
                        // TempData["message"] = "Đặt phòng thành công.\nHãy liên hệ với khách sạn để xác nhận phiếu đặt và đóng phí đặt phòng!\n Thành thật cảm ơn";
                    }
                    else
                    {
                        TempData["HomeIndexError"] = HomeIndexError.BookingRoomIsFail;
                        return(RedirectToAction("Index", "Home"));
                        //TempData["message"] = "Đặt phòng thất bại , xin thử lại sau";
                    }

                    //return RedirectToAction("Index", "Home");
                }
                else
                {
                    //TempData["message"] = "Thông tin nhập vào không hợp lệ!";
                    //return RedirectToAction("Index", "Home");
                    BookRoom date = SessionHelper.GetDateSession();
                    TempData["datein"]  = date.dateRent;
                    TempData["dateout"] = date.datePay;
                    List <Room> lstroom = SessionHelper.getBookrooms();
                    int         giatien = 0;
                    foreach (Room temp in lstroom)
                    {
                        giatien += temp.giatien * temp.soluong;
                    }
                    TempData["giatien"] = giatien;
                    ModelState.AddModelError("", "Bạn chưa nhập đủ thông tin!");
                    return(View("CheckInfor"));
                }
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
コード例 #23
0
        // sữa đặt phòng
        private BookRoom SuaDatPhong()
        {
            string   room_number = txtPhong.Text;
            string   id_room     = r.GetRoomByNumberRoom(room_number).id_Room;
            BookRoom br;

            br = new BookRoom()
            {
                id_BookRoom   = txtBookRoom.Text,
                peopleCount   = Convert.ToInt32(txtCountKH.Text),
                dateBooking   = dTimeDatPhong.Value,
                Checkin_Date  = dTimeNgayNhan.Value,
                Checkout_Date = dTimeNgayTra.Value,
                id_Room       = id_room,
                id_Customer   = txtCMND.Text,
            };
            return(br);
        }
コード例 #24
0
        public IHttpActionResult Create([FromBody] BookRoom bookRoom)
        {
            HttpResponseDTO <string> response = new HttpResponseDTO <string>();

            try
            {
                response.code    = 0;
                response.message = Constanst.SUCCESS;
                response.data    = bookRoomBL.Create(bookRoom);
            }
            catch (Exception e)
            {
                response.code    = 500;
                response.message = Constanst.FAIL;
                response.data    = null;
            }
            return(Ok(response));
        }
コード例 #25
0
 public ActionResult Book(BookingModel model)
 {
     if (ModelState.IsValid)
     {
         var book = new BookRoom
         {
             Id         = Guid.NewGuid(),
             RoomNumber = model.RoomNumber,
             Name       = model.Name,
             Phone      = model.Phone,
             Email      = model.Email,
             BookTime   = DateTime.Now
         };
         BookingStartup.Dispatcher.SendCommand(book);
         return(RedirectToAction("Index"));
     }
     return(View(model));
 }
コード例 #26
0
        public async Task <IActionResult> updateBookRoom([FromForm] BookRoom model, int id)
        {
            var bookRoom = await _context.BookRooms.FindAsync(id);

            if (bookRoom != null)
            {
                if (ModelState.IsValid)
                {
                    bookRoom.RoomId         = model.RoomId;
                    bookRoom.Status         = true;
                    bookRoom.BookRoomStatus = BookRoomStatus.Booked;
                    await _context.SaveChangesAsync();


                    return(Redirect("/admin/room/book-room"));
                }
            }
            return(BadRequest("Không tồn tại bản ghi"));
        }
コード例 #27
0
        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            Room roomUp = ROOM.LayThongTinPhong(_idRoom);

            roomUp.Note = txtGhiChu.Text;
            var checkRoom = ROOM.CapNhatTinhTrangPhong(_idRoom, roomUp);

            BookRoom bRoomUp = BOOKR.GetThongTinBookRoom(_idRoom);

            bRoomUp.dateBooking   = dTimeNgayDat.Value;
            bRoomUp.Checkin_Date  = dTimeNgayNhan.Value;
            bRoomUp.Checkout_Date = dTimeNgayTra.Value;
            var checkBRoom = BOOKR.SuaThongTinBookRoomCuaKH(bRoomUp, _idCustomer);


            var    sl        = Convert.ToInt32(numUpDown.Value);
            string idService = listDSDichVu.SelectedValue.ToString();
            bool   checkBS   = false;

            if (BILLS.checkIfExist(idService, _idBRoom) == null)
            {
                Bill_Service bs = new Bill_Service();
                bs.id_BookRoom   = _idBRoom;
                bs.id_Service    = idService;
                bs.Service_Count = (int)numUpDown.Value;
                BILLS.insertBillService(bs);
                checkBS = true;
            }
            else
            {
                checkBS = BILLS.CapNhatSoLuong(_idBRoom, idService, sl);
                checkBS = true;
            }
            if (checkBRoom && checkRoom && checkBS)
            {
                MessageBox.Show("Cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Cập nhật không thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
コード例 #28
0
 public ActionResult RoomHasBeenOrdered(List <Room> model)
 {
     try
     {
         if (TempData != null)
         {
             BookRoom date = SessionHelper.GetDateSession();
             TempData["datein"]  = date.dateRent;
             TempData["dateout"] = date.datePay;
             List <Room> lst = new List <Room>();
             foreach (Room temp in model)
             {
                 if (temp.soluong > 0)
                 {
                     lst.Add(temp);
                 }
             }
             if (lst.Count > 0)
             {
                 TempData["ListHangPhong"] = lst;
                 SessionHelper.setBookrooms(lst);
                 return(View("Index"));
             }
             else
             {
                 TempData["HomeIndexError"] = HomeIndexError.NotSelectRoomYet;
                 return(RedirectToAction("Index", "Home"));
             }
         }
         else
         {
             TempData["HomeIndexError"] = HomeIndexError.NotSelectRoomYet;
             return(RedirectToAction("Index", "Home"));
         }
     }
     catch
     {
         TempData["HomeIndexError"] = HomeIndexError.NotSelectRoomYet;
         return(RedirectToAction("Index", "Home"));
     }
 }
コード例 #29
0
        private void btnNhanPhong_Click(object sender, EventArgs e)
        {
            clsRoom Room   = new clsRoom();
            Room    roomUp = Room.LayThongTinPhong(_idRoom);

            roomUp.Note = txtGhiChu.Text;
            Room.CapNhatTinhTrangPhong(_idRoom, roomUp);
            DuaDataRoomVaoTextBox(Room.LayThongTinPhong(_idRoom));

            clsBookRoom BookRoom = new clsBookRoom();
            BookRoom    bRoomUp  = BookRoom.GetThongTinBookRoom(_idRoom);

            bRoomUp.dateBooking  = dTimeNgayDat.Value;
            bRoomUp.Checkin_Date = dTimeNgayNhan.Value;
            BookRoom.SuaThongTinBookRoomCuaKH(bRoomUp, _idCustomer);

            clsHonLoan honLoan = new clsHonLoan();
            var        dsNP    = honLoan.GetDSNhanPhong();

            DuaDataVaoLvwDSNhanPhong(lvwDSNhanPhong, dsNP);
        }
コード例 #30
0
        private void btnDatPhong_Click_1(object sender, EventArgs e)
        {
            foreach (BookRoom item in b.getListBookRoom())
            {
                if (txtBookRoom.Text == item.id_BookRoom)
                {
                    MessageBox.Show("Trùng mã đặt phòng", "Thông báo");
                    return;
                }
            }
            foreach (var item in jBR.getNumberRoom())
            {
                if (txtPhong.Text.Equals(item.sophong))
                {
                    MessageBox.Show("Phòng đã có người đặt", "Thông báo");
                    return;
                }
            }

            foreach (var item in honLoan.GetKhachHangDatPhong())
            {
                if (txtCMND.Text.Equals(item.cmnd))
                {
                    MessageBox.Show("Khách hàng này đã đặt phòng", "Thông Báo");
                    return;
                }
            }

            BookRoom br       = createBookRoom();
            Customer customer = CreateCustomer();

            c.Insert(customer);
            b.insertBookRoom(br);
            IEnumerable <BookRoom> getBR = b.getListBookRoom();

            loadRoomListView(lvwDSDatPhong, getBR);
            RemoveElement();
            flowLayoutPanel1.Controls.Clear();
            TaoDayGhe(n);
        }