@inherits LayoutComponentBase @using Common.Dtos.Exper @using HushianWebApp.Components @using HushianWebApp.Pages @using HushianWebApp.Pages.Manage @using HushianWebApp.Service @using HushianWebApp.Services @inject NavigationManager NavigationManager @inject ILocalStorageService localStorageService; @inject AuthService authService; @inject BaseController baseController; @inject UserService userService;
@Fullname
@TitleRole
@if (img != null && img.Length > 0) { placeholder } else { }
@if (isonline) { @if (isAuthorizedCompanyUser) { @Body } else {

دسترسی به شرکت برای شما یافت نشد

} }
@code { private Modal modal = default!; public string Info { get; set; } = ""; private string SelectedMenu = "page2"; public string Username { get; set; } public string Fullname { get; set; } public byte[]? img { get; set; } public string Role { get; set; } bool isonline = false; bool isAuthorizedCompanyUser = false; public string TitleRole { get; set; } = ""; protected override async Task OnInitializedAsync() { await CheckOnline(); if (isonline) { //Roles = await localStorageService.GetItem>("Role"); Username = await localStorageService.GetItem("Username"); Fullname = await localStorageService.GetItem("Fullname"); string UserID = await localStorageService.GetItem("UserID"); img = await localStorageService.GetItem("img"); } TitleRole = Role == "Company" ? "مدیر" : "کارشناس"; isAuthorizedCompanyUser = Role=="Company" || Role=="Exper" && await userService.CheckAvailableExperInCompany(); string route = NavigationManager.Uri.Replace(NavigationManager.BaseUri, "").ToLower(); if (route.Length > 0) { SelectedMenu = route switch { "conversation" => "page2", "usermanagement" => "page3", "groupmanagement" => "page4", "settings" => "page5", _ => "page1" }; } else SelectedMenu = "page1"; await base.OnInitializedAsync(); } async Task OnCliclLogout() { await authService.Logout(); NavigationManager.NavigateTo("/login"); } private async Task ChangePasword() { var parameters = new Dictionary(); parameters.Add("Username", Username); await modal.ShowAsync(title: "تغییر رمز عبور", parameters: parameters); } private async Task Settings() { var parameters = new Dictionary(); await modal.ShowAsync(title: "تنظیمات شرکت", parameters: parameters); } private async Task EditCurrentUser() { var parameters = new Dictionary(); parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBack)); await modal.ShowAsync(title: $"ویرایش کاربر {Username}", parameters: parameters); } async Task CallBack(Update_ExperDto edit) { await modal.HideAsync(); // await localStorageService.RemoveItem("img"); // await localStorageService.SetItem("img", img); Fullname = edit.FullName; await localStorageService.RemoveItem("Fullname"); await localStorageService.SetItem("Fullname", Fullname); } private void SetActiveMenu(string menu) { SelectedMenu = menu; if (menu == "page1") NavigationManager.NavigateTo("/"); else if (menu == "page2") NavigationManager.NavigateTo("/Conversation"); else if (menu == "page3") NavigationManager.NavigateTo("/UserManagement"); else if (menu == "page4") NavigationManager.NavigateTo("/GroupManagement"); else if (menu == "page5") NavigationManager.NavigateTo("/Settings"); } async Task CheckOnline() { var token = await localStorageService.GetItem("C/key"); if (string.IsNullOrEmpty(token)) { isonline = false; NavigationManager.NavigateTo("/login"); } else { await baseController.RemoveToken(); await baseController.SetToken(token); if (!await authService.IsOnline()) { await baseController.RemoveToken(); isonline = false; NavigationManager.NavigateTo("/login"); } else { Role = await localStorageService.GetItem("C/Role"); if (Role=="User") { isonline = false; NavigationManager.NavigateTo("/NotFound"); } else isonline = true; } } } private string GetImageSource() { if (img != null && img.Length > 0) { return $"data:image/jpeg;base64,{Convert.ToBase64String(img)}"; } return "/defprofile.jpg"; } } @code { Sidebar sidebar = default!; IEnumerable? navItems; private async Task SidebarDataProvider(SidebarDataProviderRequest request) { if (navItems is null) navItems = GetNavItems(); return await Task.FromResult(request.ApplyTo(navItems)); } private IEnumerable GetNavItems() { navItems = new List { // new NavItem { Href = "/", IconName = IconName.HouseDoorFill, Text = "خانه"}, // new NavItem { Href = "/Conversation", IconName = IconName.ChatText, Text = " گفتگو ها"}, new NavItem { Href = "/", IconName = IconName.ChatText, Text = " گفتگو ها"}, new NavItem { Href = "/UserManagement", IconName = IconName.PersonBoundingBox, Text = " مدیریت کاربران"}, new NavItem { Href = "/GroupManagement", IconName = IconName.Grid1X2, Text = " مدیریت گروه ها"}, new NavItem { Href = "/Settings", IconName = IconName.Hammer, Text = " تنظیمات"}, }; return navItems; } private void ToggleSidebar() => sidebar.ToggleSidebar(); }