using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using PSTW_CentralSystem.Areas.OTcalculate.Models; using PSTW_CentralSystem.DBContext; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace PSTW_CentralSystem.Areas.OTcalculate.Controllers { [Area("OTcalculate")] public class HrDashboardController : Controller { private readonly CentralSystemContext _context; public HrDashboardController(CentralSystemContext context) { _context = context; } public IActionResult Rate() { return View(); } public IActionResult OtApproval() { return View(); } public IActionResult Settings() { return View(); } public IActionResult Calendar() { return View(); } #region Rates [HttpPost("UpdateRates")] public async Task UpdateRate([FromBody] List rates) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { foreach (var Rate in rates) { var existingRate = await _context.Rates.FindAsync(Rate.RateId); if (existingRate != null) { existingRate.RateValue = Rate.RateValue; _context.Rates.Update(existingRate); } } await _context.SaveChangesAsync(); var updateRates = await _context.Rates .Include(rates => rates.Users) .Select(rates => new { rates.RateId, rates.RateValue, rates.UserId, FullName = rates.Users.FullName, DepartmentName = rates.Users.DepartmentName }) .ToListAsync(); return Json(updateRates); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("GetUserRates")] public async Task GetUserRates() { try { var userRates = await _context.Rates .Include(rates => rates.Users) .Select(rates => new { rates.RateId, rates.RateValue, rates.UserId, FullName = rates.Users.FullName, DepartmentName = rates.Users.DepartmentName }) .ToListAsync(); return Json(userRates); } catch (Exception ex) { return BadRequest(ex.Message); } } #endregion } }