Ejemplo n.º 1
0
        public AttendanceResponse GetAllAttendances(AttendanceSearchRequest attendanceSearchRequest)
        {
            int fromRow = (attendanceSearchRequest.PageNo - 1) * attendanceSearchRequest.PageSize;
            int toRow   = attendanceSearchRequest.PageSize;
            Expression <Func <Attendance, bool> > query =
                s =>
                (
                    (attendanceSearchRequest.EmployeeId == 0 || attendanceSearchRequest.EmployeeId.Equals(s.EmployeeId)) &&
                    (attendanceSearchRequest.Date.Year == 1 ||
                     (attendanceSearchRequest.Date.Month.Equals(s.CheckInTime.Month) && (attendanceSearchRequest.Date.Year.Equals(s.CheckInTime.Year))))
                );

            IEnumerable <Attendance> attendances = attendanceSearchRequest.IsAsc
                ? DbSet
                                                   .Where(query)
                                                   .OrderBy(orderClause[attendanceSearchRequest.OrderByColumn])
                                                   .Skip(fromRow)
                                                   .Take(toRow)
                                                   .ToList()
                : DbSet
                                                   .Where(query)
                                                   .OrderByDescending(orderClause[attendanceSearchRequest.OrderByColumn])
                                                   .Skip(fromRow)
                                                   .Take(toRow)
                                                   .ToList();

            return(new AttendanceResponse {
                Attendances = attendances, TotalCount = DbSet.Count(query), FilteredCount = DbSet.Count(query)
            });
        }
Ejemplo n.º 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));
        }
Ejemplo n.º 3
0
 public AttendanceResponse GetAllAttendances(AttendanceSearchRequest attendanceSearchRequest)
 {
     return(attendanceRepository.GetAllAttendances(attendanceSearchRequest));
 }
Ejemplo n.º 4
0
 public AttendanceWebViewModel()
 {
     data = new List <AttendanceWebModel>();
     AttendanceSearchRequest = new AttendanceSearchRequest();
     Employees = new List <EmployeeModel>();
 }