using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using goods.Models; using goods.Models.Coupang; using Product = goods.Models.Coupang.Product; using Search = goods.Models.Coupang.Search; namespace goods.Controllers { public class HomeController : Controller { private readonly ILogger _logger; private readonly CoupangPartners _coupangPartners; private readonly DBContext _context; public HomeController(ILogger logger, CoupangPartners coupangPartners, DBContext context) { _logger = logger; _coupangPartners = coupangPartners; _context = context; } // Ȩ(¸ÞÀÎ) [HttpGet("/")] public IActionResult Index() { return View(); } // À̺¥Æ® [HttpGet("/Event")] public IActionResult Event() { var data = new(int key, string href, string src, string alt)[] { (1, "https://link.coupang.com/a/b69T8Q", "/image/1.png", "ÆÐ¼Ç LAST SALE! ÃÖ´ë 70% ÇÒÀÎ"), (2, "https://link.coupang.com/a/b69UJh", "/image/2.png", "±âºÐ ÁÁÀº ¼±¹°! EÄíÆù/±âÇÁƼÄÜ"), (3, "https://link.coupang.com/a/b69UPW", "/image/3.png", "°ñµå¹Ú½º"), (4, "https://link.coupang.com/a/b69UUT", "/image/4.png", "Ææ¼Ç/Ç®ºô¶ó ¿Í¿ìȸ¿ø ÇÒÀÎ"), (5, "https://link.coupang.com/a/b69UYJ", "/image/5.png", "·ÎÄÏÇÁ·¹½Ã, ¸ÀÀÖ´Â ÃÖÀú°¡"), (6, "https://link.coupang.com/a/b69U57", "/image/6.png", "[¸ð¹ÙÀÏ Àü¿ë] ÄíÆÎ¶óÀÌºê ·°Å°¹Ú½º"), (7, "https://link.coupang.com/a/b69VaS", "/image/7.png", "·ÎÄÏÆÐ¼Ç, ¿ª´ë±Þ ÇÒÀÎ ¾Æ¿ï·¿°ü"), (8, "https://link.coupang.com/a/b69VfM", "/image/8.png", "·ÎÄÏÇÁ·¹½Ã, ¸¶Æ® ±âȹÀü"), (9, "https://link.coupang.com/a/b69VkQ", "/image/9.png", "·ÎÄÏÇÁ·¹½Ã, ½Ä´Ü°ü¸®"), (10, "https://link.coupang.com/a/b69VsR", "/image/10.png", "·ÎÄÏÇÁ·¹½Ã, °¡°Ý¿ªÀü"), (11, "https://link.coupang.com/a/b69Vwb", "/image/11.png", "ȨÀÎÅ׸®¾î, °ø°£º° ÀÎÅ׸®¾î Ãßõ"), (12, "https://link.coupang.com/a/b69VGB", "/image/12.png", "·ÎÄÏÆÐ¼Ç, ·ÎÄϹè¼Û ±ÝÁÖÀÇ ½Å»ó"), (13, "https://link.coupang.com/a/b69VKU", "/image/13.png", "°¡ÀüµðÁöÅÐ, °¡¼ººñ °ÔÀÌ¹Ö ¸ð´ÏÅÍ"), (14, "https://link.coupang.com/a/b69VOH", "/image/14.png", "°¡ÀüµðÁöÅÐ, °¶·°½Ã ¹öÁî"), (15, "https://link.coupang.com/a/b69VU1", "/image/15.png", "°¡ÀüµðÁöÅÐ, ÇÁ¸®¹Ì¾ö °ÔÀÌ¹Ö ³ëÆ®ºÏ"), (16, "https://link.coupang.com/a/b69V3V", "/image/16.png", "°¡ÀüµðÁöÅÐ, °ÔÀÌ¹Ö ³ëÆ®ºÏ"), (17, "https://link.coupang.com/a/b69V6U", "/image/17.png", "°¡Àü/µðÁöÅÐ, ÇÁ¸®¹Ì¾ö ¿Àµð¿À"), (18, "https://link.coupang.com/a/b69Wb9", "/image/18.png", "·ÎÄÏÆÐ¼Ç, ¹Ýǰ ¸¶ÄÏ"), (19, "https://link.coupang.com/a/b69WhM", "/image/19.png", "ÄíÆÎÆ®·¡ºí, ¸ÅÀÏ ¸¸³ª´Â ¿©Çà Æ¯°¡"), (20, "https://link.coupang.com/a/b69Wlr", "/image/20.png", "µµ¼­/¹®±¸, Ã¥ ÇÑÀÜ") }; var random = new Random(); ViewBag.Data = data.OrderBy(row => random.Next()).ToArray(); ; return View(); } // °ñµå¹Ú½º [HttpGet("/GoldBox")] public async Task GoldBox() { CoupangModel coupangModel = new CoupangModel(_coupangPartners); Product.Response itemList = await coupangModel.GetGoldBoxProduct(); return View(itemList); } // Àΰ¡»óǰ [HttpGet("/category/{id}")] public async Task Category([FromRoute] int id) { // EnumÀ» ÀÌ¿ëÇÑ À¯È¿¼º °Ë»ç if (!Enum.IsDefined(typeof(Request.Categories), id)) { return BadRequest("À߸øµÈ Á¢±ÙÀÔ´Ï´Ù."); } CoupangModel coupangModel = new CoupangModel(_coupangPartners); Product.Response itemList = await coupangModel.GetCategoryProduct(id); // ÇöÀç Ä«Å×°í¸® À̸§ Á¶È¸ var category = (Request.Categories)id; var categoryName = category.GetDisplayName(); ViewBag.CategoryName = categoryName; return View(itemList); } // ÄíÆÎPL [HttpGet("/pl/{id}")] public async Task Pl([FromRoute] int id) { // EnumÀ» ÀÌ¿ëÇÑ À¯È¿¼º °Ë»ç if (!Enum.IsDefined(typeof(Request.Brand), id)) { return BadRequest("À߸øµÈ Á¢±ÙÀÔ´Ï´Ù."); } CoupangModel coupangModel = new CoupangModel(_coupangPartners); Product.Response itemList = await coupangModel.GetPlProduct(id); // ÇöÀç PL À̸§ Á¶È¸ var pl = (Request.Brand)id; var plName = pl.GetDisplayName(); ViewBag.PlName = plName; return View(itemList); } // »óǰ °Ë»ö [HttpGet("/search")] public async Task Search(string? keyword) { // °Ë»ö¾î ó¸® ·ÎÁ÷ if (string.IsNullOrEmpty(keyword)) { return BadRequest("°Ë»ö¾î¸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä."); } CoupangModel coupangModel = new CoupangModel(_coupangPartners); Search.Response itemList = await coupangModel.GetSearchProduct(keyword); ViewBag.Keyword = keyword; // °Ë»ö Ű¿öµå¸¦ DB¿¡ ÀúÀå await _context.SearchKeyword.AddAsync(new SearchKeyword { Keyword = keyword, IPAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString(), UserAgent = Request.Headers["User-Agent"], CreatedAt = DateTime.Now }); await _context.SaveChangesAsync(); return View(itemList); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }