using ConstructorAppUI.Dtos.CompanyInfoDtos; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System.Text; namespace ConstructorAppUI.Controllers { public class CompanyInfoController : Controller { private readonly IHttpClientFactory _httpClientFactory; private readonly IWebHostEnvironment _webHostEnvironment; private readonly string _apiBaseUrl; public CompanyInfoController(IHttpClientFactory httpClientFactory, IWebHostEnvironment webHostEnvironment, IConfiguration configuration) { _httpClientFactory = httpClientFactory; _webHostEnvironment = webHostEnvironment; _apiBaseUrl = configuration["ApiSettings:BaseUrl"]; } public async Task Index() { var client = _httpClientFactory.CreateClient(); var responseMessage = await client.GetAsync($"{_apiBaseUrl}/api/CompanyInfo"); if (responseMessage.IsSuccessStatusCode) { var jsonData = await responseMessage.Content.ReadAsStringAsync(); var values = JsonConvert.DeserializeObject>(jsonData); return View(values); } return View(); } [HttpGet] public async Task UpdateCompanyInfo(int id) { var client = _httpClientFactory.CreateClient(); var responseMessage = await client.GetAsync($"{_apiBaseUrl}/api/CompanyInfo/{id}"); if (responseMessage.IsSuccessStatusCode) { var jsonData = await responseMessage.Content.ReadAsStringAsync(); var values = JsonConvert.DeserializeObject(jsonData); return View(values); } return View(); } [HttpPost] public async Task UpdateCompanyInfo(UpdateCompanyInfoDto updateCompanyInfoDto) { var client = _httpClientFactory.CreateClient(); var jsonData = JsonConvert.SerializeObject(updateCompanyInfoDto); StringContent stringContent = new StringContent(jsonData, Encoding.UTF8, "application/json"); var responseMessage = await client.PutAsync($"{_apiBaseUrl}/api/CompanyInfo/", stringContent); if (responseMessage.IsSuccessStatusCode) { return RedirectToAction("Index"); } return View(); } } }