예제 #1
0
        public async Task <string> ToUrlParamsString()
        {
            var urlParams = new Dictionary <string, string>();

            urlParams.Add("cityCode", CityCode);
            urlParams.Add("radius", Radius.ToString());
            urlParams.Add("radiusUnit", RadiusUnit.ToString());
            urlParams.Add("checkInDate", CheckInDate.ToString("yyyy-MM-dd"));
            urlParams.Add("checkOutDate", CheckOutDate.ToString("yyyy-MM-dd"));
            urlParams.Add("adults", Adults.ToString());
            urlParams.Add("includeClosed", IncludeClosed.ToString().ToLower());
            urlParams.Add("bestRateOnly", BestRateOnly.ToString().ToLower());
            urlParams.Add("sort", Sort.ToString().ToUpper());

            using (HttpContent content = new FormUrlEncodedContent(urlParams))
                return(await content.ReadAsStringAsync());
        }
    public NameValueCollection GetQueryParameters(bool addFilterParameters)
    {
        var parameters = new NameValueCollection();

        parameters["location"] = Metro_Area.ID.ToString();
        parameters["checkin"]  = CheckInDate.ToString("M-d-yyyy");
        parameters["checkout"] = CheckOutDate.ToString("M-d-yyyy");
        parameters["rooms"]    = RoomsCount.ToString();
        parameters["adults"]   = AdultsCount.ToString();
        parameters["children"] = ChildrenCount.ToString();
        if (Hotel != null)
        {
            parameters["hotelID"] = Hotel.ID.ToString();
        }
        if (Room != null)
        {
            parameters["roomID"] = Room.ID.ToString();
        }
        if (addFilterParameters)
        {
            if (!string.IsNullOrEmpty(FilterCustomerRating))
            {
                parameters["custrating"] = FilterCustomerRating;
            }
            if (!string.IsNullOrEmpty(FilterLocationRating))
            {
                parameters["locrating"] = FilterLocationRating;
            }
            if (!string.IsNullOrEmpty(FilterMaxPrice))
            {
                parameters["maxprice"] = FilterMaxPrice;
            }
            if (!string.IsNullOrEmpty(FilterMinPrice))
            {
                parameters["minprice"] = FilterMinPrice;
            }
            if (!string.IsNullOrEmpty(FilterOurRating))
            {
                parameters["ourrating"] = FilterOurRating;
            }
        }
        return(parameters);
    }
예제 #3
0
 public override string ToString()
 {
     return($"Reservation for:{ClientId} at Hotel:{HotelName} (id:{HotelId}), RoomNumber:{RoomNumber} for check-in date:{CheckInDate.ToString("d")} and check-out date:{CheckOutDate.ToString("d")}");
 }
예제 #4
0
        public async Task <IActionResult> OnGetAsync(int accommodationId, string checkInDate, string checkOutDate)
        {
            if (accommodationId == 0)
            {
                return(BadRequest());
            }

            if (User.Identity.IsAuthenticated)
            {
                CurrentUser = await userManager.FindByEmailAsync(User.Identity.Name);
            }

            AccommodationId = accommodationId;
            Accommodation   = await AccommodationLogic.GetAccommodationByIdAsync(accommodationId);

            if (Accommodation == null)
            {
                return(NotFound());
            }

            CheckInDateString  = checkInDate;
            CheckOutDateString = checkOutDate;
            var dateformat = "dd.MM.yyyy.";

            var listOfDatesOccupied = await AccommodationLogic.GetDatesOccupiedForAccommodationAsync(accommodationId);

            try
            {
                CheckInDate  = DateTime.ParseExact(checkInDate, dateformat, CultureInfo.InvariantCulture);
                CheckOutDate = DateTime.ParseExact(checkOutDate, dateformat, CultureInfo.InvariantCulture);

                if (CheckInDate < DateTime.Now.Date || CheckOutDate < DateTime.Now.AddDays(1).Date ||
                    CheckInDate >= CheckOutDate)
                {
                    throw new Exception("Invalid dates!");
                }

                if (!await AccommodationLogic.CheckIfBookingDatesAreValid(CheckInDate, CheckOutDate, accommodationId))
                {
                    throw new Exception("Dates are occupied!");
                }
            }
            catch
            {
                CheckInDate  = DateTime.Now.Date;
                CheckOutDate = DateTime.Now.Date;

                CheckInDateString  = CheckInDate.ToString(dateformat);
                CheckOutDateString = CheckOutDate.ToString(dateformat);
            }


            DatesOccupiedArray = listOfDatesOccupied.ToArray();

            var accommodationPhotosFolder = AccommodationLogic.GetPhotosFolderPathForAccommodation(Accommodation);

            HeaderPhotoPath = accommodationPhotosFolder + "Header/" + Accommodation.HeaderPhotoFileName;

            //removing wwwroot prefix
            HeaderPhotoPath = HeaderPhotoPath.Substring(7);


            try
            {
                AccommodationPhotos = Directory.GetFiles(accommodationPhotosFolder, "*", SearchOption.TopDirectoryOnly).ToList();
            }
            catch (Exception)
            {
                AccommodationPhotos = new List <string>();
            }

            return(Page());
        }
예제 #5
0
 public override string ToString()
 {
     return($"{CheckInDate.ToString("dd'/'MM'/'yyyy")} to {CheckOutDate.ToString("dd'/'MM'/'yyyy")}");
 }