コード例 #1
0
        public async Task <FulfillmentResponse> FulfillAsync(FulfillmentRequest fulfillmentRequest, IJobberClient jobberClient)
        {
            var quoteNumber     = fulfillmentRequest.GetParameterAsInt(Constants.Variables.QuoteNumber);
            var quoteCollection = await jobberClient.GetQuotesAsync();

            var filteredQuotes = quoteCollection.Quotes.Where(q => q.QuoteNumber == quoteNumber);

            switch (filteredQuotes.Count())
            {
            case 1:
                return(QuoteUtils.BuildResponseFor(filteredQuotes.First()));

            default:
                return(BuildResponseForNoMatchingQuotes(quoteNumber));
            }
        }
        public async Task <FulfillmentResponse> FulfillAsync(FulfillmentRequest fulfillmentRequest, IJobberClient jobberClient)
        {
            var clientName  = fulfillmentRequest.GetParameter(Constants.Variables.ClientName);
            var serviceName = fulfillmentRequest.GetParameter(Constants.Variables.ServiceName);

            var quotesCollection = await jobberClient.GetQuotesAsync();

            var filteredQuotes = quotesCollection.Quotes
                                 .Where(q => q.Client.Name.ContainsIgnoringCase(clientName))
                                 .Where(q => DoesLineItemsMatchUserQuery(q.LineItems, serviceName));

            switch (filteredQuotes.Count())
            {
            case 0:
                return(BuildResponseForNoMatchingQuotes());

            case 1:
                return(QuoteUtils.BuildResponseFor(filteredQuotes.First()));

            default:
                return(BuildResponseForMuiltipleMatchesFor(fulfillmentRequest, filteredQuotes));
            }
        }