public ActionResult Create(HotelRequest model)
        {
            if (!ModelState.IsValid)
            {
                PrepareHotelList(null, 0, null, 0, 1, true);
                return(View(model));
            }

            generateService.AddHotel(
                new HotelDto {
                CreateorId   = UserInfo.Id,
                CreateorIp   = webHelper.GetCurrentIpAddress(),
                IsChain      = model.IsChain ? 1 : 0,
                IsDeleted    = 0,
                IsTop        = model.ParentId == 0 ? 1 : 0,
                ParentId     = model.ParentId,
                Registertime = DateTime.Now,
                HotelName    = model.HotelName,
                Expiretime   = model.Expiretime,
                Updatetime   = DateTime.Now,
                Createtime   = DateTime.Now
            });


            return(Redirect("/sys/OperationResult?returnurl=/hotel/Index"));
        }
        public async Task <IActionResult> SearchHotels(HotelRequest request)
        {
            var query  = new SearchHotelsQuery(request.HotelSearch);
            var result = await _mediatr.Send(query, new CancellationToken());

            return(result != null
                ? (IActionResult)Ok(result)
                : NotFound(new { Message = $"No hotels were found." }));
        }
        public async Task <Hotel> GetHotel(int id)
        {
            var request = new HotelRequest(Guid.NewGuid(), id);
            //ожидаем список тк у разных провайдеров может быть отели с одинаковым ид
            //(тк ид типа int, решит проблему использование Guid, но будет не удобно генерировать данные)
            //пока просто возьмем первый из списка
            //но нужно дополнительный параметр в виде провайдера или ид типа Guid
            List <Hotel> hotels = await DoRequest <List <Hotel> >(request);

            return(hotels.FirstOrDefault());
        }
示例#4
0
        public HotelOffers Post([FromBody] HotelRequest request)
        {
            //Sample partial Hotel Data

            HotelOffers hOffers = new HotelOffers();

            hOffers.Offers = new List <Hotel>();

            //-------------------------Hoteloffer1---------------------------
            var offer1 = new Hotel
            {
                name      = "Sofitel Washington",
                imagePath = "assets/hotel_sofitel.jpg",
                distance  = "2 miles",
                price     = "$200"
            };

            hOffers.Offers.Add(offer1);
            //---------------------------------------------------------------
            //-------------------------Hoteloffer2---------------------------
            var offer2 = new Hotel
            {
                name      = "Hilton Hotel",
                imagePath = "",
                distance  = "5 miles",
                price     = "$220"
            };

            hOffers.Offers.Add(offer2);
            //---------------------------------------------------------------
            //-------------------------Hoteloffer3---------------------------
            var offer3 = new Hotel
            {
                name      = "Mandarin Oriental",
                imagePath = "",
                distance  = "3 miles",
                price     = "$240"
            };

            hOffers.Offers.Add(offer3);
            //---------------------------------------------------------------
            //-------------------------Hoteloffer4---------------------------
            var offer4 = new Hotel
            {
                name      = "Willard InterContinental",
                imagePath = "",
                distance  = "5 miles",
                price     = "$300"
            };

            hOffers.Offers.Add(offer4);
            //---------------------------------------------------------------
            return(hOffers);
        }
示例#5
0
        public async Task <Hotel> GetHotelAsync(HotelRequest hotelRequest, CancellationToken cancellationToken)
        {
            var key = $"hotel_{hotelRequest.Id}";

            return(await _memoryCache.GetOrCreateAsync(key, entry =>
            {
                var hotel = Enumerable.Empty <Hotel>()
                            .Union(_tourRepository.Tours.Select(x => x.Hotel))
                            .Union(_otherTourRepository.Tours.Select(x => x.Hotel))
                            .FirstOrDefault(x => x.Id == hotelRequest.Id);
                entry.AbsoluteExpiration = DateTimeOffset.Now + TimeSpan.FromSeconds(CACHE_SECONDS);

                return Task.FromResult(hotel);
            }));
        }
示例#6
0
        private async Task ReceiveHotelRequest(HotelRequest request)
        {
            var hotel = await _dictionariesRepository.GetHotel(request.HotelId);

            _messageBusClient.SendMessage(new HotelResponse(request.RequestId, nameof(OtherSearchService))
            {
                Data = new List <Hotel> {
                    new Hotel
                    {
                        Id           = hotel.Id,
                        Name         = hotel.Name,
                        CityName     = hotel.City.Name,
                        Address      = hotel.Address,
                        BuildingYear = hotel.BuildingYear
                    }
                }
            });
        }
        public async Task WhenSearchAirlinesAndResultsReturned()
        {
            // Arrange
            var hotelRequest = new HotelRequest {
                HotelSearch = "Gavi"
            };

            // Act
            var response = await _httpClient.PostAsync("api/hotel",
                                                       new StringContent(JsonConvert.SerializeObject(hotelRequest),
                                                                         Encoding.UTF8,
                                                                         MediaTypeNames.Application.Json));

            var hotels = JsonConvert.DeserializeObject <List <HotelResponse> >(await response.Content.ReadAsStringAsync());

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            hotels.Should().HaveCountGreaterThan(1);
        }