@page "/Company/Berufsangebot"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits Admin.ListBase;
@using System.ComponentModel.DataAnnotations
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Spinner;
@using Syncfusion.Blazor.Navigations;
@using Syncfusion.Blazor.Popups;
@using Syncfusion.Blazor.DropDowns
@using Syncfusion.Blazor.Lists
@using Syncfusion.Blazor.Inputs;
@using BlazorApp.Helper
@using BWPMModels;
Berufsangebot
(Bitte erfassen Sie Ihr Berufsangebot)
Berufe
Ansprechperson
Zeiten
Plätze
Bemerkung
Hinweis für den Schüler
Hinweis zum Standortler
Ihr Angebot
Angaben sind unvollständig
@((MarkupString)this.message)
@code {
public string fid { get; set; } = "";
public string[] BerufID;
public string[] AnsprechpartnerID;
public string[] ZeitID;
public string PlatzID = "1";
public string KlassenTypID = "1";
public string bemerkung { get; set; } = "";
public string schuelerbemerkung { get; set; } = "";
public string standortbemerkung { get; set; } = "";
public bool ShowDialog = false;
string message = "";
SfListBox Berufsliste { get; set; }
SfGrid Grid { get; set; }
string userid = "";
static string firmaid = "";
public List berufe = new List();
public List _berufe { get; set; } = BlazorApp.Controller.BerufController.GetAllAktiveData();
public List zeiten = new List();
public List _zeiten { get; set; } = BlazorApp.Controller.ZeitenController.GetAllAktiveData();
public List ansprechpartner { get; set; }
public List klassentyp { get; set; } = BlazorApp.Controller.KlassentypController.GetAllAktiveData();
public List Firmendaten { get; set; }
public List lap = new List();
public List plaetze = new List();
public List GridData { get; set; }
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 async Task OnInitializedAsync()
{
foreach (BWPMModels.Beruf item in _berufe)
{
Beruf be = new Beruf();
be.id = item.ID;
be.bezeichnung = item.bezeichnung;
berufe.Add(be);
}
foreach (BWPMModels.Zeiten item in _zeiten)
{
Zeit ze = new Zeit();
ze.id = item.ID;
ze.bezeichnung = item.bezeichnung;
zeiten.Add(ze);
}
firmaid = await sessionStorage.GetItemAsync("FirmaID");
get_ansprechaprtner(firmaid);
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender != true) { return; };
userid = await sessionStorage.GetItemAsync("UserID");
if (userid == null)
{
var authState = await authenticationStateTask;
userid = authState.User.Claims.FirstOrDefault().Value;
var user = authState.User;
}
firmaid = await sessionStorage.GetItemAsync("FirmaID");
if (firmaid == null)
{
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
firmaid = Firmendaten.First().ID.ToString();
}
try
{
GridData = BlazorApp.Controller.FirmaberufController.GetAllAktiveByFirmaID(Convert.ToInt32(firmaid));
get_ansprechaprtner(firmaid);
}
catch { };
await Task.Delay(200);
try
{
await sessionStorage.SetItemAsync("FirmaID", firmaid);
await sessionStorage.SetItemAsync("UserID", userid);
}
catch { }
for (int i = 1; i < 51; i++)
{
plaetze.Add(new Plaetze { id = i, text = i.ToString() });
}
PlatzID = "1";
KlassenTypID = "1";
}
private void get_ansprechaprtner(string firmaid)
{
if (firmaid=="") {return;};
lap.Clear();
ansprechpartner = BlazorApp.Controller.AnsprechpartnerController.GetAllAktivDataByFirmaID(Convert.ToInt32(firmaid));
foreach (Ansprechpartner item in ansprechpartner)
{
AP a1 = new AP();
a1.ID = item.ID;
a1.name = item.name;
lap.Add(a1);
}
}
public class AP
{
public int ID { get; set; }
public string name { get; set; }
}
public class Plaetze
{
public int id { get; set; }
public string text { get; set; }
}
public class Beruf
{
public int id { get; set; }
public string bezeichnung { get; set; }
}
public class Zeit
{
public int id { get; set; }
public string bezeichnung { get; set; }
}
private void CloseDialog()
{
this.ShowDialog = false;
}
public void einfuegen()
{
message = "";
int bid = 0;
int aid = 0;
int zid = 0;
int pid = 0;
int kid = 0;
try { bid = Convert.ToInt32(BerufID[0]); } catch { };
try { aid = Convert.ToInt32(AnsprechpartnerID[0]); } catch { };
try { zid = Convert.ToInt32(ZeitID[0]); } catch { };
try { pid = Convert.ToInt32(PlatzID); } catch { };
try { kid = Convert.ToInt32(KlassenTypID); } catch { };
if (bid == 0) { message += "- Bitte einen Beruf auswählen
"; };
if (aid == 0) { message += "- Bitte einen Ansprechpartner auswählen
"; };
if (zid == 0) { message += "- Bitte einen Zeit auswählen
"; };
if (pid == 0) { message += "- Bitte Anzahl Plätze auswählen
"; };
if (kid == 0) { message += "- Bitte Klassentyp auswählen
"; };
if (message != "")
{
this.ShowDialog = true;
return;
}
BWPMModels.Firmaberuf fb = new BWPMModels.Firmaberuf();
fb.firmaID = Convert.ToInt32(firmaid);
fb.berufID = bid;
fb.ansprechpartnerID = aid;
fb.zeitID = zid;
fb.anzahl = pid;
fb.klassetypID = kid;
fb.erstellt_am = DateTime.Now;
fb.mutiert_am = DateTime.Now;
fb.aktiv = true;
fb.mutierer = userid;
fb.bemerkung = bemerkung;
fb.schuelerbemerkung = schuelerbemerkung;
fb.standortbemerkung = standortbemerkung;
BlazorApp.Controller.FirmaberufController.POST(fb);
GridData = BlazorApp.Controller.FirmaberufController.GetAllAktiveByFirmaID(Convert.ToInt32(firmaid));
Grid.Refresh();
}
private async Task OnBeginHandler(ActionEventArgs Args)
{
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
{
if (Args.Action == "Add")
{
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.FirmaberufController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.FirmaberufController.PUT(Args.Data);
}
}
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Delete)
{
Args.Data.aktiv = false;
Args.Data.mutierer = userid;
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.FirmaberufController.PUT(Args.Data);
}
}
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)
{
}
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;
}
}