Exemple #1
0
        public Task <AdminListByLocationDto> GetUserListByLocation(int locationId, GetAdminListParameters parameters)
        {
            var users = _context.UserLocationAssignments
                        .Include(x => x.Status)
                        .Include(x => x.UserModel)
                        .ThenInclude(x => x.UserKeyMappings)
                        .Include(x => x.UserPermission)
                        .Where(x => x.LocationId == locationId);
            var count    = users.CountAsync();
            var enumtype = typeof(statusCode);
            List <AdminListItem> userList = users.Select(x => new AdminListItem()
            {
                id             = x.UserModel.UserID,
                name           = x.UserModel.Name,
                email          = x.UserModel.Email,
                state          = Enum.GetName(enumtype, x.State),
                disabledReason = x.DisabledReason,
                status         = new Dictionary <string, string>
                {
                    { "id", x.StatusId.ToString() },
                    { "name", x.Status.Name }
                },
                toolkitInfo    = _mapper.Map <ToolkitInfoDto>(x.UserModel.UserKeyMappings.FirstOrDefault(x => x.LocationId == locationId)),
                permissions    = _mapper.Map <UserPermissionCompactDto>(x.UserPermission),
                recentActivity = _mapper.Map <UserActivityCompactDto>(x.UserModel.UserActivities.FirstOrDefault(x => x.LocationId == locationId)),
            }).ToList();
            var result = new AdminListByLocationDto()
            {
                totalItems = count.Result,
                items      = userList,
            };

            return(Task.FromResult(result));
        }
Exemple #2
0
        public async Task <IActionResult> getAdminLocationInfo([FromRoute] int locationId, [FromQuery] GetAdminListParameters parameters)
        {
            if (!(await _authorizationService
                  .AuthorizeAsync(User, locationId, Operations.ReadEdit)).Succeeded)
            {
                return(Forbid());
            }

            var list = await _repository.GetUserListByLocation(locationId, parameters);

            return(Ok(list));
        }