public ActionResult SignOut() { try { Attendance attendance = AttendancesLogic.GetLastSignByUserId(SessionData.UserId); AttendancesLogic.UpdateAttendance(attendance); ActionRate actionRate = ActionRatesLogic.GetActionRateByName("Sign Out"); EmployeePointsLogic.InsertNewEmployeePoint(new EmployeePoint() { ActionRateId = actionRate.Id, Date = DateTimeHelper.Today(), UserId = attendance.EmpUserId, Rate = actionRate.MaxRate }); return(RedirectToAction("UserSign")); } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/SignOut" }); return(RedirectToAction("GeneralError", "Error", new { ErrorMessage = Error.ServerNotRespond })); } }
public ActionResult Index() { try { if (SessionData.UserRole == UserRoles.Employee) { Attendance attendance = AttendancesLogic.GetLastSignByUserId(SessionData.UserId); if (attendance == null) { DateTime serverTime = DateTimeHelper.Today(); if (serverTime.Hour >= 12) { return(RedirectToAction("Index", "Employees")); } else { return(RedirectToAction("UserSign", "Attendances")); } } List <StandUpMeetingDetails> model = StandUpMeetingsLogic.GetTodayStandUpMeeting(SessionData.UserId); if (model.Count == 0) { return(RedirectToAction("Create", "StandUpMeet")); } return(RedirectToAction("Index", "Employees")); } else { HomeIndexModel model = new HomeIndexModel(); model.Projects = ProjectsLogic.GetProjectlist(); List <Sprint> sprints = SprintsLogic.GetAllSprints(); model.PreviousSprint = sprints.FindLast(a => a.PreviousSprint); model.CurrentSprint = sprints.Find(a => a.CurrentSprint); model.FutureSprint = sprints.Find(a => a.FutureSprint); model.CanCreateSprint = !sprints.Any(a => a.FutureSprint); return(View(model)); } } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Projects/GetProjectlist", }); return(RedirectToAction("GeneralError", "Error", new { ErrorMessage = Error.ServerNotRespond })); } }
public ActionResult SetSignOutToAll() { try { AttendancesLogic.SignOutToAllUsers(); } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/SetSignOutToAll" }); } return(RedirectToAction("Index")); }
public ActionResult SetSignOut(int id) { try { AttendancesLogic.UpdateAttendance(id); } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/SetSignOut", Parameters = "id= " + id.ToString() }); } return(RedirectToAction("Index")); }
public ActionResult UsersNotSignOutList(int?pageNo) { var page = pageNo ?? 0; List <UserSign> userSign = new List <UserSign>(); try { userSign = AttendancesLogic.GetAllUsersNotSignOut(page); } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/UsersNotSignOutList", Parameters = "pageNum =" + page.ToString() }); } return(PartialView("UserSignList", userSign)); }
public ActionResult EmployeeAttendence(int userId) { DateTime today = DateTimeHelper.Today(); DateTime firstDay = new DateTime(today.Year, today.Month, 1); List <Attendance> userAttendances = AttendancesLogic.GetAllUserAttendencesBetweenTwoDates(userId, firstDay, today); int totalWorkingDaysInMonth = DateTimeHelper.GetWorkingDaysCountInMonth(firstDay, today); int totalUserWorkingDays = userAttendances.Count; UserProfile user = UserProfilesLogic.GetUserById(userId); UserAttendancesModel model = new UserAttendancesModel { TotalWorkingDaysInMonth = totalWorkingDaysInMonth, TotalUserWorkingDays = totalUserWorkingDays, TotalUserAbsenceDays = (totalWorkingDaysInMonth - totalUserWorkingDays), TotalUserWorkingHours = Math.Round(AttendancesLogic.GetTotalUserWorkingHoursInMonth(userId, firstDay, today), 2), UserAttendances = userAttendances, FirstName = user.FirstName, LastName = user.LastName }; return(View(model)); }
public ActionResult UserSign(string errorMessage = "") { SignInModel model = new SignInModel(); try { Attendance attendance = AttendancesLogic.GetLastSignByUserId(SessionData.UserId); model.CurrentDateTime = DateTimeHelper.Today(); model.UserName = SessionData.UserName; if (attendance != null) { model.LastSignIn = (DateTime)attendance.SignInDate; if (attendance.SignOutDate != null) { model.lastSignOut = (DateTime)attendance.SignOutDate; } SignHelper.PrepareSign(model); } model.Succeeded = true; if (!string.IsNullOrWhiteSpace(errorMessage)) { model.ErrorMessage = errorMessage; } } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/UserSign" }); model.Succeeded = false; model.ErrorMessage = "Failed To Sign in"; return(RedirectToAction("GeneralError", "Error", new { ErrorMessage = "Error in server Connection", parameter = "" })); } return(View(model)); }
public ActionResult SignIn(string latitude = "", string longitude = "") { try { Attendance attendancee = new Attendance(); DateTime signInDate = DateTimeHelper.Today(); if (signInDate != null) { signInDate = DateTimeHelper.Today(); } else { return(RedirectToAction("UserSign", "Attendances", new { ErrorMessage = "Error in Time Server Connection", parameter = "" })); } if (!string.IsNullOrEmpty(latitude) && !string.IsNullOrEmpty(longitude) && signInDate.Hour < 12) { Attendance attendance = new Attendance() { EmpUserId = SessionData.UserId, SignInDate = signInDate, Latitude = latitude, Longitude = longitude }; AttendancesLogic.InsertNewAttendance(attendance); ActionRate actionRate = ActionRatesLogic.GetActionRateByName("Sign In"); EmployeePointsLogic.InsertNewEmployeePoint(new EmployeePoint() { ActionRateId = actionRate.Id, Date = DateTime.Now, UserId = attendance.EmpUserId, Rate = actionRate.MaxRate }); } else if (signInDate.Hour >= 12) { LogsLogic.InsertLog(new Log() { Message = "this User breake the client side validation and try to signin within not correct time or maybe change his system time by mistck", StackTrace = "", Parameters = "user id = " + SessionData.UserId + " and username = "******"ManagementProject/Attendances/SignIn" }); return(RedirectToAction("UserSign", "Attendances", new { errorMessage = "Your Time System is not Correct!" })); } else if (string.IsNullOrEmpty(latitude) || string.IsNullOrEmpty(longitude)) { LogsLogic.InsertLog(new Log() { Message = "this User breake the client side validation and try to signin within not correct geoLocation or maybe something was wrong happened!", StackTrace = "", Parameters = "user id = " + SessionData.UserId + " and username = "******"SignIn" }); return(RedirectToAction("UserSign", "Attendances", new { errorMessage = "Please check Location Permissions to allow to Signin!" })); } List <StandUpMeetingDetails> model = StandUpMeetingsLogic.GetTodayStandUpMeeting(SessionData.UserId); if (model.Count == 0) { return(RedirectToAction("Create", "StandUpMeet")); } return(RedirectToAction("Index", "Home")); } catch (Exception e) { LogsLogic.InsertLog(new Log() { Message = e.Message, StackTrace = e.StackTrace, StoryName = "ManagementProject/Attendances/SignIn" }); return(RedirectToAction("GeneralError", "Error", new { ErrorMessage = Error.ServerNotRespond })); } }