public static HotelSearchRequestDetails GetInitSearchRequestDetails(SearchEvent eventEntry)
        {
            var requestDetails = new HotelSearchRequestDetails();

            requestDetails.SessionId                       = eventEntry.HotelSearchQuery.SessionId;
            requestDetails.CreatedOn                       = eventEntry.TimeStamp;
            requestDetails.CorrelationId                   = eventEntry.CorrelationId;
            requestDetails.PosId                           = eventEntry.HotelSearchQuery.PosId;
            requestDetails.TenantId                        = eventEntry.HotelSearchQuery.TenantId;
            requestDetails.Currency                        = eventEntry.HotelSearchQuery.Currency;
            requestDetails.CheckInDate                     = eventEntry.HotelSearchQuery.StayPeriod.Start;
            requestDetails.CheckOutDate                    = eventEntry.HotelSearchQuery.StayPeriod.End;
            requestDetails.AdultCount                      = (Int16)eventEntry.HotelSearchQuery.RoomOccupancies.Sum(x => x.Occupants.Count(y => y.Type == OccupantType.Adult));
            requestDetails.ChildCount                      = (Int16)eventEntry.HotelSearchQuery.RoomOccupancies.Sum(x => x.Occupants.Count(y => y.Type == OccupantType.Child));
            requestDetails.LeadTime                        = (Int16)(DateTime.UtcNow.Date - eventEntry.HotelSearchQuery.StayPeriod.Start.Date).Days;
            requestDetails.TravellerNationalityCode        = eventEntry.HotelSearchQuery.TravellerNationalityCode;
            requestDetails.TravellerCountryCodeOfResidence = eventEntry.HotelSearchQuery.TravellerCountryCodeOfResidence;

            var circle = eventEntry.HotelSearchQuery.Bounds as Circle;

            if (circle != null && circle.Center != null)
            {
                requestDetails.CircleCenterLatitude  = circle.Center?.Latitude;
                requestDetails.CircleCenterLongitude = circle.Center?.Longitude;
                requestDetails.CircleRadius          = (Int16)circle.RadiusKm;
                requestDetails.BoundType             = "Circle";
            }
            return(requestDetails);
        }
Esempio n. 2
0
        public async Task InsertSearchRequestDetails(HotelSearchRequestDetails request)
        {
            var jsonSettings = new JsonSerializerSettings {
                ContractResolver = new LowercaseContractResolver()
            };

            jsonSettings.DateFormatString = "yyyy-MM-dd";
            var jsonRequest      = JsonConvert.SerializeObject(request, jsonSettings) + "\n";
            var requestByteCount = Encoding.UTF8.GetByteCount(jsonRequest);
            //Console.WriteLine($"Size of request in bytes : {requestByteCount}");
            //Console.WriteLine(jsonRequest);
            Record record = new Record();

            record.Data = new MemoryStream(Encoding.UTF8.GetBytes(jsonRequest));
            PutRecordRequest putRecordRequest = new PutRecordRequest();

            putRecordRequest.DeliveryStreamName = KeyStore.FirehoseRequestDetailsStream;
            putRecordRequest.Record             = record;
            var response = await _client.PutRecordAsync(putRecordRequest);

            Console.WriteLine($"{response.RecordId} , {response.HttpStatusCode}");
        }