@page "/UserManagement"
@using Common.Dtos.User
@using Hushian.Application.Dtos
@using HushianWebApp.Components
@using HushianWebApp.Service
@using HushianWebApp.Services
@inject ILocalStorageService localStorageService;
@inject NavigationManager navigationManager;
@inject UserService userService;
@if (context.img?.Length != 0)
{
}
else
{
}
@context.UserName
@context.FullName
@context.Email
@*
@context.PhoneNumber
*@
@code {
private ConfirmDialog dialog = default!;
Dictionary parameters = new Dictionary();
Grid grid = default!;
private Modal modal = default!;
string title = "کارشناس جدید";
protected override async Task OnInitializedAsync()
{
parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBack));
if (!(await localStorageService.GetItem>("Role")).Any(a =>a== "HushianManagerCompany") )
navigationManager.NavigateTo("/NotFound");
await base.OnInitializedAsync();
}
private async Task> DataProvider(GridDataProviderRequest request)
{
var employees = await userService.GetExpersCompany(0, request.PageNumber, request.PageSize);
return await Task.FromResult(request.ApplyTo(employees != null ? employees.list : new()));
}
async Task CallBack()
{
await modal.HideAsync();
await grid.RefreshDataAsync();
}
private async Task OnRowClick(GridRowEventArgs args)
{
var editmodel = new EditUserFromUserDto()
{
Email = args.Item.Email,
FullName = args.Item.FullName,
UserName = args.Item.UserName,
img = args.Item.img
};
Dictionary eparameters = new Dictionary();
eparameters.Add("model", editmodel);
eparameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBack));
await modal.ShowAsync($"ویرایش کارشناس {args.Item.FullName}", parameters: eparameters);
}
private async Task SwitchChanged(HushianUserDto model,bool value)
{
if (model.Available != value)
{
if (await userService.ChangeAvailableExperFromManager(model.UserID, value))
model.Available = value;
}
}
private async Task DeleteExper(string ExperID,string name)
{
var confirmation = await dialog.ShowAsync(
title: $"مطمئنی میخوای {name} حذف کنی؟",
message1: "پس از حذف، نمیتوان آن را به حالت اولیه برگرداند.",
message2: "میخوای ادامه بدی؟",new ConfirmDialogOptions()
{
YesButtonColor=ButtonColor.Danger,
YesButtonText="بله",
NoButtonText="نه !"
});
if (!confirmation) return;
if (await userService.DeleteExperFromManager(ExperID))
await grid.RefreshDataAsync();
}
private string GetImageSource(byte[]? img)
{
if (img != null)
{
return $"data:image/jpeg;base64,{Convert.ToBase64String(img)}";
}
return string.Empty;
}
async Task showGroupsComponent(string ExperID, string name)
{
Dictionary eparameters = new Dictionary();
eparameters.Add("ExperID", ExperID);
modal.Size = ModalSize.Small;
await modal.ShowAsync($"گروه های کارشناس {name}", parameters: eparameters);
}
}