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); }
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}"); }