public ActionResult Index() { var GMT = Convert.ToInt32(Session["ClientGMT"]); var model = new AttendanceWebViewModel(); var employees = employeeService.GetAllEmployees().ToList().Select(x => x.CreateFromServerToClient(GMT)).OrderBy(x => x.FullName).ToList(); model.Employees = employees; model.AttendanceSearchRequest.EmployeeId = (int)Session["EmployeeID"]; model.AttendanceSearchRequest.SortBy = 0; model.AttendanceSearchRequest.Date = currentTime; ViewBag.MessageVM = TempData["Message"] as MessageViewModel; return(View(model)); }
public ActionResult Index(AttendanceSearchRequest searchRequest) { var GMT = Convert.ToInt32(Session["ClientGMT"]); string[] userPermissionsSet = (string[])System.Web.HttpContext.Current.Session["UserPermissionSet"]; if (!userPermissionsSet.Contains("ViewAllEmployeeAttendance")) { searchRequest.EmployeeId = (int)Session["EmployeeID"]; } var attendanceresponse = attendanceService.GetAllAttendances(searchRequest); var attendanceList = attendanceresponse.Attendances.ToList().Select(x => x.MapAttendanceResponseFromServerToClient(GMT)).ToList(); var model = new AttendanceWebViewModel { data = attendanceList, recordsFiltered = attendanceresponse.FilteredCount, recordsTotal = attendanceresponse.TotalCount }; if (searchRequest.Date.Year != 1) { TimeSpan totalWorkingHoursTimeSpan = attendanceList.Select(x => TimeSpan.Parse(x.WorkingHours)).Aggregate(TimeSpan.Zero, (subtotal, t) => subtotal.Add(t)); model.TotalWorkingHours = Math.Round(totalWorkingHoursTimeSpan.TotalHours, 2); double avg = Math.Round(totalWorkingHoursTimeSpan.TotalHours / Convert.ToDouble(model.data.Count), 2); model.AvgWorkingHours = Double.IsNaN(avg) ? 0 : avg; model.TotalWorkingDays = model.data.Count; } else { model.TotalWorkingHours = 0; } return(Json(model, JsonRequestBehavior.AllowGet)); }