Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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
            });
        }