using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Localization; using System.Collections.Generic; namespace Convert_It_Online.Controllers { // ViewModel para representar uma ferramenta no menu da Home public class ToolViewModel { public required string Title { get; set; } public required string Description { get; set; } public required string Area { get; set; } public required string Controller { get; set; } public required string IconClass { get; set; } // Propriedade para o ícone public string Action { get; set; } = "Index"; } public class HomeController : Controller { private readonly IStringLocalizer _localizer; public HomeController(IStringLocalizer localizer) { _localizer = localizer; } private void SetCommonViewBagProperties() { ViewBag.HomeLink = _localizer["HomeLink"]; ViewBag.TextMenuTitle = _localizer["TextMenuTitle"]; ViewBag.ImageMenuTitle = _localizer["ImageMenuTitle"]; ViewBag.CaseConverterTitle = _localizer["CaseConverterTitle"]; ViewBag.JpgToWebpTitle = _localizer["JpgToWebpTitle"]; ViewBag.HeicToJpgTitle = _localizer["HeicToJpgTitle"]; ViewBag.FooterText = _localizer["FooterText"]; ViewBag.About = _localizer["About"]; ViewBag.Contact = _localizer["Contact"]; ViewBag.Terms = _localizer["Terms"]; } public IActionResult Index() { SetCommonViewBagProperties(); ViewBag.PageTitle = _localizer["PageTitle"]; ViewBag.Subtitle = _localizer["Subtitle"]; ViewBag.AboutSiteTitle = _localizer["AboutSiteTitle"]; ViewBag.AboutSiteContent = _localizer["AboutSiteContent"]; ViewBag.WhyFreeTitle = _localizer["WhyFreeTitle"]; ViewBag.WhyFreeContent = _localizer["WhyFreeContent"]; ViewBag.SecurityTitle = _localizer["SecurityTitle"]; ViewBag.SecurityContent = _localizer["SecurityContent"]; ViewBag.AllConvertersTitle = _localizer["AllConvertersTitle"]; ViewBag.UseConverterButton = _localizer["UseConverterButton"]; var individualConverters = new List { new ToolViewModel { Title = _localizer["CaseConverterIndividualTitle"], Description = _localizer["CaseConverterIndividualDescription"], Area = "TextTools", Controller = "CaseConverter", IconClass = "bi-fonts" }, new ToolViewModel { Title = _localizer["JpgToWebpIndividualTitle"], Description = _localizer["JpgToWebpIndividualDescription"], Area = "ImageConverters", Controller = "JpgToWebp", IconClass = "bi-file-earmark-image" }, new ToolViewModel { Title = _localizer["HeicToJpgIndividualTitle"], Description = _localizer["HeicToJpgIndividualDescription"], Area = "ImageConverters", Controller = "HeicToJpg", IconClass = "bi-phone" } }; return View(individualConverters); } public IActionResult About() { SetCommonViewBagProperties(); ViewBag.AboutTitle = _localizer["AboutTitle"]; ViewBag.WhatIsTitle = _localizer["WhatIsTitle"]; ViewBag.WhatIsContent = _localizer["WhatIsContent"]; ViewBag.MissionTitle = _localizer["MissionTitle"]; ViewBag.MissionContent = _localizer["MissionContent"]; ViewBag.FeaturesTitle = _localizer["FeaturesTitle"]; ViewBag.Feature1 = _localizer["Feature1"]; ViewBag.Feature2 = _localizer["Feature2"]; ViewBag.Feature3 = _localizer["Feature3"]; ViewBag.Feature4 = _localizer["Feature4"]; ViewBag.StartConverting = _localizer["StartConverting"]; return View(); } public IActionResult Contact() { SetCommonViewBagProperties(); ViewBag.ContactTitle = _localizer["ContactTitle"]; ViewBag.ContactIntro = _localizer["ContactIntro"]; ViewBag.EmailTitle = _localizer["EmailTitle"]; ViewBag.SupportTitle = _localizer["SupportTitle"]; ViewBag.SupportTime = _localizer["SupportTime"]; ViewBag.FaqTitle = _localizer["FaqTitle"]; return View(); } public IActionResult Terms() { SetCommonViewBagProperties(); ViewBag.TermsTitle = _localizer["TermsTitle"]; ViewBag.TermsIntro = _localizer["TermsIntro"]; ViewBag.AcceptanceTitle = _localizer["AcceptanceTitle"]; ViewBag.AcceptanceContent = _localizer["AcceptanceContent"]; ViewBag.ServiceTitle = _localizer["ServiceTitle"]; ViewBag.ServiceContent = _localizer["ServiceContent"]; ViewBag.PrivacyTitle = _localizer["PrivacyTitle"]; ViewBag.PrivacyContent = _localizer["PrivacyContent"]; ViewBag.LimitationTitle = _localizer["LimitationTitle"]; ViewBag.LimitationContent = _localizer["LimitationContent"]; ViewBag.ChangesTitle = _localizer["ChangesTitle"]; ViewBag.ChangesContent = _localizer["ChangesContent"]; ViewBag.LastUpdated = _localizer["LastUpdated"]; ViewBag.BackToHome = _localizer["BackToHome"]; return View(); } } }