private static async Task <HttpResponseMessage> HandleO365ConnectorCardActionQuery(Activity activity) { var connectorClient = new ConnectorClient(new Uri(activity.ServiceUrl)); O365ConnectorCardActionQuery o365CardQuery = activity.GetO365ConnectorCardActionQueryData(); Activity replyActivity = activity.CreateReply(); switch (o365CardQuery.ActionId) { case Constants.ShowFlights: FlightInputDetails flightInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <FlightInputDetails>(o365CardQuery.Body); flightInfo.JourneyDate = flightInfo.JourneyDate + activity.LocalTimestamp.Value.Offset; await ShowFlightInfo(flightInfo, replyActivity); break; case Constants.Rebook: RebookClass rebookFlight = Newtonsoft.Json.JsonConvert.DeserializeObject <RebookClass>(o365CardQuery.Body); await AttachRebookPassenger(rebookFlight.flightNumberInput, rebookFlight.pnrNumberInput, replyActivity); break; default: break; } await connectorClient.Conversations.ReplyToActivityWithRetriesAsync(replyActivity); return(new HttpResponseMessage(HttpStatusCode.OK)); }
private static async Task ShowFlightInfo(FlightInputDetails flighinput, Activity replyActivity) { //DateTime local = flighinput.JourneyDate.ToUniversalTime(); var list = await DocumentDBRepository <FlightInfo> .GetItemsAsync(d => d.FromCity == flighinput.From && d.ToCity == flighinput.To);/* && d.JourneyDate.ToShortDateString()==flighinput.JourneyDate.ToShortDateString());*/ if (list.Count() > 0) { var ListCard = AddListCardAttachment(replyActivity, list, flighinput.JourneyDate.ToUniversalTime().Date); } else { replyActivity.Text = $"Flights are not available for selected date. Please check another date."; } }