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"));
            }
        }
예제 #2
0
        // 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"));
     }
 }
예제 #5
0
        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);
        }
예제 #6
0
        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");
        }
예제 #7
0
        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"));
            }
        }