using ConstructorAppUI.Dtos.ServiceDtos; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System.Text; namespace ConstructorAppUI.Controllers { public class ServiceController : Controller { private readonly IHttpClientFactory _httpClientFactory; private readonly IWebHostEnvironment _webHostEnvironment; private readonly string _apiBaseUrl; public ServiceController(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/Service"); if (responseMessage.IsSuccessStatusCode) { var jsonData = await responseMessage.Content.ReadAsStringAsync(); var values = JsonConvert.DeserializeObject>(jsonData); return View(values); } return View(); } [HttpGet] public async Task UpdateService(int id) { var client = _httpClientFactory.CreateClient(); var responseMessage = await client.GetAsync($"{_apiBaseUrl}/api/Service/{id}"); if (responseMessage.IsSuccessStatusCode) { var jsonData = await responseMessage.Content.ReadAsStringAsync(); var values = JsonConvert.DeserializeObject(jsonData); return View(values); } return View(); } [HttpPost] public async Task UpdateService(UpdateServiceDto updateServiceDto) { var client = _httpClientFactory.CreateClient(); var jsonData = JsonConvert.SerializeObject(updateServiceDto); StringContent stringContent = new StringContent(jsonData, Encoding.UTF8, "application/json"); var responseMessage = await client.PutAsync($"{_apiBaseUrl}/api/Service/", stringContent); if (responseMessage.IsSuccessStatusCode) { return RedirectToAction("Index"); } return View(); } public async Task ServiceStatusActive(int id) { var client = _httpClientFactory.CreateClient(); await client.GetAsync($"{_apiBaseUrl}/api/Service/ServiceStatusActive/{id}"); return RedirectToAction("Index"); } public async Task ServiceStatusPassive(int id) { var client = _httpClientFactory.CreateClient(); await client.GetAsync($"{_apiBaseUrl}/api/Service/ServiceStatusPassive/{id}"); return RedirectToAction("Index"); } } }