@page "/Admin/Teacher/Teacher" @inject Blazored.SessionStorage.ISessionStorageService sessionStorage @inherits ListBase @using Syncfusion.Blazor.Grids; @using Syncfusion.Blazor.Buttons; @using Syncfusion.Blazor.Spinner; @using Syncfusion.Blazor.Notifications; @using BlazorApp.Helper @using BWPMModels; @using BlazorApp.Controller;

Lehrer

@* *@ @**@ @* *@ @* *@
@code { SfToast ToastObj; private string ToastPosition = "Right"; private string ToastContent = "Daten erfolgreich gespeichert"; private ToastEffect ShowAnimation = ToastEffect.FadeIn; private ToastEffect HideAnimation = ToastEffect.FadeOut; } @code{ private DialogSettings DialogParams = new DialogSettings { Width = "450px", Height = "750px" }; SfGrid Grid { get; set; } public List GridData { get; set; } public List Lehrers { get; set; } public List TmpLehrer { get; set; } public List Users { get; set; } public List Schulhaus { get; set; } string userid = ""; public static int? pkey { get; set; } public bool Initial { get; set; } = true; public bool ContinuePaging = true; public bool InitialRender { get; set; } public int Value = 0; // consider that value your querystring contains public int foundrow = 0; protected override void OnInitialized() { /// GridData = OrdersDetails.GetAllRecords(); GridData = BlazorApp.Controller.LehrerController.GetAllData(); Schulhaus = BlazorApp.Controller.SchulhausController.GetAllData(); } protected override async Task OnAfterRenderAsync(bool firstRender) { userid = await sessionStorage.GetItemAsync("UserID"); if (userid == null) { var authState = await authenticationStateTask; var userId = authState.User.Claims.FirstOrDefault().Value; var user = authState.User; if (user.Identity.IsAuthenticated) { await sessionStorage.SetItemAsync("UserID", userId); } else { await sessionStorage.SetItemAsync("UserID", userId); } } } private async Task OnBeginHandler(ActionEventArgs Args) { if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save) { if (Args.Action == "Add") { Users = BlazorApp.Controller.AspNetUsersController.GetByUserName(Args.Data.email); if (Users.Count !=0) { Args.Cancel = true; ToastObj.CssClass = "e-toast-danger"; ToastContent = "Ein Benutzer mit der gleichen E-Mailadresse ist bereits vorhanden."; StateHasChanged(); ToastObj.ShowAsync(); // Grid.Refresh(); return; } else { Args.Data.erstellt_am = DateTime.Now; Args.Data.mutierer = userid; Args.Data.mutiert_am = DateTime.Now; Args.Data.aktiv = true; Args.Data.ID = BlazorApp.Controller.LehrerController.POST(Args.Data); Value = Args.Data.ID; } } else { TmpLehrer = BlazorApp.Controller.LehrerController.GetByEMail(Args.Data.email); if (TmpLehrer.Count > 1) { Args.Cancel = true; ToastObj.CssClass = "e-toast-danger"; ToastContent = "Die eingegebene Mail-Aadresse wird bereits verwendet."; StateHasChanged(); ToastObj.ShowAsync(); // Grid.Refresh(); return; } Args.Data.mutierer = userid.ToString(); Args.Data.mutiert_am = DateTime.Now; BlazorApp.Controller.LehrerController.PUT(Args.Data); ToastObj.CssClass = "e-toast-success"; ToastContent = "Daten erfolgreich gespeichert"; StateHasChanged(); ToastObj.ShowAsync(); } } } public async Task OnCompletedHandler(ActionEventArgs Args) { if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save) { await Grid.SetRowData(Args.Data.ID, Args.Data); double xx = 0; Value = Args.Data.ID; xx = await DataHandler(); await Grid.SelectRow(xx); } } public async void RowDataBoundHandler(BeforeDataBoundArgs args) { if (!Initial) { //await Task.Delay(100); //var Idx = await this.Grid.GetRowIndexByPrimaryKey(Convert.ToDouble(Value)); //get index value //this.Grid.SelectRow(Convert.ToDouble(Idx)); } Initial = false; } public async Task DataHandler() { var PageCount = (GridData.Count / Grid.PageSettings.PageSize) + 1; ContinuePaging = true; var CurrentPage = 1; Grid.Refresh(); await Grid.GoToPage(1); for (int i = 1; i <= PageCount; i++) { List Rows = await Grid.GetCurrentViewRecords(); // returns the current view data for (int j = 0; j < Grid.PageSettings.PageSize; j++) { if (j < Rows.Count && Rows[j].ID == Value) { foundrow = j; ContinuePaging = false; // prevent the default navigation break; } } if (ContinuePaging) { if (i >= PageCount) { i = 0; } await Grid.GoToPage(i + 1); } else { return foundrow; } } return foundrow; } public void CommandClickHandler(CommandClickEventArgs args) { if (args.CommandColumn.Title == "Lehrer-Daten") { NavigationManager.NavigateTo("/Teacher/TeacherContact/" + args.RowData.ID.ToString()); } if (args.CommandColumn.Title == "Schüler-Daten") { NavigationManager.NavigateTo("/Teacher/TeacherStudent/" + args.RowData.ID.ToString()); } if (args.CommandColumn.Title=="Berufsangebot"){ NavigationManager.NavigateTo("/Company/Berufsangebot/" + args.RowData.ID.ToString()); } if (args.CommandColumn.Title=="Ansprechperson"){ NavigationManager.NavigateTo("/Company/CompanyContact/" + args.RowData.ID.ToString()); } //Perform your custom command button click operation here. And also with the value in “args” you can differentiate the buttons, if having multiple custom command buttons. } }