@page "/UserManagement" @using Common.Dtos.Exper @using HushianWebApp.Components @using HushianWebApp.Service @using HushianWebApp.Services @inject ILocalStorageService localStorageService; @inject NavigationManager navigationManager; @inject UserService userService; @context.UserName @context.FullName @code { private ConfirmDialog dialog = default!; Dictionary parameters = new Dictionary(); Grid grid = default!; public List list = new(); private Modal modal = default!; string title = "کارشناس جدید"; protected override async Task OnInitializedAsync() { parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBack)); if (await localStorageService.GetItem("C/Role")!= "Company" ) navigationManager.NavigateTo("/NotFound"); await base.OnInitializedAsync(); } private async Task> DataProvider(GridDataProviderRequest request) { if (list.Count <= 0) list = await userService.GetExpersCompany(); int skip = (request.PageNumber - 1) * request.PageSize; return await Task.FromResult(request.ApplyTo(list != null ? list.Skip(skip).Take(request.PageSize).ToList() : new())); } async Task CallBack() { await modal.HideAsync(); await grid.RefreshDataAsync(); } private async Task OnRowClick(GridRowEventArgs args) { var editmodel = new Update_ExperDto() { FullName = args.Item.FullName }; Dictionary eparameters = new Dictionary(); eparameters.Add("model", editmodel); eparameters.Add("ExperID", args.Item.ID); eparameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBack)); await modal.ShowAsync($"ویرایش کارشناس {args.Item.FullName}", parameters: eparameters); } private async Task SwitchChanged(Read_ExperDto model, bool value) { if (model.Available != value) { if (await userService.ChangeAvailableExperFromManager(model.ID, value)) model.Available = value; } } private async Task DeleteExper(int 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(int ExperID, string name) { Dictionary eparameters = new Dictionary(); eparameters.Add("ExperID", ExperID); modal.Size = ModalSize.Small; await modal.ShowAsync($"گروه های کارشناس {name}", parameters: eparameters); } }