Exemple #1
0
        public async Task <IEnumerable <AttendanceTrendModel> > GetAttendanceStatisticsByClient(int clientId, int userId, int?placeId)
        {
            if (!await _permissionManager.HasPermission(clientId, userId, Permission.CanViewClientAdminDashboard))
            {
                throw new Exception("User has not permission to perform this operation");
            }

            var data = await _dashboardRepository.GetAttendanceStatisticsByClient(clientId, placeId);

            var totalPresentEmployees = data.Count();
            var todayDate             = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0);

            var list = new List <AttendanceTrendModel>();

            for (int i = 7; i > 0; i--)
            {
                var startDate = todayDate.AddDays(-i);
                var endDate   = todayDate.AddDays(-(i - 1));

                var dataCount = data.Where(a => a.AttendanceDate.Value >= startDate && a.AttendanceDate.Value < endDate).Count();

                var model = new AttendanceTrendModel();
                model.AttendanceTime = startDate.ToString("dd MMM");
                model.Attendance     = dataCount;
                list.Add(model);
            }

            return(list);
        }