public async Task <IActionResult> Edit(int id, [Bind("ID,MFundId,nav_date,net_asset,last_val,previous_val,LastUpdate")] DailyNav dailyNav) { if (id != dailyNav.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(dailyNav); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DailyNavExists(dailyNav.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["MFundId"] = new SelectList(_context.MFund, "ID", "Abbr", dailyNav.MFundId); return(View(dailyNav)); }
public async Task <IActionResult> UpdateNav(int MFundId) { if (ModelState.IsValid) { var mfund = await _context.MFund.FirstOrDefaultAsync(x => x.ID == MFundId); var client = new HttpClient(); var key = _configuration.GetSection("SecSubscriptionKey").GetSection("FundDailyInfo").Value.ToString(); // Request headers client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key); var fDate = DateTime.Now; var tDate = DateTime.Now.AddDays(-7); var curDate = fDate; for (var day = fDate.Date; day.Date >= tDate.Date; day = day.AddDays(-1)) { var navDate = day.ToString("yyyy-MM-dd"); var uri = "https://api.sec.or.th/FundDailyInfo/" + mfund.ProjectId + "/dailynav/" + navDate; var response = await client.GetAsync(uri); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var jsonString = await client.GetStringAsync(uri); DailyNavModel jsonObj = JsonConvert.DeserializeObject <DailyNavModel>(jsonString); var dailyNav = await _context.DailyNav.FirstOrDefaultAsync(m => m.MFundId == MFundId && m.nav_date == day); // delete if (dailyNav != null) { _context.DailyNav.Remove(dailyNav); } // insert dailyNav = new DailyNav() { MFundId = MFundId, nav_date = day, net_asset = jsonObj.net_asset, last_val = jsonObj.last_val, previous_val = jsonObj.previous_val, LastUpdate = DateTime.Parse(jsonObj.last_upd_date) }; _context.Add(dailyNav); await _context.SaveChangesAsync(); //return RedirectToAction(nameof(Index)); } } } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create([Bind("ID,MFundId,nav_date,net_asset,last_val,previous_val,LastUpdate")] DailyNav dailyNav) { if (ModelState.IsValid) { _context.Add(dailyNav); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["MFundId"] = new SelectList(_context.MFund, "ID", "Abbr", dailyNav.MFundId); return(View(dailyNav)); }