public async Task <APIResponse> GetLeadQuotes(int leadId, LeadQuoteParameters quoteParameters)
        {
            try
            {
                var client = httpClientFactory.CreateClient(LeadServiceOperation.serviceName);

                UriBuilder url = new UriBuilder(servicesConfig.Lead + LeadServiceOperation.GetLeadQuotes(leadId));

                url.Query = QueryStringHelper.ConvertToQueryString(quoteParameters);

                var response = await client.GetAsync(url.ToString());

                if (response.IsSuccessStatusCode)
                {
                    var leadQuote = JsonConvert.DeserializeObject <List <LeadQuoteResponse> >(await response.Content.ReadAsStringAsync());
                    return(new APIResponse(leadQuote, HttpStatusCode.OK));
                }

                return(new APIResponse(response.StatusCode));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'GetLeadQuotes()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
Example #2
0
        public async Task <IActionResult> GetLeadQuotes(int leadId, [FromQuery] LeadQuoteParameters quoteParameters)
        {
            var getLeadQuotesQuery = new GetAllLeadQuotesQuery(quoteParameters, leadId);

            var result = await mediator.Send(getLeadQuotesQuery);

            if (result.Code == HttpStatusCode.OK)
            {
                Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(result.Value as PagedList <Entity>));
            }

            return(StatusCode((int)result.Code, result.Value));
        }
        /// <summary>
        /// Gets the lead quotes.
        /// </summary>
        /// <param name="leadQuoteParameters">The lead quote parameters.</param>
        /// <returns></returns>
        public async Task <PagedList <Entity> > GetLeadQuotes(LeadQuoteParameters leadQuoteParameters, int leadId = 0)
        {
            if (leadId > 0)
            {
                var leadCollections = FindByCondition(x => x.Active == Convert.ToInt16(true) && x.LeadId.Equals(leadId)).ProjectTo <LeadQuoteResponse>(mapper.ConfigurationProvider);
                var sortedStories   = sortHelper.ApplySort(leadCollections, leadQuoteParameters.OrderBy);
                var shapedStories   = dataShaper.ShapeData(sortedStories, leadQuoteParameters.Fields);

                return(await PagedList <Entity> .ToPagedList(shapedStories, leadQuoteParameters.PageNumber, leadQuoteParameters.PageSize));
            }
            else
            {
                var leadCollections = FindByCondition(x => x.Active == Convert.ToInt16(true)).ProjectTo <LeadQuoteResponse>(mapper.ConfigurationProvider);
                var sortedStories   = sortHelper.ApplySort(leadCollections, leadQuoteParameters.OrderBy);
                var shapedStories   = dataShaper.ShapeData(sortedStories, leadQuoteParameters.Fields);

                return(await PagedList <Entity> .ToPagedList(shapedStories, leadQuoteParameters.PageNumber, leadQuoteParameters.PageSize));
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="GetAllLeadQuotesQuery"/> class.
 /// </summary>
 /// <param name="leadParameters">The lead parameters.</param>
 public GetAllLeadQuotesQuery(LeadQuoteParameters leadParameters, int leadId = 0)
 {
     LeadQuoteParameters = leadParameters;
     LeadId = leadId;
 }
        public async Task <IActionResult> GetLeadQuotes(int leadId, [FromQuery] LeadQuoteParameters quoteParameters)
        {
            var result = await leadService.GetLeadQuotes(leadId, quoteParameters);

            return(StatusCode((int)result.Code, result.Value));
        }