public AvailabilityResponse ProcessAvailability(HotelAvailabilityResponse response)
        {
            var result = new AvailabilityResponse();

            result.CheckIn  = response.CheckIn;
            result.CheckOut = response.CheckOut;
            var availableHotels = new List <AvailableHotel>();

            foreach (var hotels in response.AvailableHotels)
            {
                var hotel = new AvailableHotel();

                hotel.Code = hotels.Code;

                var rooms = new List <AvailableRoom>();
                foreach (var room in hotels.AvailableRooms)
                {
                    var data = new AvailableRoom();
                    data.Id       = room.Id;
                    data.Code     = room.Code;
                    data.Price    = room.Price;
                    data.NewPrice = _pricingService.CalculatePrice(response.CheckIn, response.CheckOut, room.Price);
                    rooms.Add(data);
                }
                hotel.AvailableRooms = rooms;

                availableHotels.Add(hotel);
            }

            result.AvailableHotels = availableHotels;


            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This gives search results
        /// </summary>
        /// <returns></returns>
        public JsonResult GetRooms(BookingDetails bookingDetails)
        {
            // BookingDetails bookingDetails = new BookingDetails { CityId = 1, GuestId = "1", CheckinDate = "6/5/2013", CheckoutDate = "6/12/2013", NumberOfAdults = 2 };

            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
            SqlCommand    cmd  = new SqlCommand("sp_get_availability", conn);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@BranchID", bookingDetails.CityId);
            cmd.Parameters.AddWithValue("@FromDate", bookingDetails.CheckinDate);
            cmd.Parameters.AddWithValue("@ToDate", bookingDetails.CheckoutDate);
            cmd.Parameters.AddWithValue("@IncludePartner", 0);
            SqlParameter param = new SqlParameter("@RtnValue", SqlDbType.Int);

            param.Direction = ParameterDirection.ReturnValue;
            cmd.Parameters.Add(param);


            SqlDataAdapter adpter  = new SqlDataAdapter(cmd);
            DataSet        dataSet = new DataSet();

            adpter.Fill(dataSet);

            if ((int)cmd.Parameters["@RtnValue"].Value != 0)
            {
                return(null);
            }

            if (dataSet == null || dataSet.Tables == null || dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows == null || dataSet.Tables[0].Rows.Count == 0)
            {
                return(null);
            }

            var availableRooms = new List <AvailableRoom>();

            foreach (DataRow dataRow in dataSet.Tables[0].Rows)
            {
                AvailableRoom availableRoom = new AvailableRoom();
                availableRoom.Id          = dataRow["RoomTypeID"].ToString();
                availableRoom.Name        = dataRow["TypeName"].ToString();
                availableRoom.Description = dataRow["facilities"].ToString();
                availableRooms.Add(availableRoom);
            }

            return(Json(availableRooms, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        public IActionResult CreateNewRoom(RoomViewModel roominfo)
        {
            Room room = new Room();

            room.RoomName     = roominfo.roomnameVM;
            room.RoomCapacity = roominfo.roomcapacityVM;
            dbc.Room.Add(room);
            dbc.SaveChanges();
            ModelState.Clear();
            var           availableroom = dbc.Room.LastOrDefault();
            AvailableRoom available     = new AvailableRoom();

            available.RoomID    = availableroom.RoomID;
            available.RoomName  = availableroom.RoomName;
            available.Available = availableroom.RoomCapacity;
            dbc.AvailableRoom.Add(available);
            dbc.SaveChanges();
            return(RedirectToAction("RoomList"));
        }
Ejemplo n.º 4
0
        public override async Task ListRooms(ListRoomsRequest request, IServerStreamWriter <AvailableRoom> responseStream, ServerCallContext context)
        {
            if (_chatRooms.IsEmpty)
            {
                //await responseStream.WriteAsync(new AvailableRoom());
                return;
            }
            var keys = _chatRooms.Keys;

            for (int i = 0; i < keys.Count; i++)
            {
                var item         = new AvailableRoom();
                var room         = keys.ElementAt(i);
                var participants = _chatRooms[room];
                item.RoomName     = room.Name;
                item.Participants = String.Join(",", participants.Take(5));

                //send them slowly, theres no need to rush this, after all
                //the concurrent dictionary is subject to locks
                await responseStream.WriteAsync(item);
            }
        }
Ejemplo n.º 5
0
        private void AddRow(int rowHeight, AvailableRoom room)
        {
            Button connectButton = new Button()
            {
                Content             = room.Name,
                Width               = 100,
                Height              = rowHeight,
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Margin              = new Thickness(0, currentHeight, 0, 0)
            };

            connectButton.Click += delegate { JoinRoomCommand(room); };
            AddElement(connectButton);

            Label infoLabel = new Label()
            {
                Content             = string.Format("{0}/{1}", room.UserCount, room.MaxUsers),
                Width               = 100,
                Height              = rowHeight,
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Margin              = new Thickness(100, currentHeight, 0, 0)
            };

            AddElement(infoLabel);

            infoLabel = new Label()
            {
                Content             = room.RequiresPassword ? "Requires Password" : "No Password",
                Width               = 125,
                Height              = rowHeight,
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Margin              = new Thickness(200, currentHeight, 0, 0)
            };
            AddElement(infoLabel);
        }
Ejemplo n.º 6
0
        public void Add(int confId, string roomName, int capacity, string street, string city, string postalCode, DateTime beginDate, DateTime endDate)
        {
            AvailableRoom ar = new AvailableRoom();

            ar.ConferenceId = confId;
            ar.RoomName     = roomName;
            ar.Capacity     = capacity;
            ar.BeginDate    = beginDate;
            ar.EndDate      = endDate;

            int aId = -1;

            foreach (Address a in _context.Addresses)
            {
                if (a.City == city && a.Street == street && a.PostalCode == postalCode)
                {
                    aId = a.AddressId;
                    break;
                }
            }

            if (aId == -1)
            {
                Address a = new Address();
                a.City       = city;
                a.Street     = street;
                a.PostalCode = postalCode;
                _context.Addresses.Add(a);
                _context.SaveChanges();
                aId = a.AddressId;
            }

            ar.AddressId = aId;
            _context.AvailableRooms.Add(ar);
            _context.SaveChanges();
        }