Ejemplo n.º 1
0
        public async Task <PricingQuoteResponse> Get(PricingQuote quote)
        {
            var composedResult = new PricingQuoteResponse();
            var watch          = Stopwatch.StartNew();

            // call pricing services concurrently
            Task <AppraisalQuoteResponse> appraisalResult;
            var appraisalQuote = new AppraisalQuote()
            {
                ProductType = quote.AppraisalProductType, EffectiveDate = quote.EffectiveDate, StateCode = quote.PropertyState, FromCache = quote.FromCache
            };

            using (var client = new ServiceStack.JsonServiceClient("http://pricing-appraisal:5001"))
                appraisalResult = client.GetAsync <AppraisalQuoteResponse>(appraisalQuote);

            Task <FeeScheduleQuoteResponse> feeScheduleResult;
            var feeSchedQuote = new FeeScheduleQuote()
            {
                ProductType = quote.ClosingProductType, EffectiveDate = quote.EffectiveDate, StateCode = quote.PropertyState, FromCache = quote.FromCache
            };

            using (var client = new ServiceStack.JsonServiceClient("http://pricing-feeschedule:5002"))
                feeScheduleResult = client.GetAsync <FeeScheduleQuoteResponse>(feeSchedQuote);

            //Task<UnderwriterQuoteResponse> underwriterResult;
            //var underwriterQuote = new UnderwriterQuote() { ProductType = quote.TitleProductType, EffectiveDate = quote.EffectiveDate, StateCode = quote.PropertyState, FromCache = quote.FromCache };
            //using (var client = new ServiceStack.JsonServiceClient("http://localhost:1339"))
            //    underwriterResult = client.GetAsync<UnderwriterQuoteResponse>(underwriterQuote);

            //Task<RecordingQuoteResponse> recordingResult;
            //var recordingQuote = new RecordingQuote() { ProductType = quote.RecordingDocumentType, EffectiveDate = quote.EffectiveDate, StateCode = quote.PropertyState, FromCache = quote.FromCache };
            //using (var client = new ServiceStack.JsonServiceClient("http://localhost:1340"))
            //    recordingResult = client.GetAsync<RecordingQuoteResponse>(recordingQuote);

            // compose results and return once they've all come back
            //await Task.WhenAll(appraisalResult, feeScheduleResult, underwriterResult, recordingResult);

            composedResult.AppraisalNotes   = (await appraisalResult).Notes;
            composedResult.AppraisalFee     = (await appraisalResult).Fee;
            composedResult.FeeScheduleNotes = (await feeScheduleResult).Notes;
            composedResult.FeeScheduleFee   = (await feeScheduleResult).Fee;
            //composedResult.UnderwriterNotes = (await underwriterResult).Notes;
            //composedResult.UnderwriterFee = (await underwriterResult).Fee;
            //composedResult.RecordingNotes = (await recordingResult).Notes;
            //composedResult.RecordingFee = (await recordingResult).Fee;

            watch.Stop();
            Debug.WriteLine(string.Format("GetPricingQuote completed in {0} milliseconds", watch.ElapsedMilliseconds));

            return(composedResult);
        }
Ejemplo n.º 2
0
        private static PricingQuote GenerateRequest()
        {
            var quote = new PricingQuote()
            {
                AppraisalProductType  = "1004SingleFamilyFull",
                TitleProductType      = "TitleCommitment",
                ClosingProductType    = "NotarySigning",
                RecordingDocumentType = "OwnersMortgage",
                LoanAmount            = 300000,
                ReferenceNumber       = 301232442,
                EffectiveDate         = DateTime.Today,
                FromCache             = _useCache
            };

            var randomizer = new Random();

            quote.PropertyState = stateList[randomizer.Next(0, 49)];

            return(quote);
        }
Ejemplo n.º 3
0
        private static PricingQuoteResponse GetPricingQuote(PricingQuote quote)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(ConfigUtils.GetAppSetting("MicroPricingGatewayUri"));
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var args = quote.ToGetUrl().SafeSubstring(quote.ToGetUrl().IndexOf('?'));
                HttpResponseMessage response = client.GetAsync("getQuote" + args).Result;

                if (response.IsSuccessStatusCode)
                {
                    var serial = new ServiceStack.Serialization.JsonDataContractSerializer();
                    var ret    = serial.DeserializeFromString <PricingQuoteResponse>(response.Content.ReadAsStringAsync().Result);
                    return(ret);
                }

                return(null);
            }
        }