public async Task <IActionResult> Create(string id, AbsenceVM absenceVM) { var workers = await _userManager.FindByIdAsync(id); if (!ModelState.IsValid) { absenceVM.WorkerAccount = workers.Account; absenceVM.WorkerId = workers.Id; absenceVM.Absence = _context.Absences.ToList(); return(View(absenceVM)); } WorkerAbsens absenceForWorker = new WorkerAbsens { WorkerId = workers.Id, AbsenceId = absenceVM.SelectedAbsence, Date = DateTime.Now, Reason = absenceVM.Reason }; await _context.WorkerAbsens.AddAsync(absenceForWorker); await _context.SaveChangesAsync(); return(RedirectToAction("List", "Worker")); }
public async Task <IActionResult> AddAbsens(string id, AddAbsens addAbsens) { var workers = await _userManager.FindByIdAsync(id); var lastAbsens = await _dbContext.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsensId == 2 && x.Date.Year == DateTime.Now.Year && x.Date.Month == DateTime.Now.Month).LastOrDefaultAsync(); int dateCount = 0; if (lastAbsens != null) { dateCount = DateTime.Now.Day - lastAbsens.Date.Day; } if (!ModelState.IsValid) { addAbsens.WorkerAccount = workers.Account; addAbsens.WorkerId = workers.Id; addAbsens.Absens = _dbContext.Absens.ToList(); return(View(addAbsens)); } WorkerAbsens workerAbsens = new WorkerAbsens(); workerAbsens.WorkerId = workers.Id; workerAbsens.AbsensId = addAbsens.SelectedAbsens; workerAbsens.Date = DateTime.Now; workerAbsens.Reason = addAbsens.Reason; if (dateCount == 1) { workerAbsens.AbsensCount = lastAbsens.AbsensCount + 1; } else { workerAbsens.AbsensCount = 1; } await _dbContext.WorkerAbsens.AddAsync(workerAbsens); await _dbContext.SaveChangesAsync(); if (lastAbsens != null) { if (lastAbsens.AbsensCount == 4 && dateCount == 1) { workers.Working = false; await _dbContext.SaveChangesAsync(); } } return(RedirectToAction("WorkerList", "Worker")); }