Доступ к странице осуществляется с помощью -
Код: Выделить всё
[*]
User List
Код: Выделить всё
public async Task UserList()
{
List users = await _userListControllerHelper.MapToViewModel(_context);
return View(users);
}
Код: Выделить всё
public async Task[*]> MapToViewModel(ApplicationDbContext context)
{
if (context == null) throw new ArgumentNullException(nameof(context));
List model = new List();
foreach (var user in context.Users)
{
var userDetails = new UserListViewModel();
userDetails.Username = user.UserName ?? string.Empty;
var roles = await _userManager.GetRolesAsync(user);
foreach (var role in roles)
{
userDetails.Role += role;
}
userDetails.Email = user.Email ?? string.Empty;
IEnumerable usersHospitals = _usersHosptialRepository.GetHospitalIdsFromUserId(user.Id);
userDetails.UsersHospitalId = usersHospitals is not null ? usersHospitals.FirstOrDefault().id : 0;
userDetails.Hospital = usersHospitals is not null ? _lookupRepository.EnabledHospitals().FirstOrDefault(x => x.HospitalId == usersHospitals.FirstOrDefault().HospitalId).Hospital : string.Empty;
userDetails.HasEmailBeenConfirmed = user.EmailConfirmed;
userDetails.IsLockedOut = user.LockoutEnabled && (user.LockoutEnd is not null && user.LockoutEnd > DateTime.Now);
model.Add(userDetails);
}
return model.ToList();
}
Код: Выделить всё
@model IEnumerable
@section breadcrumb{
[list]
User List
[/list]
}
@if (TempData["AlertMessage"] != null)
{
@TempData["alertMessage"]
}
Register New User
List of Active Users[/b][b]
Username[/b][b] User Email[/b][b] User Email Confirmed[/b][b] User Role[/b][b] User Location[/b][b] Actions[/b][b]
@if (Model != null)
{
@foreach (var item in Model)
{
@if (!item.IsLockedOut)
{
@item.Username
@item.Email
@item.HasEmailBeenConfirmed
@if (!item.HasEmailBeenConfirmed)
{
Resend
}
@Html.DisplayFor(modelItem => item.Role)
@Html.DisplayFor(modelItem => item.Hospital)
Edit User
Lock User
Delete User
}
}
}
List of Locked Out Users[/b][b]
Username[/b][b] User Role[/b][b] User Email[/b][b] User Location[/b][b] Actions[/b]
@if (Model != null)
{
@foreach (var item in Model)
{
@if (item.IsLockedOut)
{
@item.Username
@item.Role
@item.Email
@item.Hospital
Unlock User
Delete User
}
}
}
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
$(document).on('click', '.lockUnlockOrDeleteUser', (event) => {
event.preventDefault();
if (confirm("Are you sure you want to " + event.target.dataset.type + " this user?: " + event.target.dataset.id)) {
$.ajax({
url: '@Url.Action("LockUnlockOrDeleteUser", "UserList")',
type: 'POST',
data: { userEmail: event.target.dataset.id, type: event.target.dataset.type },
})
.done(function (response) {
switch (response.succeeded) {
case false:
alert("Failed to " + event.target.dataset.type + " user, please contact FNSD administration for help.");
break;
case true:
alert("User successfully " + event.target.dataset.type + "ed");
var urlToRedirect = '@Url.Action("userlist", "userlist")';
window.location.href = urlToRedirect;
break;
default:
alert(JSON.stringify(response) + ": Please contact FNSD administration for help.");
}
})
.fail(function (jqXHR, textStatus, errorThrown) {
alert("AJAX request failed: " + errorThrown + ": Please contact FNSD administration for help.");
});
};
});
}
Любая помощь будет принята с благодарностью.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -redirects
Мобильная версия