using AvaskTest2.Shared.Models; using AvaskTest2.Shared.Models.Cdiscount; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Net.Http.Json; using System.Threading.Tasks; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace AvaskTest2.Server.Controllers { [Route("api/[controller]")] [ApiController] public class CdiscountController : ControllerBase { private readonly HttpClient httpClient; public CdiscountController() => httpClient = new HttpClient(); // GET api//cdiscountgetsellerinfo [HttpGet("cdiscountgetsellerinfo")] // public async Task CdiscountGetSellerInfo() // Get { // pass-through call try { var request = new CdiscountSellerInfoRequest(new User { CompanyId = "AVASK-SOFTWARE" }, "infiniti-system-client"); //string sTemp = JsonConvert.SerializeObject(request); //### test only var response = await httpClient.PostAsJsonAsync("http://localhost:7071/api/cdiscountsellerinfo", request); var content = await response.Content.ReadAsStringAsync(); var cdisResp = JsonConvert.DeserializeObject(content); return new JsonResult(cdisResp?.SellerInfo); } catch (Exception ex) { return new JsonResult(ex.Message); } } // POST api//cdiscountgetsellerinfo [HttpPost("cdiscountgetsellerinfohead")] // public async Task CdiscountGetSellerInfoHead() // post { // pass-through call try { var requestBody = await new StreamReader(Request.Body).ReadToEndAsync(); var request = JsonConvert.DeserializeObject(requestBody); //string sTemp = JsonConvert.SerializeObject(request); //### test only var response = await httpClient.PostAsJsonAsync("http://localhost:7071/api/cdiscountsellerinfo", request); var content = await response.Content.ReadAsStringAsync(); var cdisResp = JsonConvert.DeserializeObject(content); return new JsonResult(cdisResp); //return new JsonResult(content); } catch (Exception ex) { return new JsonResult(ex.Message); } } // POST api//cdiscountfetchsales [HttpPost("cdiscountfetchsales")] // public async Task CdiscountFetchSales([FromBody] SalesDatespan datespan) // Get { // pass-through call try { var request = new CdiscountFetchSalesRequest(new User { CompanyId = "AVASK-SOFTWARE" }, "infiniti-system-client", datespan); //string sTemp = JsonConvert.SerializeObject(request); //### test only var response = await httpClient.PostAsJsonAsync("http://localhost:7071/api/cdiscountfetchsales", request); var content = await response.Content.ReadAsStringAsync(); var uaURL = JsonConvert.DeserializeObject(content); return new JsonResult(uaURL?.SalesResponse); } catch (Exception ex) { return new JsonResult(ex.Message); } } // POST api//cdiscountgettrans [HttpPost("cdiscountgettrans")] // public async Task CdiscountGetTrans([FromBody] SalesDatespan datespan) // Get { // pass-through call try { var request = new CdiscountGetTransRequest(new User { CompanyId = "AVASK-SOFTWARE" }, "infiniti-system-client", datespan); //string sTemp = JsonConvert.SerializeObject(request); //### test only var response = await httpClient.PostAsJsonAsync("http://localhost:7071/api/cdiscountgettransaction", request); var content = await response.Content.ReadAsStringAsync(); var uaURL = JsonConvert.DeserializeObject(content); return new JsonResult(uaURL?.TransactionResponse); } catch (Exception ex) { return new JsonResult(ex.Message); } } // POST api//cdiscountauthcred [HttpPost("cdiscountauthcred")] // public async Task CdiscountAuthCred() // Post { // pass-through call try { var requestBody = await new StreamReader(Request.Body).ReadToEndAsync(); var request = JsonConvert.DeserializeObject(requestBody); //var request = new CdiscountAuthCredentialsRequest(new User { CompanyId = "AVASK-SOFTWARE" }, "infiniti-system-client", authCred); //string sTemp = JsonConvert.SerializeObject(request); //### test only var response = await httpClient.PostAsJsonAsync("http://localhost:7071/api/cdiscountauthcredentials", request); var content = await response.Content.ReadAsStringAsync(); var cdisResp = JsonConvert.DeserializeObject(content); return new JsonResult(cdisResp); } catch (Exception ex) { return new JsonResult(ex.Message); } } } }