Example #1
0
        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));
        }
Example #2
0
        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));
        }