@using Components @using Newtonsoft.Json @using Models.Identity @inject ILoadingSpinner _LoadingSpinner @inherits LayoutComponentBase
@*Top Header*@
@*end of Top Header*@
@Body
@*Footer*@

داشبورد

دعوی جدید

پروفایل
@*End Of Footer*@
@code { public int MenuWidth { set; get; } = 0; public bool ShowMenu { set; get; } = false; public bool MenuIsChanging { set; get; } = false; protected async Task ToggleMenu(bool close = false) { if (MenuIsChanging) return; MenuIsChanging = true; if (close) { Console.WriteLine("closing menu"); while (MenuWidth > 0) { MenuWidth = Math.Max(MenuWidth -= 2, 0); StateHasChanged(); await Task.Delay(5); } MenuIsChanging = false; return; } else { Console.WriteLine("opening menu"); while (MenuWidth < 60) { Console.WriteLine(MenuWidth); MenuWidth = Math.Min(MenuWidth += 2, 60); StateHasChanged(); await Task.Delay(5); } MenuIsChanging = false; } } protected override async void OnAfterRender(bool firstRender) { if (firstRender) await CheckLogin(); base.OnAfterRender(firstRender); NavManager.LocationChanged += HideMenu; } private void HideMenu(object sender, LocationChangedEventArgs e) { MenuWidth = 0; StateHasChanged(); } async Task CheckLogin() { Console.WriteLine("" + Statics.LastCheck); if (Statics.LastCheck.HasValue && DateTime.Now.Subtract(Statics.LastCheck.Value).TotalMinutes < 5) { Console.WriteLine("less than 5 minutes login check"); base.OnInitialized(); return; } Console.WriteLine("checking login..."); Statics.LastCheck = DateTime.Now; var hasToken = await LocalStorage.ContainKeyAsync(Statics.LoginTokenKey); if (!hasToken) NavManager.NavigateTo("/"); else { var token = await LocalStorage.GetItemAsStringAsync(Statics.LoginTokenKey); var res = await _userUtils.CheckLogin(); if (res.StatusCode == System.Net.HttpStatusCode.Unauthorized) { var refreshRes = await _userUtils.RefreshToken(new RefreshTokenModel { Token = token }); if (refreshRes.IsSuccessStatusCode) { var newToken = JsonConvert.DeserializeObject(await refreshRes.Content.ReadAsStringAsync()); Statics.LoginTokenKey = newToken.AccessToken; Statics.RefreshTokenKey = newToken.RefreshToken; await LocalStorage.SetItemAsync(Statics.LoginTokenKey, Statics.LoginTokenKey); await LocalStorage.SetItemAsync(Statics.RefreshTokenKey, Statics.RefreshTokenKey); } } if (!res.IsSuccessStatusCode) { await _LoadingSpinner.HideLoading(); await _sweetAlertService.ShowSwal(title: "", message: "نشست منقضی شد،لطفا مجددا وارد شوید", SweetAlertIcon.Error); NavManager.NavigateTo("/login"); } else { var result = JsonConvert.DeserializeObject( await res.Content.ReadAsStringAsync()); Statics.CurrentLoginInfo = result; } await _LoadingSpinner.HideLoading(); StateHasChanged(); } } private async void SignOut() { await LocalStorage.RemoveItemAsync(Statics.LoginTokenKey); await LocalStorage.RemoveItemAsync(Statics.RefreshTokenKey); NavManager.NavigateTo("/login"); } }