public IActionResult AttendanceList() { if (HttpContext.Session.GetString("UserRole") == "1" || HttpContext.Session.GetString("UserRole") == "2" && HttpContext.Session.GetString("UserRole") != "Expired") { var e = db.Employee.AsNoTracking().ToList(); var a = db.Attendance.AsNoTracking().ToList(); var i = new List <AttendanceVM>(); var Result = from at in a group at by at.EmployeeId into c select new { Employeeid = c.Key, TotalTime = c.Sum(s => s.LoginDuration) }; var query = (from employee in e join attendance in a on employee.EmployeeId equals attendance.EmployeeId join at in Result on attendance.EmployeeId equals at.Employeeid select new { Employeeid = employee.EmployeeId, Firstname = employee.FirstName, Lastname = employee.LastName, email = employee.Email, Attendanceid = attendance.AttendanceId, date = attendance.Date, Login_Time = attendance.LoginTime, Logout_Time = attendance.LogoutTime, Login_Status = attendance.LoginStatus, Login_Duration = attendance.LoginDuration, at.TotalTime }).ToList(); foreach (var item in query) { AttendanceVM sa = new AttendanceVM(); { sa.AttendanceId = item.Attendanceid; sa.EmployeeId = item.Employeeid; sa.FirstName = item.Firstname; sa.LastName = item.Lastname; sa.Email = item.email; sa.Date = item.date; sa.LoginTime = item.Login_Time; sa.LogoutTime = item.Logout_Time; sa.LoginStatus = item.Login_Status; sa.LoginDuration = item.Login_Duration; sa.TotalDuration = item.TotalTime; } //i = i.GroupBy(x => x.EmployeeId).Select(x => x.Last()).ToList(); i.Add(sa); } return(View(i)); } else { return(RedirectToAction("Index", "Home")); } }
// GET: Attendance public ActionResult Index() { AttendanceVM vm = new AttendanceVM { Classes = _attendanceRepo.GetActiveClasses(), Subjects = _attendanceRepo.GetActiveTeachersSubjects() }; return(View(vm)); }
public IActionResult AttendanceDetails(int id) { if (HttpContext.Session.GetString("UserRole") == "1" || HttpContext.Session.GetString("UserRole") == "2" && HttpContext.Session.GetString("UserRole") != "Expired") { var u = db.Employee.Where(q => q.EmployeeId == id).FirstOrDefault(); var a = db.Attendance.ToList(); var Result = from at in a group at by at.EmployeeId into c select new { Employeeid = c.Key, TotalTime = c.Sum(s => s.LoginDuration) }; var query = (from attendance in db.Attendance join employee in db.Employee on attendance.EmployeeId equals employee.EmployeeId join at in Result on attendance.EmployeeId equals at.Employeeid where attendance.AttendanceId == id select new { Employeeid = employee.EmployeeId, Firstname = employee.FirstName, Lastname = employee.LastName, email = employee.Email, Attendanceid = attendance.AttendanceId, date = attendance.Date, Login_Time = attendance.LoginTime, Logout_Time = attendance.LogoutTime, Login_Status = attendance.LoginStatus, Login_Duration = attendance.LoginDuration, at.TotalTime }); AttendanceVM avm = new AttendanceVM(); foreach (var item in query) { avm.AttendanceId = item.Attendanceid; avm.EmployeeId = item.Employeeid; avm.FirstName = item.Firstname; avm.LastName = item.Lastname; avm.Email = item.email; avm.Date = item.date; avm.LoginTime = item.Login_Time; avm.LogoutTime = item.Logout_Time; avm.LoginStatus = item.Login_Status; avm.LoginDuration = item.Login_Duration; avm.TotalDuration = item.TotalTime; } return(View(avm)); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult DeleteAttendance(AttendanceVM item) { if (HttpContext.Session.GetString("UserRole") == "1" || HttpContext.Session.GetString("UserRole") == "2" && HttpContext.Session.GetString("UserRole") != "Expired") { var i = db.Attendance.Where(s => s.AttendanceId == item.AttendanceId).FirstOrDefault(); db.Attendance.Remove(i); db.SaveChanges(); return(RedirectToAction("AttendanceList")); } else { return(RedirectToAction("Index", "Home")); } }
public AttendanceVM GeAttendanceByID(int traineeId) { Attendance attendance = context.Attendances.Where(f => f.TraineeId == traineeId).FirstOrDefault(); AttendanceVM model = new AttendanceVM() { TraineeId = attendance.TraineeId, MarkedBy = attendance.MarkedBy, February = attendance.February, March = attendance.March, April = attendance.April, May = attendance.May, June = attendance.June, July = attendance.July, August = attendance.August, September = attendance.September, October = attendance.October, November = attendance.November }; return(model); }
public string UpdateAttendance(AttendanceVM vm) { Attendance attendance = context.Attendances.Where(f => f.AttendanceId == vm.AttendanceId).FirstOrDefault(); if (attendance != null) { attendance.MarkedBy = attendance.MarkedBy; attendance.February = attendance.February; attendance.March = attendance.March; attendance.April = attendance.April; attendance.May = attendance.May; attendance.June = attendance.June; attendance.July = attendance.July; attendance.August = attendance.August; attendance.September = attendance.September; attendance.October = attendance.October; attendance.November = attendance.November; } ; context.SaveChanges(); return("success"); }
public string AddAttendance(AttendanceVM vm) { Attendance newAttendance = new Attendance() { AttendanceId = vm.AttendanceId, TraineeId = vm.Trainee.TraineeId, MarkedBy = vm.MarkedBy, February = vm.February, March = vm.March, April = vm.April, May = vm.May, June = vm.June, July = vm.July, August = vm.August, September = vm.September, October = vm.October, November = vm.November }; context.Attendances.Add(newAttendance); context.SaveChanges(); return("success"); }
public IActionResult Attendance(AttendanceVM model) { if (HttpContext.Session.GetString("UserRole") == "1" || HttpContext.Session.GetString("UserRole") == "2" && HttpContext.Session.GetString("UserRole") != "Expired") { var i = db.Employee.Where(s => s.Email == model.Email && s.Password == model.Password).FirstOrDefault(); if (i != null) { HttpContext.Session.SetString("Employee", i.EmployeeId.ToString()); var employeeid = HttpContext.Session.GetString("Employee"); var item = db.Attendance.AsNoTracking().Where(a => a.EmployeeId == Convert.ToInt32(employeeid)).LastOrDefault(); if (ModelState.IsValid) { if (item != null) { if (item.LoginStatus == true) { item.LoginStatus = false; item.LogoutTime = DateTime.Now; item.LoginDuration = (item.LogoutTime - item.LoginTime).TotalHours; db.Attendance.Update(item); db.SaveChanges(); HttpContext.Session.Clear(); ViewBag.Logout = "Logged Out!"; ModelState.Clear(); return(View()); } else { var ei = Convert.ToInt32(i.EmployeeId); Attendance a = new Attendance { AttendanceId = model.AttendanceId, LoginStatus = true, Date = DateTime.Now, LoginTime = DateTime.Now, EmployeeId = ei }; db.Attendance.Add(a); db.SaveChanges(); ViewBag.Success = "Logged in!"; ModelState.Clear(); return(View()); } ///return RedirectToAction("AttendanceLogout"); } else { var ei = Convert.ToInt32(i.EmployeeId); Attendance a = new Attendance { AttendanceId = model.AttendanceId, LoginStatus = true, Date = DateTime.Now, LoginTime = DateTime.Now, EmployeeId = ei }; db.Attendance.Add(a); db.SaveChanges(); ViewBag.Success = "Logged in!"; ModelState.Clear(); return(View()); } //return RedirectToAction("AttendanceLogout"); } return(View()); } else { ViewBag.Error = "Username/Password is Incorrect."; return(View()); } } else { return(RedirectToAction("Index", "Home")); } }