/// <summary> /// Runs the activity asynchronously. /// </summary> /// <param name="sharedContext">The shared context.</param> /// <returns> /// Next activity to be run or <c>null</c> if last in flow. /// </returns> public async Task <IActivity> RunAsync(SharedContext sharedContext) { LeadPriceCalendarRS leadPriceCalendarRS = sharedContext.GetResult(LeadPriceCalendarActivity.SharedContextKey) as LeadPriceCalendarRS; HttpResponse <InstaFlightRS> httpResponse; if (this.data != null) { Dictionary <string, string> queryDictionary = new Dictionary <string, string> { { "origin", this.data.Origin }, { "destination", this.data.Destination }, { "departuredate", this.data.DepartureDate.ToString("yyyy-MM-dd") }, { "returndate", this.data.ReturnDate.ToString("yyyy-MM-dd") } }; httpResponse = await this.restClient.GetAsync <InstaFlightRS>(Endpoint, queryDictionary); } else { string uri = leadPriceCalendarRS.FareInfo.SelectMany(fi => fi.Links).Where(l => l.Rel == "shop").Select(l => l.Href).First(); httpResponse = await this.restClient.GetAsync <InstaFlightRS>(uri); } sharedContext.AddRestResult(SharedContextKey, httpResponse, true, JsonSharedContextKey); sharedContext.AddResult(RequestUriSharedContextKey, httpResponse.RequestUri); return(null); }
/// <summary> /// Creates the view model for LeadPriceCalendar result. /// </summary> /// <param name="sharedContext">The shared context.</param> /// <returns>The view model</returns> public static LeadPriceCalendarPostVM CreateLeadPriceCalendarVM(SharedContext sharedContext) { if (sharedContext.IsFaulty) { return(new LeadPriceCalendarPostVM { ErrorMessage = sharedContext.GetResult <string>(LeadPriceCalendarActivity.SharedContextKey) ?? string.Empty, RequestUrl = sharedContext.GetResult <string>(LeadPriceCalendarActivity.RequestUrlSharedContextKey), }); } LeadPriceCalendarRS leadPriceCalendarResponse = sharedContext.GetResult <LeadPriceCalendarRS>(LeadPriceCalendarActivity.SharedContextKey); return(new LeadPriceCalendarPostVM { ResponseDotNet = ObjectPrinter.CreateString(leadPriceCalendarResponse), ResponseJson = sharedContext.GetResult <string>(LeadPriceCalendarActivity.ResponseJsonSharedContextKey), RequestUrl = sharedContext.GetResult <string>(LeadPriceCalendarActivity.RequestUrlSharedContextKey), ErrorMessage = string.Empty }); }