Beispiel #1
0
        public async Task RefreshRainbowOffersAsync()
        {
            ResetHolidayOffers("r.pl");

            var    getResult    = client.GetStringAsync("https://last-minute-js-api.herokuapp.com/api/offers/refresh/r");
            string stringResult = await getResult;

            var deserializedClass = JsonConvert.DeserializeObject <RetrieveMultipleRainbowResponse>(stringResult);


            foreach (var offer in deserializedClass.Bloczki)
            {
                HolidayOffers holidayOffer = new HolidayOffers
                {
                    Website  = "r.pl",
                    Country  = offer.BazoweInformacje.Lokalizacje == null ? "null" : offer.BazoweInformacje.Lokalizacje,
                    Meal     = offer.Wyzywienia == null ? "brak" : offer.Wyzywienia[0].Nazwa,
                    Title    = offer.BazoweInformacje.OfertaNazwa == null ? "null" : offer.BazoweInformacje.OfertaNazwa,
                    Price    = offer.Ceny == null ? 0 : offer.Ceny[0].CenaZaOsobeAktualna,
                    Url      = offer.BazoweInformacje.OfertaURL == null ? "null" : $"https://www.r.pl{offer.BazoweInformacje.OfertaURL}",
                    Date     = offer.TerminWyjazdu == null ? "null" : offer.TerminWyjazdu.ToString(),
                    Duration = offer.Ceny?[0].LiczbaDni,
                    ImageUrl = offer.Zdjecia == null || offer.Zdjecia.Count == 0 ? "null" : offer.Zdjecia[0]
                };


                _offersRepo.CreateHolidayOffers(holidayOffer);
            }
        }
Beispiel #2
0
        public async Task RefreshItakaOffersAsync()
        {
            ResetHolidayOffers("itaka.pl");

            var    getResult    = client.GetStringAsync("https://www.itaka.pl/sipl/data/last-minute/search?view=offerList&language=pl&package-type=wczasy&promo=lastMinute&order=priceAsc&total-price=0&page=1&transport=flight&currency=PLN");
            string stringResult = await getResult;

            var deserializedClass = JsonConvert.DeserializeObject <RetrieveMultipleItakaResponse>(stringResult);


            foreach (var offer in deserializedClass.Data)
            {
                HolidayOffers holidayOffer = new HolidayOffers
                {
                    Website  = "itaka.pl",
                    Country  = StripHTML(offer.canonicalDestinationTitle.ToString()),
                    Meal     = offer.meal,
                    Title    = offer.title,
                    Price    = offer.price / 100,
                    Duration = offer.duration,
                    Url      = $"https://www.itaka.pl{offer.url}",
                    Date     = $"{offer.dateFrom} - {offer.dateTo}",
                    ImageUrl = offer.photos.tiny
                };


                _offersRepo.CreateHolidayOffers(holidayOffer);
            }
        }
Beispiel #3
0
        public async Task RefreshWakacjeOffersAsync()
        {
            ResetHolidayOffers("wakacje.pl");
            var    getResult    = client.GetStringAsync("https://last-minute-js-api.herokuapp.com/api/offers/refresh/wakacje");
            string stringResult = await getResult;

            var deserializedClass = JsonConvert.DeserializeObject <RetrieveMultipleWakacjeResponse>(stringResult);

            foreach (var offer in deserializedClass.data.offers)
            {
                HolidayOffers holidayOffer = new HolidayOffers
                {
                    Website  = "wakacje.pl",
                    Country  = offer.placeName,
                    Meal     = offer.serviceDesc,
                    Title    = offer.name,
                    Price    = offer.price,
                    Duration = offer.duration,
                    Url      = $"https://wakacje.pl{offer.link}",
                    Date     = $"{offer.departureDate} - {offer.returnDate}",
                    ImageUrl = $"https://wakacje.pl{offer.photo}"
                };


                _offersRepo.CreateHolidayOffers(holidayOffer);
            }
        }
Beispiel #4
0
        public async Task RefreshTuiOffersAsync()
        {
            ResetHolidayOffers("tui.pl");

            string postBody = "{\"childrenBirthdays\":[],\"durationFrom\":6,\"durationTo\":14,\"filters\":[{\"filterId\":\"additionalType\",\"selectedValues\":[\"GT03#TUZ-LAST25\"]}],\"metaData\":{\"page\":0,\"pageSize\":30,\"sorting\":\"flightDate\"},\"numberOfAdults\":2,\"offerType\":\"BY_PLANE\",\"site\":\"last-minute?pm_source=MENU&pm_name=Last_Minute\"}";

            var postResult = await client.PostAsync("https://www.tui.pl/search/offers", new StringContent(postBody, Encoding.UTF8, "application/json"));

            string stringResult = await postResult.Content.ReadAsStringAsync();

            var deserializedClass = JsonConvert.DeserializeObject <RetrieveMultipleTuiResponse>(stringResult);

            foreach (var offer in deserializedClass.Offers)
            {
                List <string> countryDetails = new List <string>();

                foreach (var country in offer.breadcrumbs)
                {
                    countryDetails.Add(country.label);
                }


                HolidayOffers holidayOffer = new HolidayOffers
                {
                    Website  = "tui.pl",
                    Country  = countryDetails[0],
                    Meal     = offer.boardType,
                    Title    = offer.hotelName,
                    Price    = Int32.Parse(offer.originalPerPersonPrice),
                    Duration = offer.duration,
                    Url      = $"https://www.tui.pl{offer.offerUrl}",
                    Date     = $"{offer.departureDate} - {offer.returnDate}",
                    ImageUrl = offer.imageUrl
                };


                _offersRepo.CreateHolidayOffers(holidayOffer);
            }
        }
Beispiel #5
0
 public void CreateHolidayOffers(HolidayOffers offers)
 {
     _context.HolidayOffers.Add(offers);
     _context.SaveChanges();
 }