Update 07082021

This commit is contained in:
2021-08-07 09:44:37 +02:00
parent 1ff218a129
commit 4d443fdfd4
5663 changed files with 6581858 additions and 1321 deletions

View File

@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "5.0.8",
"commands": [
"dotnet-ef"
]
}
}
}

35
BlazorApp/.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,35 @@
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/BlazorApp.dll",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}

42
BlazorApp/.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,42 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/BlazorApp.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/BlazorApp.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"${workspaceFolder}/BlazorApp.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
}

View File

@@ -16,22 +16,23 @@
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="Input.Email"></label>
<input asp-for="Input.Email" class="form-control" value="info@shub.ch" />
<input asp-for="Input.Email" class="form-control" value="hutter@shub.ch" />
<span asp-validation-for="Input.Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.Password"></label>
<input asp-for="Input.Password" class="form-control" value="Admin*123" />
@* <input asp-for="Input.Password" class="form-control" value="Admin*123" />
*@ <input asp-for="Input.Password" class="form-control" value="b" />
<span asp-validation-for="Input.Password" class="text-danger"></span>
</div>
@*<div class="form-group">
<div class="form-group">
<div class="checkbox">
<label asp-for="Input.RememberMe">
<input asp-for="Input.RememberMe" />
@Html.DisplayNameFor(m => m.Input.RememberMe)
</label>
</div>
</div>*@
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Log in</button>
</div>

View File

@@ -60,6 +60,16 @@ namespace BlazorApp.Areas.Identity.Pages.Account
public async Task OnGetAsync(string returnUrl = null)
{
string autologin = "";
Helper.ParameterHelper ph = new Helper.ParameterHelper();
autologin = ph.GetParameter("autologin");
if (autologin == "true")
{
await AutoLogin(returnUrl);
returnUrl = returnUrl ?? Url.Content("~/");
ReturnUrl = returnUrl;
Response.Redirect(returnUrl);
}
if (!string.IsNullOrEmpty(ErrorMessage))
{
ModelState.AddModelError(string.Empty, ErrorMessage);
@@ -109,5 +119,31 @@ namespace BlazorApp.Areas.Identity.Pages.Account
// If we got this far, something failed, redisplay form
return Page();
}
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> AutoLogin(string returnUrl)
{
if (ModelState.IsValid)
{
string EMail = "info@shub.ch";
string Password = "Admin*123";
Helper.ParameterHelper ph = new Helper.ParameterHelper();
EMail = ph.GetParameter("autologin_user");
Password = ph.GetParameter("autologin_pw");
var result = await _signInManager.PasswordSignInAsync(EMail, Password, false, lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
returnUrl = returnUrl ?? Url.Content("~/");
return LocalRedirect(returnUrl);
}
}
return BadRequest();
}
}
}

View File

@@ -0,0 +1,71 @@
@page
@model RegisterComapnyModel
@{
ViewData["Title"] = "Registrierung als Lehrperson";
}
<h1>@ViewData["Title"]</h1>
<div class="card shadow-lg p-3 mb-5 bg-white rounded">
<div class="row">
<div class="col-md-4">
<form asp-route-returnUrl="@Model.ReturnUrl" method="post">
<h4>Neues Konto erstellen</h4>
<hr />
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="Input.Email"></label>
<input asp-for="Input.Email" class="form-control" />
<span asp-validation-for="Input.Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.Password"></label>
<input asp-for="Input.Password" class="form-control" />
<span asp-validation-for="Input.Password" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.ConfirmPassword"></label>
<input asp-for="Input.ConfirmPassword" class="form-control" />
<span asp-validation-for="Input.ConfirmPassword" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary">Register</button>
</form>
</div>
<div class="col-md-6 col-md-offset-2">
<section>
<h4>Ablauf</h4>
<hr />
@{
if ((Model.ExternalLogins?.Count ?? 0) == 0)
{
<div>
<p>
Nach der Registrierung erhalten Sie ein E-Mail um Ihr Konto zu bestätigen.
</p>
<p>
Nach der Bestätigung können Sie Ihre Daten verwalten.
</p>
</div>
}
else
{
<form id="external-account" asp-page="./ExternalLogin" asp-route-returnUrl="@Model.ReturnUrl" method="post" class="form-horizontal">
<div>
<p>
@foreach (var provider in Model.ExternalLogins)
{
<button type="submit" class="btn btn-primary" name="provider" value="@provider.Name" title="Log in using your @provider.DisplayName account">@provider.DisplayName</button>
}
</p>
</div>
</form>
}
}
</section>
</div>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}

View File

@@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Text.Encodings.Web;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
namespace BlazorApp.Areas.Identity.Pages.Account
{
[AllowAnonymous]
public class RegisterTeacherModel : PageModel
{
private readonly SignInManager<IdentityUser> _signInManager;
private readonly UserManager<IdentityUser> _userManager;
private readonly ILogger<RegisterModel> _logger;
private readonly IEmailSender _emailSender;
public RegisterTeacherModel(
UserManager<IdentityUser> userManager,
SignInManager<IdentityUser> signInManager,
ILogger<RegisterModel> logger,
IEmailSender emailSender)
{
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
_emailSender = emailSender;
}
[BindProperty]
public InputModel Input { get; set; }
public string ReturnUrl { get; set; }
public IList<AuthenticationScheme> ExternalLogins { get; set; }
public class InputModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public async Task OnGetAsync(string returnUrl = null)
{
ReturnUrl = returnUrl;
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var user = new IdentityUser { UserName = Input.Email, Email = Input.Email };
var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded)
{
_logger.LogInformation("User created a new account with password.");
await _userManager.AddToRoleAsync(user, "Lehrer");
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
var callbackUrl = Url.Page(
"/Account/ConfirmEmail",
pageHandler: null,
values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
protocol: Request.Scheme);
BlazorApp.Helper.ParameterHelper ph = new BlazorApp.Helper.ParameterHelper();
string smtpserver = ph.GetParameter("smtpserver");
string smtpuser = ph.GetParameter("smtpuser");
string smtppw = ph.GetParameter("smtppw");
string smtpport = ph.GetParameter("smtpport");
BlazorApp.Helper.EmailSender esend = new BlazorApp.Helper.EmailSender(smtpserver, Convert.ToInt32(smtpport), true, smtpuser, smtppw);
await esend.SendEmailAsync(Input.Email,"BWPM: Registrierungsbestätigung",
$"Sie haben sich beim Berufswahlparcours registriert. Bitte bestätigen Sie Ihre Registrierung über den folgenden Link_ <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>Registrierung Bestägigen</a>.");
//await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
// $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
if (_userManager.Options.SignIn.RequireConfirmedAccount)
{
return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
}
else
{
await _signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl);
}
}
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}
// If we got this far, something failed, redisplay form
return Page();
}
}
}

View File

@@ -3,18 +3,23 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>b42c85b7-be12-4985-a19a-d4d5d80d37fb</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Blazored.SessionStorage" Version="1.0.13" />
<PackageReference Include="FastReport.Core" Version="2021.3.17" />
<PackageReference Include="FastReport.Web" Version="2021.3.17" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.15" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.15" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.15" />
<PackageReference Include="Microsoft.AspNetCore.ProtectedBrowserStorage" Version="0.1.0-alpha.19521.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.15">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.14" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" />
<PackageReference Include="Radzen.Blazor" Version="3.6.7" />
<PackageReference Include="Syncfusion.Blazor" Version="19.1.0.54" />

View File

@@ -10,6 +10,7 @@
<RazorPage_SelectedScaffolderCategoryPath>root/Common/RazorPage</RazorPage_SelectedScaffolderCategoryPath>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
<NameOfLastUsedPublishProfile>E:\Software-Projekte\Lehrlingsparcours\Core\BWPM\BlazorApp\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>

View File

@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AnredeController : ControllerBase
{
public static List<Anrede> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Anrede", false, true);
return dbh.ConvertDataTable<Anrede>(dbh.dsdaten.Tables[0]);
}
public static List<Anrede> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Anrede where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Anrede>(dbh.dsdaten.Tables[0]);
}
public static List<Anrede> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Anrede order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Anrede>(dbh.dsdaten.Tables[0]);
}
public static List<Anrede> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Anrede where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Anrede>(dbh.dsdaten.Tables[0]);
}
public static List<Anrede> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Anrede>(dbh.dsdaten.Tables[0]);
}
public static int POST(Anrede Anrededata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Anrede] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Anrededata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Anrededata, null);
}
else
{
dr[f.Name] = f.GetValue(Anrededata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Anrede> tmplst = GetLastByMutierer(Anrededata.mutierer);
return tmplst.First<Anrede>().ID;
}
public static void PUT(Anrede Anrededata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Anrede] where id=" + Anrededata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Anrededata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Anrededata, null);
}
else
{
dr[f.Name] = f.GetValue(Anrededata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Anrede Anrededata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Anrede] where id=" + Anrededata.ID.ToString(), false, true);
}
}
}

View File

@@ -1,39 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AspNetRolesController
public class AspNetRolesController : ControllerBase
{
public static List<AspNetRoles> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetRoles", "", "GET", null);
return JsonConvert.DeserializeObject<List<AspNetRoles>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetRoles", false, true);
return dbh.ConvertDataTable<AspNetRoles>(dbh.dsdaten.Tables[0]);
}
public static void savedata(BWPMModels.AspNetRoles AspNetRolesdata)
public static List<AspNetRoles> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetRoles", AspNetRolesdata.Id.ToString(), "PUT", AspNetRolesdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetRoles where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<AspNetRoles>(dbh.dsdaten.Tables[0]);
}
public static int InsertData(BWPMModels.AspNetRoles AspNetRolesdata)
public static List<AspNetRoles> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetRoles", "", "POST", AspNetRolesdata);
List<BWPMModels.AspNetRoles> LastAspNetRoles = new List<BWPMModels.AspNetRoles>();
return 0;
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetRoles order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetRoles>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetRoles> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetRoles where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetRoles>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetRoles> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<AspNetRoles>(dbh.dsdaten.Tables[0]);
}
public static void POST(AspNetRoles AspNetRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetRoles] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
AspNetRolesdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetRolesdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetRolesdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
}
public static void PUT(AspNetRoles AspNetRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetRoles] where id=" + AspNetRolesdata.Id.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
AspNetRolesdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetRolesdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetRolesdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(AspNetRoles AspNetRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [AspNetRoles] where id=" + AspNetRolesdata.Id.ToString(), false, true);
}
}
}
}

View File

@@ -1,49 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AspNetUserRolesController
public class AspNetUserRolesController : ControllerBase
{
public static List<AspNetUserRoles> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRoles", "", "GET", null);
return JsonConvert.DeserializeObject<List<BWPMModels.AspNetUserRoles>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUserRoles", false, true);
return dbh.ConvertDataTable<AspNetUserRoles>(dbh.dsdaten.Tables[0]);
}
public static void savedata(BWPMModels.AspNetUserRoles AspNetUserRolesdata)
public static List<AspNetUserRoles> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRoles", AspNetUserRolesdata.UserId.ToString(), "PUT", AspNetUserRolesdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUserRoles where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<AspNetUserRoles>(dbh.dsdaten.Tables[0]);
}
public static int InsertData(BWPMModels.AspNetUserRoles AspNetUserRolesdata)
public static List<AspNetUserRoles> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRoles", "", "POST", AspNetUserRolesdata);
List<BWPMModels.AspNetUserRoles> LastAspNetUserRoles = new List<AspNetUserRoles>();
return 0;
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUserRoles order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUserRoles>(dbh.dsdaten.Tables[0]);
}
public static void deletdata(BWPMModels.AspNetUserRoles aspNetUserRolesData)
public static List<AspNetUserRoles> GetLastByMutierer(string Mutierer)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRoles", "", "DELETE", aspNetUserRolesData);
List<BWPMModels.AspNetUserRoles> LastAspNetUserRoles = new List<AspNetUserRoles>();
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUserRoles where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUserRoles>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUserRoles> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<AspNetUserRoles>(dbh.dsdaten.Tables[0]);
}
public static void POST(AspNetUserRoles AspNetUserRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUserRoles] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
AspNetUserRolesdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUserRolesdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUserRolesdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
}
public static void PUT(AspNetUserRoles AspNetUserRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUserRoles] where userid='" + AspNetUserRolesdata.UserId.ToString()+"'", false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
AspNetUserRolesdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUserRolesdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUserRolesdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(AspNetUserRoles AspNetUserRolesdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [AspNetUserRoles] where id=" + AspNetUserRolesdata.UserId.ToString(), false, true);
}
}
}
}

View File

@@ -1,37 +1,121 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AspNetUserRolleController
public class AspNetUserRolleController : ControllerBase
{
public static List<AspNetUserRolle> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRolle", "", "GET", null);
return JsonConvert.DeserializeObject<List<AspNetUserRolle>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUserRolle", false, true);
return dbh.ConvertDataTable<AspNetUserRolle>(dbh.dsdaten.Tables[0]);
}
public static void savedata(AspNetUserRolle AspNetUserRolledata)
public static List<AspNetUserRolle> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRolle", AspNetUserRolledata.Id.ToString(), "PUT", AspNetUserRolledata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUserRolle where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<AspNetUserRolle>(dbh.dsdaten.Tables[0]);
}
public static void savepassword(BWPMModels.AspNetUsers userdata)
public static List<AspNetUserRolle> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUserRolle", "changepassword/" + userdata.Id, "PUT", userdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUserRolle order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUserRolle>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUserRolle> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUserRolle where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUserRolle>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUserRolle> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<AspNetUserRolle>(dbh.dsdaten.Tables[0]);
}
public static void POST(AspNetUserRolle AspNetUserRolledata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUserRolle] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
AspNetUserRolledata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUserRolledata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUserRolledata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
}
public static void PUT(AspNetUserRolle AspNetUserRolledata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUserRolle] where id=" + AspNetUserRolledata.Id.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
AspNetUserRolledata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUserRolledata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUserRolledata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void PUTPassword(AspNetUsers aspNetUser)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUsers] where id='" +aspNetUser.Id + "'", false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
dr["PasswordHash"] = aspNetUser.PasswordHash;
dbh.Update_Tabeldata();
}
public static void DELETE(AspNetUserRolle AspNetUserRolledata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [AspNetUserRolle] where id=" + AspNetUserRolledata.Id.ToString(), false, true);
}
}
}
}

View File

@@ -1,32 +1,109 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AspNetUsersController
public class AspNetUsersController : ControllerBase
{
public static List<AspNetUsers> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUsers", "", "GET", null);
return JsonConvert.DeserializeObject<List<AspNetUsers>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUsers", false, true);
return dbh.ConvertDataTable<AspNetUsers>(dbh.dsdaten.Tables[0]);
}
public static void savedata(AspNetUsers AspNetUsersdata)
public static List<AspNetUsers> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("AspNetUsers", AspNetUsersdata.Id.ToString(), "PUT", AspNetUsersdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from AspNetUsers where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<AspNetUsers>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUsers> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUsers order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUsers>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUsers> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from AspNetUsers where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<AspNetUsers>(dbh.dsdaten.Tables[0]);
}
public static List<AspNetUsers> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<AspNetUsers>(dbh.dsdaten.Tables[0]);
}
public static void POST(AspNetUsers AspNetUsersdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUsers] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
AspNetUsersdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUsersdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUsersdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
}
public static void PUT(AspNetUsers AspNetUsersdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [AspNetUsers] where id=" + AspNetUsersdata.Id.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
AspNetUsersdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(AspNetUsersdata, null);
}
else
{
dr[f.Name] = f.GetValue(AspNetUsersdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(AspNetUsers AspNetUsersdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [AspNetUsers] where id=" + AspNetUsersdata.Id.ToString(), false, true);
}
}
}
}

View File

@@ -1,47 +1,117 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class BerufController
public class BerufController : ControllerBase
{
public static List<Beruf> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Beruf", "", "GET", null);
return JsonConvert.DeserializeObject<List<Beruf>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Beruf", false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static void savedata(Beruf Berufdata)
public static List<Beruf> GetAllAktiveData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Beruf", Berufdata.ID.ToString(), "PUT", Berufdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Beruf where aktiv=1 order by bezeichnung", false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static int InsertData(Beruf Berufdata)
public static List<Beruf> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Beruf", "", "POST", Berufdata);
List<BWPMModels.Beruf> LastBeruf = new List<Beruf>();
LastBeruf = GetLast(Berufdata);
return LastBeruf.First<Beruf>().ID;
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Beruf where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static List<Beruf> GetLast(Beruf Berufdata)
public static List<Beruf> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
string sql = "Select top 1 * from Beruf where mutierer='" + Berufdata.mutierer + "' order by erstellt_am desc";
httpcli.CallService("Beruf", "usersql/" + sql, "GET", Berufdata);
return JsonConvert.DeserializeObject<List<Beruf>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Beruf order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static List<Beruf> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Beruf where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static List<Beruf> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Beruf>(dbh.dsdaten.Tables[0]);
}
public static int POST(Beruf Berufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Beruf] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Berufdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Berufdata, null);
}
else
{
dr[f.Name] = f.GetValue(Berufdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Beruf> tmplst = GetLastByMutierer(Berufdata.mutierer);
return tmplst.First<Beruf>().ID;
}
public static void PUT(Beruf Berufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Beruf] where id=" + Berufdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Berufdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Berufdata, null);
}
else
{
dr[f.Name] = f.GetValue(Berufdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Beruf Berufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Beruf] where id=" + Berufdata.ID.ToString(), false, true);
}
}
}
}

View File

@@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class AnsprechpartnerController : ControllerBase
{
public static List<Ansprechpartner> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Ansprechpartner", false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<ViewAnsprechpartner> GetAllAktivData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("SELECT ID, FirmaID, name + ' ' + vorname AS Ansprechpartner FROM dbo.Ansprechpartner WHERE aktiv = 1 ORDER BY Ansprechpartner", false, true);
return dbh.ConvertDataTable<ViewAnsprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Ansprechpartner where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetByFirmaID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Ansprechpartner where aktiv=1 and firmaid=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetAllAktivDataByFirmaID(int firmaid)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("SELECT * from Ansprechpartner WHERE aktiv = 1 and firmaid=" + firmaid.ToString() + " ORDER BY Name, Vorname", false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Ansprechpartner order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Ansprechpartner where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static List<Ansprechpartner> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Ansprechpartner>(dbh.dsdaten.Tables[0]);
}
public static int POST(Ansprechpartner Ansprechpartnerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Ansprechpartner] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Ansprechpartnerdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Ansprechpartnerdata, null);
}
else
{
dr[f.Name] = f.GetValue(Ansprechpartnerdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Ansprechpartner> tmplst = GetLastByMutierer(Ansprechpartnerdata.mutierer);
return tmplst.First<Ansprechpartner>().ID;
}
public static void PUT(Ansprechpartner Ansprechpartnerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Ansprechpartner] where id=" + Ansprechpartnerdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Ansprechpartnerdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Ansprechpartnerdata, null);
}
else
{
dr[f.Name] = f.GetValue(Ansprechpartnerdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Ansprechpartner Ansprechpartnerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Ansprechpartner] where id=" + Ansprechpartnerdata.ID.ToString(), false, true);
}
}
public class ViewAnsprechpartner
{
}
}

View File

@@ -0,0 +1,131 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class FirmaController : ControllerBase
{
public static List<Firma> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firma", false, true);
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static List<Firma> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firma where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static List<Firma> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Firma order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static List<Firma> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Firma where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static List<Firma> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static List<Firma> GetByUserID(string UserID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firma where userid='" + UserID + "'", false, true);
if (dbh.dsdaten.Tables[0].Rows.Count==0)
{
Firma Firmadata = new Firma();
Firmadata.aktiv = true;
Firmadata.erstellt_am = DateTime.Now;
Firmadata.mutierer = UserID;
Firmadata.mutiert_am = DateTime.Now;
Firmadata.userid = UserID;
POST(Firmadata);
dbh.Get_Tabledata("Select * from Firma where userid='" + UserID + "'", false, true);
}
return dbh.ConvertDataTable<Firma>(dbh.dsdaten.Tables[0]);
}
public static int POST(Firma Firmadata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Firma] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Firmadata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Firmadata, null);
}
else
{
dr[f.Name] = f.GetValue(Firmadata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Firma> tmplst = GetLastByMutierer(Firmadata.mutierer);
return tmplst.First<Firma>().ID;
}
public static void PUT(Firma Firmadata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Firma] where id=" + Firmadata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Firmadata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Firmadata, null);
}
else
{
dr[f.Name] = f.GetValue(Firmadata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Firma Firmadata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Firma] where id=" + Firmadata.ID.ToString(), false, true);
}
}
}

View File

@@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class FirmaberufController : ControllerBase
{
public static List<Firmaberuf> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firmaberuf", false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static List<Firmaberuf> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firmaberuf where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static List<Firmaberuf> GetAllAktiveByFirmaID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Firmaberuf where aktiv=1 and firmaid=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static List<Firmaberuf> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Firmaberuf order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static List<Firmaberuf> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Firmaberuf where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static List<Firmaberuf> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Firmaberuf>(dbh.dsdaten.Tables[0]);
}
public static int POST(Firmaberuf Firmaberufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Firmaberuf] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Firmaberufdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Firmaberufdata, null);
}
else
{
dr[f.Name] = f.GetValue(Firmaberufdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Firmaberuf> tmplst = GetLastByMutierer(Firmaberufdata.mutierer);
return tmplst.First<Firmaberuf>().ID;
}
public static void PUT(Firmaberuf Firmaberufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Firmaberuf] where id=" + Firmaberufdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Firmaberufdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Firmaberufdata, null);
}
else
{
dr[f.Name] = f.GetValue(Firmaberufdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Firmaberuf Firmaberufdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Firmaberuf] where id=" + Firmaberufdata.ID.ToString(), false, true);
}
}
}

View File

@@ -0,0 +1,118 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class KlasseController : ControllerBase
{
public static List<Klasse> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klasse", false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static List<Klasse> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klasse where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static List<Klasse> GetByLehrerID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klasse where lehrerid=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static List<Klasse> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Klasse order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static List<Klasse> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Klasse where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static List<Klasse> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Klasse>(dbh.dsdaten.Tables[0]);
}
public static int POST(Klasse Klassedata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Klasse] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Klassedata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Klassedata, null);
}
else
{
dr[f.Name] = f.GetValue(Klassedata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Klasse> tmplst = GetLastByMutierer(Klassedata.mutierer);
return tmplst.First<Klasse>().ID;
}
public static void PUT(Klasse Klassedata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Klasse] where id=" + Klassedata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Klassedata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Klassedata, null);
}
else
{
dr[f.Name] = f.GetValue(Klassedata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Klasse Klassedata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Klasse] where id=" + Klassedata.ID.ToString(), false, true);
}
}
}

View File

@@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class KlassentypController : ControllerBase
{
public static List<Klassentyp> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klassentyp", false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static List<Klassentyp> GetAllAktiveData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klassentyp where aktiv=1", false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static List<Klassentyp> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Klassentyp where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static List<Klassentyp> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Klassentyp order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static List<Klassentyp> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Klassentyp where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static List<Klassentyp> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Klassentyp>(dbh.dsdaten.Tables[0]);
}
public static int POST(Klassentyp Klassentypdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Klassentyp] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Klassentypdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Klassentypdata, null);
}
else
{
dr[f.Name] = f.GetValue(Klassentypdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Klassentyp> tmplst = GetLastByMutierer(Klassentypdata.mutierer);
return tmplst.First<Klassentyp>().ID;
}
public static void PUT(Klassentyp Klassentypdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Klassentyp] where id=" + Klassentypdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Klassentypdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Klassentypdata, null);
}
else
{
dr[f.Name] = f.GetValue(Klassentypdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Klassentyp Klassentypdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Klassentyp] where id=" + Klassentypdata.ID.ToString(), false, true);
}
}
}

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
namespace BlazorApp.Controller
{
public class MyScriptController
{
public static List<MyScriptGenerator> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Optionen", "", "GET", null);
return JsonConvert.DeserializeObject<List<MyScriptGenerator>>(httpcli.Results.daten);
}
public static List<MyScriptGenerator> GetData(int fnkt, string tablename)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("MyScript", fnkt.ToString()+","+tablename+"", "GET", null);
return JsonConvert.DeserializeObject<List<MyScriptGenerator>>(httpcli.Results.daten);
}
}
}

View File

@@ -0,0 +1,13 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BlazorApp.Controller
{
public class NewAnredeController : ControllerBase
{
}
}

View File

@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class OptionenController : ControllerBase
{
public static List<Optionen> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Optionen", false, true);
return dbh.ConvertDataTable<Optionen>(dbh.dsdaten.Tables[0]);
}
public static List<Optionen> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Optionen where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Optionen>(dbh.dsdaten.Tables[0]);
}
public static List<Optionen> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Optionen order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Optionen>(dbh.dsdaten.Tables[0]);
}
public static List<Optionen> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Optionen where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Optionen>(dbh.dsdaten.Tables[0]);
}
public static List<Optionen> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Optionen>(dbh.dsdaten.Tables[0]);
}
public static int POST(Optionen Optionendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Optionen] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Optionendata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Optionendata, null);
}
else
{
dr[f.Name] = f.GetValue(Optionendata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Optionen> tmplst = GetLastByMutierer(Optionendata.mutierer);
return tmplst.First<Optionen>().ID;
}
public static void PUT(Optionen Optionendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Optionen] where id=" + Optionendata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Optionendata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Optionendata, null);
}
else
{
dr[f.Name] = f.GetValue(Optionendata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Optionen Optionendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Optionen] where id=" + Optionendata.ID.ToString(), false, true);
}
}
}

View File

@@ -1,47 +1,110 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class SchulhausController
public class SchulhausController : ControllerBase
{
public static List<Schulhaus> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Schulhaus", "", "GET", null);
return JsonConvert.DeserializeObject<List<Schulhaus>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Schulhaus", false, true);
return dbh.ConvertDataTable<Schulhaus>(dbh.dsdaten.Tables[0]);
}
public static void savedata(Schulhaus Schulhausdata)
public static List<Schulhaus> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Schulhaus", Schulhausdata.ID.ToString(), "PUT", Schulhausdata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Schulhaus where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Schulhaus>(dbh.dsdaten.Tables[0]);
}
public static int InsertData(Schulhaus Schulhausdata)
public static List<Schulhaus> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Schulhaus", "", "POST", Schulhausdata);
List<BWPMModels.Schulhaus> LastSchulhaus = new List<Schulhaus>();
LastSchulhaus = GetLast(Schulhausdata);
return LastSchulhaus.First<Schulhaus>().ID;
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Schulhaus order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Schulhaus>(dbh.dsdaten.Tables[0]);
}
public static List<Schulhaus> GetLast(Schulhaus Schulhausdata)
public static List<Schulhaus> GetLastByMutierer(string Mutierer)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
string sql = "Select top 1 * from Schulhaus where mutierer='" + Schulhausdata.mutierer + "' order by erstellt_am desc";
httpcli.CallService("Schulhaus", "usersql/" + sql, "GET", Schulhausdata);
return JsonConvert.DeserializeObject<List<Schulhaus>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Schulhaus where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Schulhaus>(dbh.dsdaten.Tables[0]);
}
public static List<Schulhaus> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Schulhaus>(dbh.dsdaten.Tables[0]);
}
public static int POST(Schulhaus Schulhausdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Schulhaus] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Schulhausdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Schulhausdata, null);
}
else
{
dr[f.Name] = f.GetValue(Schulhausdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Schulhaus> tmplst = GetLastByMutierer(Schulhausdata.mutierer);
return tmplst.First<Schulhaus>().ID;
}
public static void PUT(Schulhaus Schulhausdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Schulhaus] where id=" + Schulhausdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Schulhausdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Schulhausdata, null);
}
else
{
dr[f.Name] = f.GetValue(Schulhausdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Schulhaus Schulhausdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Schulhaus] where id=" + Schulhausdata.ID.ToString(), false, true);
}
}
}
}

View File

@@ -0,0 +1,131 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class LehrerController : ControllerBase
{
public static List<Lehrer> GetAllData()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Lehrer", false, true);
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static List<Lehrer> GetByID(int ID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Lehrer where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static List<Lehrer> GetByUserID(string UserID)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Lehrer where userid='" + UserID + "'", false, true);
if (dbh.dsdaten.Tables[0].Rows.Count == 0)
{
Lehrer Lehrerdata = new Lehrer();
Lehrerdata.aktiv = true;
Lehrerdata.erstellt_am = DateTime.Now;
Lehrerdata.mutierer = UserID;
Lehrerdata.mutiert_am = DateTime.Now;
Lehrerdata.userid = UserID;
POST(Lehrerdata);
dbh.Get_Tabledata("Select * from Lehrer where userid='" + UserID + "'", false, true);
}
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static List<Lehrer> GetLast()
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Lehrer order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static List<Lehrer> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Lehrer where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static List<Lehrer> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Lehrer>(dbh.dsdaten.Tables[0]);
}
public static int POST(Lehrer Lehrerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Lehrer] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Lehrerdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Lehrerdata, null);
}
else
{
dr[f.Name] = f.GetValue(Lehrerdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Lehrer> tmplst = GetLastByMutierer(Lehrerdata.mutierer);
return tmplst.First<Lehrer>().ID;
}
public static void PUT(Lehrer Lehrerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Lehrer] where id=" + Lehrerdata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Lehrerdata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Lehrerdata, null);
}
else
{
dr[f.Name] = f.GetValue(Lehrerdata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Lehrer Lehrerdata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Lehrer] where id=" + Lehrerdata.ID.ToString(), false, true);
}
}
}

View File

@@ -1,47 +1,116 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BWPMModels;
using BlazorApp.Helper;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Mvc;
namespace BlazorApp.Controller
{
public class ZeitenController
public class ZeitenController : ControllerBase
{
public static List<Zeiten> GetAllData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Zeiten", "", "GET", null);
return JsonConvert.DeserializeObject<List<Zeiten>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Zeiten", false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static void savedata(Zeiten Zeitendata)
public static List<Zeiten> GetAllAktiveData()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Zeiten", Zeitendata.ID.ToString(), "PUT", Zeitendata);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Zeiten where aktiv=1 order by reihenfolge", false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static int InsertData(Zeiten Zeitendata)
public static List<Zeiten> GetByID(int ID)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("Zeiten", "", "POST", Zeitendata);
List<BWPMModels.Zeiten> LastZeiten = new List<Zeiten>();
LastZeiten = GetLast(Zeitendata);
return LastZeiten.First<Zeiten>().ID;
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select * from Zeiten where id=" + ID.ToString(), false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static List<Zeiten> GetLast(Zeiten Zeitendata)
public static List<Zeiten> GetLast()
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
string sql = "Select top 1 * from Zeiten where mutierer='" + Zeitendata.mutierer + "' order by erstellt_am desc";
httpcli.CallService("Zeiten", "usersql/" + sql, "GET", Zeitendata);
return JsonConvert.DeserializeObject<List<Zeiten>>(httpcli.Results.daten);
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Zeiten order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static List<Zeiten> GetLastByMutierer(string Mutierer)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata("Select top 1 * from Zeiten where mutierer='" + Mutierer + "' order by mutiert_am desc", false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static List<Zeiten> GetbyUserSQL(string SQL)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabledata(SQL, false, true);
return dbh.ConvertDataTable<Zeiten>(dbh.dsdaten.Tables[0]);
}
public static int POST(Zeiten Zeitendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Zeiten] where id=-1", false, true);
DataRow dr = dbh.dsdaten.Tables[0].NewRow();
Zeitendata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Zeitendata, null);
}
else
{
dr[f.Name] = f.GetValue(Zeitendata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.dsdaten.Tables[0].Rows.Add(dr);
dbh.Update_Tabeldata();
List<Zeiten> tmplst = GetLastByMutierer(Zeitendata.mutierer);
return tmplst.First<Zeiten>().ID;
}
public static void PUT(Zeiten Zeitendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("Select top 1 * from [Zeiten] where id=" + Zeitendata.ID.ToString(), false, true);
DataRow dr = dbh.dsdaten.Tables[0].Rows[0];
Zeitendata.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
if (f.PropertyType == typeof(DateTime))
{
dr[f.Name] = (DateTime)f.GetValue(Zeitendata, null);
}
else
{
dr[f.Name] = f.GetValue(Zeitendata, null);
}
}
catch (Exception ex) { string s = ex.Message; }
});
dbh.Update_Tabeldata();
}
public static void DELETE(Zeiten Zeitendata)
{
dbhelper dbh = new dbhelper();
dbh.Get_Tabeldata_for_Update("delete from [Zeiten] where id=" + Zeitendata.ID.ToString(), false, true);
}
}
}
}

27
BlazorApp/Dockerfile Normal file
View File

@@ -0,0 +1,27 @@
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["BlazorApp/BlazorApp.csproj", "BlazorApp/"]
COPY ["Models/BWPMModels.csproj", "Models/"]
RUN dotnet restore "BlazorApp/BlazorApp.csproj"
COPY . .
WORKDIR "/src/BlazorApp"
RUN dotnet build "BlazorApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BlazorApp.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN apt-get update
RUN apt-get install -y xvfb x11vnc x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps libgdiplus libx11-dev
ENV DISPLAY :99
ENTRYPOINT ["dotnet", "BlazorApp.dll"]

View File

@@ -16,13 +16,22 @@ namespace BlazorApp
new MenuItem()
{ Name = "Dashboard", Path = "/Admin/Dashboard", Icon = "dashboard" },
new MenuItem()
{ Name = "Firma-Daten", Path = "/Admin/Firmen", Icon = "account_balance" },
{ Name = "Firmen-Daten", Path = "/Company/Company", Icon = "account_balance" },
new MenuItem()
{ Name = "Ansprechpartner", Path = "/Admin/Firmen", Icon = "account_balance" },
{ Name = "Ansprechpartner", Path = "/Company/CompanyContact", Icon = "account_balance" },
new MenuItem()
{ Name = "Berufsangebot", Path = "/Admin/Firmen", Icon = "account_balance" },
new MenuItem()
{ Name = "Auswertungen", Path = "/Admin/Firmen", Icon = "account_balance" },
{ Name = "Berufsangebot", Path = "/Company/Berufsangebot", Icon = "account_balance" },
//new MenuItem()
//{ Name = "Auswertungen",Icon = "account_balance" },
new MenuItem()
{
Name = "Auswertungen",Icon="Home",
Children = new []
{
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
},
}
};
@@ -31,9 +40,20 @@ namespace BlazorApp
new MenuItem()
{ Name = "Home", Path = "/", Icon = "home" },
new MenuItem()
{ Name = "Dashboard", Path = "/Admin/Dashboard", Icon = "dashboard" },
{ Name = "Dashboard", Path = "/Teacher/Dashboard", Icon = "dashboard" },
new MenuItem()
{ Name = "Firmen", Path = "/Admin/Firmen", Icon = "account_balance" },
{ Name = "Stammdaten", Path = "/Teacher/TeacherContact", Icon = "account_balance" },
new MenuItem()
{ Name = "Schüler/Berufswahl", Path = "/Teacher/TeacherStudent", Icon = "account_balance" },
new MenuItem()
{
Name = "Auswertungen",Icon="Home",
Children = new []
{
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
},
}
};
MenuItem[] AdminMenu = new[] {
@@ -58,14 +78,16 @@ namespace BlazorApp
Name = "Stammdaten",Icon="Home",
Children = new []
{
new MenuItem() {Name="Einstellungen",Path = "Admin/Optionen/OptionenList"},
new MenuItem() {Name="Benutzer",Path = "Admin/AspNetUsers/AspNetUserRolleList"},
new MenuItem() {Name="Berufe",Path = "Admin/Beruf/BerufList"},
new MenuItem() {Name="Zeiten",Path = "Admin/Zeiten/ZeitenList"},
new MenuItem() {Name="Schulhaus",Path = "Admin/Schulhaus/Schulhauslist"},
new MenuItem() {Name="Lehrer",Path = "Admin/Lehrer"},
new MenuItem() {Name="Klassen",Path = "Admin/Klassen"},
new MenuItem() {Name="Klassentyp",Path = "Admin/Klassentyp"},
new MenuItem() {Name="Klassentyp",Path = "Admin/Klassentyp/Klassentyplist"},
new MenuItem() {Name="Zugehörigkeit",Path = "Admin/Zugehörigkeit"},
new MenuItem() {Name="Anrede",Path = "Admin/Anrede/AnredeList"},
},
},
new MenuItem()
@@ -118,7 +140,7 @@ namespace BlazorApp
}
}
}

View File

@@ -15,6 +15,11 @@ namespace BlazorApp.Helper
var configuation = GetConfiguration();
return configuation.GetSection("Appsettings").GetSection(Keyvalue).Value;
}
public string GetConnString(string Keyvalue)
{
var configuation = GetConfiguration();
return configuation.GetSection("ConnectionStrings").GetSection(Keyvalue).Value;
}
public IConfigurationRoot GetConfiguration()
{

View File

@@ -0,0 +1,292 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace BlazorApp.Helper
{
public class dbhelper
{
//SqlConnection con;
string connectionstring;
public DataSet dsdaten = new DataSet();
private SqlDataAdapter dadaten;
public dbhelper()
{
var configuation = GetConfiguration();
connectionstring = configuation.GetSection("ConnectionStrings").GetSection("BlazorAppContextConnection").Value;
}
public string Get_Option(int ID)
{
try
{
SqlDataAdapter dad = new SqlDataAdapter();
string sql = "Select Inhalt from optionen where id=" + ID.ToString() ;
DataTable data = new DataTable();
dad = new SqlDataAdapter(sql, this.connectionstring);
dad.Fill(data);
string s;
s = data.Rows[0][0].ToString();
return s;
dad.Dispose();
data.Dispose();
}
catch (Exception ex)
{
int a = 1;
return "";
}
}
public static DataTable ObjectToDataTable(object o)
{
DataTable dt = new DataTable();
List<PropertyInfo> properties = o.GetType().GetProperties().ToList();
foreach (PropertyInfo prop in properties)
dt.Columns.Add(prop.Name, prop.PropertyType);
dt.TableName = o.GetType().Name;
return dt;
}
public IConfigurationRoot GetConfiguration()
{
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
return builder.Build();
}
public DataTable Get_Tabledata(string Tablename, bool StoredProc = false, bool is_SQL_String = false)
{
SqlConnection sqlconnect = new SqlConnection();
DataSet ds = new DataSet();
ds.Tables.Clear();
sqlconnect.ConnectionString = this.connectionstring;
sqlconnect.Open();
SqlDataAdapter da = new SqlDataAdapter("", sqlconnect);
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlconnect;
if (StoredProc == true)
{
sqlcmd.CommandType = CommandType.StoredProcedure;
if (Tablename.IndexOf("@@Mandantnr@@") > 0)
Tablename = Tablename.Replace("@@Mandantnr@@", "");
sqlcmd.CommandText = Tablename;
}
else
{
sqlcmd.CommandType = CommandType.Text;
sqlcmd.CommandText = "Select * from " + Tablename;
}
if (is_SQL_String == true)
sqlcmd.CommandText = Tablename;
da.SelectCommand = sqlcmd;
da.Fill(dsdaten, "Daten");
sqlconnect.Close();
return dsdaten.Tables[0];
}
public void Get_Tabeldata_for_Update(string Tablename, bool StoredProc = false, bool is_SQL_String = false)
{
dsdaten.Clear();
dsdaten.Tables.Clear();
dadaten = new SqlDataAdapter(Tablename, this.connectionstring);
dadaten.Fill(dsdaten, Tablename);
}
public void Update_Tabeldata()
{
SqlCommandBuilder cb = new SqlCommandBuilder(dadaten);
dadaten.Update(dsdaten, dsdaten.Tables[0].TableName);
}
public Dictionary<string, List<object>> DatatableToDictionary(DataTable dataTable)
{
var dict = new Dictionary<string, List<object>>();
foreach (DataColumn dataColumn in dataTable.Columns)
{
var columnValueList = new List<object>();
foreach (DataRow dataRow in dataTable.Rows)
{
columnValueList.Add(dataRow[dataColumn.ColumnName]);
}
dict.Add(dataColumn.ColumnName, columnValueList);
}
return dict;
}
#region "Converters"
public List<T> ConvertDataTable<T>(DataTable dt)
{
List<T> data = new List<T>();
foreach (DataRow row in dt.Rows)
{
T item = GetItem<T>(row);
data.Add(item);
}
return data;
}
private T GetItem<T>(DataRow dr)
{
Type temp = typeof(T);
T obj = Activator.CreateInstance<T>();
foreach (DataColumn column in dr.Table.Columns)
{
foreach (PropertyInfo pro in temp.GetProperties())
{
if (pro.Name == column.ColumnName)
pro.SetValue(obj, dr[column.ColumnName], null/* TODO Change to default(_) if this is not a reference type */);
else
continue;
}
}
return obj;
}
public IEnumerable<T> GetEntities<T>(DataTable dt)
{
if (dt == null)
{
return null;
}
List<T> returnValue = new List<T>();
List<string> typeProperties = new List<string>();
T typeInstance = Activator.CreateInstance<T>();
foreach (DataColumn column in dt.Columns)
{
var prop = typeInstance.GetType().GetProperty(column.ColumnName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
if (prop != null)
{
typeProperties.Add(column.ColumnName);
}
}
foreach (DataRow row in dt.Rows)
{
T entity = Activator.CreateInstance<T>();
foreach (var propertyName in typeProperties)
{
if (row[propertyName] != DBNull.Value)
{
string str = row[propertyName].GetType().FullName;
if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.String))
{
object Val = row[propertyName].ToString();
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
}
else if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.Guid))
{
object Val = Guid.Parse(row[propertyName].ToString());
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
}
else
{
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, row[propertyName], BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
}
}
else
{
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, null, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
}
}
returnValue.Add(entity);
}
return returnValue.AsEnumerable();
}
public string DataTableToJSONWithStringBuilder(DataTable table)
{
var JSONString = new StringBuilder();
if (table.Rows.Count > 0)
{
JSONString.Append("[");
for (int i = 0; i < table.Rows.Count; i++)
{
JSONString.Append("{");
for (int j = 0; j < table.Columns.Count; j++)
{
if (j < table.Columns.Count - 1)
{
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
}
else if (j == table.Columns.Count - 1)
{
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
}
}
if (i == table.Rows.Count - 1)
{
JSONString.Append("}");
}
else
{
JSONString.Append("},");
}
}
JSONString.Append("]");
}
return JSONString.ToString();
}
public string ConvertDataTableToString(DataTable table)
{
int iColumnCount = table.Columns.Count;
int iRowCount = table.Rows.Count;
int iTempRowCount = 0;
string strColumName = table.Columns[0].ColumnName;
string strOut = "{";
foreach (DataRow row in table.Rows)
{
strOut = strOut + "{";
foreach (DataColumn col in table.Columns)
{
string val = row.Field<string>(col.ColumnName);
strOut = strOut + col.ColumnName + ":" + val;
if (col.Ordinal != iColumnCount - 1)
{
strOut = strOut + ",";
}
}
strOut = strOut + "}";
iTempRowCount++;
if (iTempRowCount != iRowCount)
{
strOut = strOut + ",";
}
}
strOut = strOut + "}";
return strOut;
}
#endregion
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BlazorApp.Models
{
public class ViewAnsprechpartner
{
public int id { get; set; }
public string namevorname { get; set; }
}
}

View File

@@ -0,0 +1,166 @@
@page "/Admin/Anrede/AnredeList"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits ListBase
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h1>Anrede</h1>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="BWPMModels.Anrede" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.bezeichnung) HeaderText="Bezeichnung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="true" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="true" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.mutierer) HeaderText="Mutierer" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(BWPMModels.Anrede.aktiv) HeaderText="Aktiv" Width="100" Visible="true" DisplayAsCheckBox="true"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
@code{ SfGrid<BWPMModels.Anrede> Grid { get; set; }
public List<BWPMModels.Anrede> GridData { get; set; }
public List<BWPMModels.Anrede> Anredes { 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.AnredeController.GetAllData();
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
userid = await sessionStorage.GetItemAsync<string>("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<BWPMModels.Anrede> 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.AnredeController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.AnredeController.PUT(Args.Data);
}
}
}
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Anrede> 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<BWPMModels.Anrede> 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<double> 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 < BWPMModels.Anrede> 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;
} }

View File

@@ -127,7 +127,7 @@
BWPMModels.AspNetUsers usr = new BWPMModels.AspNetUsers();
usr.Id = Gridid;
usr.PasswordHash = password;
BlazorApp.Controller.AspNetUserRolleController.savepassword(usr);
BlazorApp.Controller.AspNetUserRolleController.PUTPassword(usr);
this.IsVisible = false;
}
@@ -213,7 +213,7 @@
AspNetUserRoles rolle = new AspNetUserRoles();
rolle.RoleId = Args.Data.RoleId;
rolle.UserId = Args.Data.Id;
BlazorApp.Controller.AspNetUserRolesController.savedata(rolle);
BlazorApp.Controller.AspNetUserRolesController.PUT(rolle);
}
}
}

View File

@@ -106,7 +106,7 @@
}
else
{
BlazorApp.Controller.AspNetUsersController.savedata(Args.Data);
BlazorApp.Controller.AspNetUsersController.PUT(Args.Data);
}
}
}

View File

@@ -109,12 +109,10 @@
{
if (Args.Action == "Add")
{
}
else
{
BlazorApp.Controller.AspNetRolesController.savedata(Args.Data);
BlazorApp.Controller.AspNetRolesController.POST(Args.Data);
}
}
}

View File

@@ -28,8 +28,7 @@
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Beruf" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
0
<GridColumn Field=@nameof(Beruf.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Beruf.bezeichnung) HeaderText="Bezeichnung" Width="100" Visible="true"></GridColumn>
@@ -111,14 +110,14 @@
Args.Data.mutierer = userid;
Args.Data.mutiert_am = DateTime.Now;
Args.Data.aktiv = true;
Args.Data.ID = BlazorApp.Controller.BerufController.InsertData(Args.Data);
Args.Data.ID = BlazorApp.Controller.BerufController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.BerufController.savedata(Args.Data);
BlazorApp.Controller.BerufController.PUT(Args.Data);
}
}
}

View File

@@ -0,0 +1,168 @@
@page "/Admin/Klassentyp/KlassentypList"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits ListBase
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h1>Klassentyp</h1>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Klassentyp" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.bezeichnung) HeaderText="Bezeichnung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.aktiv) HeaderText="Aktiv" Width="100" Visible="true" DisplayAsCheckBox="true"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="true" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="true" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.mutierer) HeaderText="Mutierer" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Klassentyp.mandantID) HeaderText="Mandantid" Width="100" Visible="true"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
@code{ SfGrid<Klassentyp> Grid { get; set; }
public List<BWPMModels.Klassentyp> GridData { get; set; }
public List<BWPMModels.Klassentyp> Klassentyps { 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.KlassentypController.GetAllData();
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
userid = await sessionStorage.GetItemAsync<string>("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<BWPMModels.Klassentyp> 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.KlassentypController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.KlassentypController.PUT(Args.Data);
}
}
}
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Klassentyp> 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<BWPMModels.Klassentyp> 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<double> 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<Klassentyp> 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;
} }

View File

@@ -23,12 +23,12 @@ namespace BlazorApp.Pages.Admin
var authenticationState = await authenticationStateTask;
if (!authenticationState.User.Identity.IsAuthenticated)
{
NavigationManager.NavigateTo($"/identity/account/login");
// string returnUrl = WebUtility.UrlEncode($"/");
// NavigationManager.NavigateTo(WebUtility.UrlEncode("/identity/Account/Login"));
}
//if (!authenticationState.User.Identity.IsAuthenticated)
//{
// NavigationManager.NavigateTo($"/identity/account/login");
// // string returnUrl = WebUtility.UrlEncode($"/");
// // NavigationManager.NavigateTo(WebUtility.UrlEncode("/identity/Account/Login"));
//}
}

View File

@@ -0,0 +1,170 @@
@page "/Admin/Optionen/OptionenList"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits ListBase
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h1>Optionen</h1>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Optionen" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Optionen.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Optionen.mandantnr) HeaderText="Mandantnr" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Optionen.Bezeichnung) HeaderText="Bezeichnung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Optionen.inhalt) HeaderText="Inhalt" Width="200" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Optionen.erstellt_am) HeaderText="Erstellt_am" Width="400" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Optionen.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Optionen.mutierer) HeaderText="Mutierer" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Optionen.aktiv) HeaderText="Aktiv" Width="100" Visible="false" DisplayAsCheckBox="true"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
@code{ SfGrid<Optionen> Grid { get; set; }
public List<BWPMModels.Optionen> GridData { get; set; }
public List<BWPMModels.Optionen> Optionens { 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.OptionenController.GetAllData();
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
userid = await sessionStorage.GetItemAsync<string>("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<BWPMModels.Optionen> 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.OptionenController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.OptionenController.PUT(Args.Data);
}
}
}
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Optionen> 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<BWPMModels.Optionen> 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<double> 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<Optionen> 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;
} }

View File

@@ -102,14 +102,14 @@
Args.Data.mutierer = userid;
Args.Data.mutiert_am = DateTime.Now;
Args.Data.aktiv = true;
Args.Data.ID = BlazorApp.Controller.SchulhausController.InsertData(Args.Data);
Args.Data.ID = BlazorApp.Controller.SchulhausController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.SchulhausController.savedata(Args.Data);
BlazorApp.Controller.SchulhausController.PUT(Args.Data);
}
}
}

View File

@@ -0,0 +1,111 @@
@page "/Admin/ScriptGenerator"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits ListBase
@using System.Text;
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Navigations
@using System.Text.RegularExpressions;
@using Newtonsoft.Json;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h2>Script-Generator</h2>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<input type="text" @bind-value="tablename" id="tablename" name="Required" class="e-input">
<SfButton OnClick="GenerateCode">Generieren</SfButton>
<p></p>
<div class="sample-browser e-view sf-new">
<div class="sb-tab-content">
<div class="sb-source-section">
<SfTab CssClass="sb-content-tab">
<TabItems>
<TabItem CssClass="e-tab">
<HeaderTemplate>Model-Class</HeaderTemplate>
<ContentTemplate>
<div class="login-form">
<div class='wrap'>
<pre class="code">
@Code1
</pre>
</div>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<HeaderTemplate>WebAPI Service-Controller</HeaderTemplate>
<ContentTemplate>
<div class="login-form">
<div class='wrap'>
<pre class="code">
@Code2
</pre>
</div>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<HeaderTemplate>Razor-Page</HeaderTemplate>
<ContentTemplate>
<div class="login-form">
<div class='wrap'>
<pre class="code">
@Code3
</pre>
</div>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<HeaderTemplate>Razor App-Controller</HeaderTemplate>
<ContentTemplate>
<div class="login-form">
<div class='wrap'>
<pre class="code">
@Code4
</pre>
</div>
</div>
</ContentTemplate>
</TabItem>
</TabItems>
</SfTab>
</div>
</div>
</div>
</div>
</div>
@code {
private List<TabItem> sourceCodeItems;
public string tablename { get; set; } = "beruf";
public string Code1 { get; set; } = "";
public string Code2 { get; set; } = "";
public string Code3 { get; set; } = "";
public string Code4 { get; set; } = "";
public void GenerateCode()
{
var clist1 = BlazorApp.Controller.MyScriptController.GetData(1, tablename);
Code1 = clist1[0].script;
var clist2 = BlazorApp.Controller.MyScriptController.GetData(4, tablename);
Code2 = clist2[0].script;
var clist3 = BlazorApp.Controller.MyScriptController.GetData(7, tablename);
Code3 = clist3[0].script;
var clist4 = BlazorApp.Controller.MyScriptController.GetData(8, tablename);
Code4 = clist4[0].script;
}
}

View File

@@ -1,6 +1,7 @@
@page "/Admin/User/UserList"
@inherits UserListBase
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@@ -98,6 +99,7 @@
protected override async Task OnAfterRenderAsync(bool firstRender)
{
string userid = "";
userid = await sessionStorage.GetItemAsync<string>("UserID");
if (userid == null)
@@ -110,10 +112,11 @@
{
await sessionStorage.SetItemAsync("UserID", userId);
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
await sessionStorage.SetItemAsync("UserID", "");
}
}

View File

@@ -98,14 +98,14 @@
Args.Data.mutierer = userid;
Args.Data.mutiert_am = DateTime.Now;
Args.Data.aktiv = true;
Args.Data.ID = BlazorApp.Controller.ZeitenController.InsertData(Args.Data);
Args.Data.ID = BlazorApp.Controller.ZeitenController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.ZeitenController.savedata(Args.Data);
BlazorApp.Controller.ZeitenController.PUT(Args.Data);
}
}
}
@@ -120,7 +120,7 @@
foreach (Zeiten row in Rows)
{
row.reihenfolge = order;
BlazorApp.Controller.ZeitenController.savedata(row);
BlazorApp.Controller.ZeitenController.PUT(row);
order = order + 1;
Grid.Refresh();
}

View File

@@ -6,7 +6,7 @@
<div class="row">
<div class="col-xl-6">
<h4>Button with text</h4>
<RadzenButton Click=@(args => OnClick("Button with text")) Text="Button" Style="margin-bottom: 20px; width: 150px" />
<RadzenButton Click=@(args => OnClick("Button with text")) Text="Buttonx" Style="margin-bottom: 20px; width: 150px" />
</div>
<div class="col-xl-6">
<h4>Button with text and icon</h4>

View File

@@ -0,0 +1,426 @@
@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;
<h3>Berufsangebot</h3> (Bitte erfassen Sie Ihr Berufsangebot)
<hr />
<p></p>
<div class="control-section e-tab-section">
<div class="row">
<div class="col-sm">
<h4>Berufe</h4>
<SfListBox @bind-Value=@BerufID TValue="string[]" DataSource="@berufe" @ref="Berufsliste" TItem="Beruf" Height="200px">
<ListBoxSelectionSettings Mode="Syncfusion.Blazor.DropDowns.SelectionMode.Single" ShowCheckbox="false"></ListBoxSelectionSettings>
<ListBoxFieldSettings Text="bezeichnung" Value="id" />
</SfListBox>
</div>
<div class="col-sm">
<h4>Ansprechperson</h4>
<SfListBox @bind-Value=@AnsprechpartnerID TValue="string[]" DataSource="@lap" TItem="AP" Height="200px">
<ListBoxFieldSettings Text="name" Value="ID" />
</SfListBox>
</div>
<div class="col-sm">
<h4>Zeiten</h4>
<SfListBox @bind-Value=@ZeitID TValue="string[]" DataSource="@zeiten" TItem="Zeit" Height="200px">
<ListBoxSelectionSettings Mode="Syncfusion.Blazor.DropDowns.SelectionMode.Single" ShowCheckbox="false"></ListBoxSelectionSettings>
<ListBoxFieldSettings Text="bezeichnung" Value="id" />
</SfListBox>
</div>
<div class="col-sm">
<h4>Plätze</h4>
<label>Max. Anzahl Plätze</label>
<SfDropDownList @bind-Value=@PlatzID TValue="string" TItem="Plaetze" Placeholder="Max. Anzahl Plätze" DataSource="@plaetze">
<DropDownListFieldSettings Value="id" Text="text"></DropDownListFieldSettings>
</SfDropDownList>
<label>Klassentyp</label>
<SfDropDownList @bind-Value=@KlassenTypID TValue="string" TItem="Klassentyp" Placeholder="Klassentyp" DataSource="@klassentyp">
<DropDownListFieldSettings Value="ID" Text="bezeichnung"></DropDownListFieldSettings>
</SfDropDownList>
<p></p>
</div>
</div>
<hr />
<p></p>
</div>
<div class="control-section e-tab-section">
<div class="row">
<div class="col-sm">
<h4>Bemerkung</h4>
<SfTextBox Multiline=true Placeholder="Allgemeine Bemerkung" @bind-Value="@bemerkung"> </SfTextBox>
</div>
<div class="col-sm">
<h4>Hinweis für den Schüler</h4>
<SfTextBox Multiline=true Placeholder="Hinweise für Schüler" @bind-Value="@schuelerbemerkung"> </SfTextBox>
</div>
<div class="col-sm">
<h4>Hinweis zum Standortler</h4>
<SfTextBox Multiline=true Placeholder="Hinweise bezüglich Standort" @bind-Value="@standortbemerkung"> </SfTextBox>
</div>
</div>
</div>
<p></p>
<div class="control-section e-tab-section">
<div class="content-wrapper">
<div class="row">
<SfButton @onclick="einfuegen" CssClass="e-flat" IsPrimary="true">Einfügen</SfButton>
</div>
</div>
</div>
<hr />
<h3>Ihr Angebot</h3>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Edit", "Delete" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="true" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="BWPMModels.Firmaberuf" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridSelectionSettings Type="Syncfusion.Blazor.Grids.SelectionType.Single"></GridSelectionSettings>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Visible="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.firmaID) HeaderText="Firmaid" Width="100" Visible="false"></GridColumn>
@* <GridColumn Field=@nameof(Firmaberuf.berufID) HeaderText="Berufid" Width="100" Visible="true"></GridColumn>*@
<GridForeignColumn Field=@nameof(Firmaberuf.berufID) HeaderText="Beruf" ForeignKeyField="id" ForeignKeyValue="bezeichnung" ForeignDataSource="@berufe" Width="150"></GridForeignColumn>
@* <GridColumn Field=@nameof(Firmaberuf.ansprechpartnerID) HeaderText="Ansprechpartnerid" Width="100" Visible="true"></GridColumn>*@
<GridForeignColumn Field=@nameof(Firmaberuf.ansprechpartnerID) HeaderText="Ansprechpartner" ForeignKeyField="ID" ForeignKeyValue="name" ForeignDataSource="@lap" Width="150"></GridForeignColumn>
@* <GridColumn Field=@nameof(Firmaberuf.zeitID) HeaderText="Zeitid" Width="100" Visible="true"></GridColumn>*@
<GridForeignColumn Field=@nameof(Firmaberuf.zeitID) HeaderText="Zeit" ForeignKeyField="id" ForeignKeyValue="bezeichnung" ForeignDataSource="@zeiten" Width="150"></GridForeignColumn>
@* <GridColumn Field=@nameof(Firmaberuf.klassetypID) HeaderText="Klassetypid" Width="100" Visible="true"></GridColumn>*@
<GridForeignColumn Field=@nameof(Firmaberuf.klassetypID) HeaderText="Klassentyp" ForeignKeyField="ID" ForeignKeyValue="bezeichnung" ForeignDataSource="@klassentyp" Width="150"></GridForeignColumn>
<GridColumn Field=@nameof(Firmaberuf.anzahl) HeaderText="Anzahl" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.bemerkung) HeaderText="Bemerkung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.schuelerbemerkung) HeaderText="Schuelerbemerkung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.standortbemerkung) HeaderText="Standortbemerkung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.minzuteilung) HeaderText="Minzuteilung" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.aktiv) HeaderText="Aktiv" Width="100" Visible="false" DisplayAsCheckBox="true"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Firmaberuf.mutierer) HeaderText="Mutierer" Width="100" Visible="false"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
<SfTextBox Value="@fid"></SfTextBox>
<SfDialog Width="350px" IsModal="true" @bind-Visible="@ShowDialog">
<DialogTemplates>
<Header> Angaben sind unvollständig </Header>
<Content>@((MarkupString)this.message)</Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
@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<string[], Beruf> Berufsliste { get; set; }
SfGrid<BWPMModels.Firmaberuf> Grid { get; set; }
string userid = "";
static string firmaid = "";
public List<Beruf> berufe = new List<Beruf>();
public List<BWPMModels.Beruf> _berufe { get; set; } = BlazorApp.Controller.BerufController.GetAllAktiveData();
public List<Zeit> zeiten = new List<Zeit>();
public List<BWPMModels.Zeiten> _zeiten { get; set; } = BlazorApp.Controller.ZeitenController.GetAllAktiveData();
public List<BWPMModels.Ansprechpartner> ansprechpartner { get; set; }
public List<BWPMModels.Klassentyp> klassentyp { get; set; } = BlazorApp.Controller.KlassentypController.GetAllAktiveData();
public List<BWPMModels.Firma> Firmendaten { get; set; }
public List<AP> lap = new List<AP>();
public List<Plaetze> plaetze = new List<Plaetze>();
public List<BWPMModels.Firmaberuf> 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<string>("FirmaID");
get_ansprechaprtner(firmaid);
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender != true) { return; };
userid = await sessionStorage.GetItemAsync<string>("UserID");
if (userid == null)
{
var authState = await authenticationStateTask;
userid = authState.User.Claims.FirstOrDefault().Value;
var user = authState.User;
}
firmaid = await sessionStorage.GetItemAsync<string>("FirmaID");
if (firmaid == null)
{
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
firmaid = Firmendaten.First<BWPMModels.Firma>().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<br/>"; };
if (aid == 0) { message += "- Bitte einen Ansprechpartner auswählen<br/>"; };
if (zid == 0) { message += "- Bitte einen Zeit auswählen<br/>"; };
if (pid == 0) { message += "- Bitte Anzahl Plätze auswählen<br/>"; };
if (kid == 0) { message += "- Bitte Klassentyp auswählen<br/>"; };
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<BWPMModels.Firmaberuf> 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<BWPMModels.Firmaberuf> 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<BWPMModels.Firmaberuf> args)
{
}
public async Task<double> 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<Firmaberuf> 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;
}
}

View File

@@ -0,0 +1,275 @@
@page "/Company/Company"
@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 BlazorApp.Helper
@using BWPMModels;
@*<div class="container">*@
<div class="control-section e-tab-section">
<EditForm Model="_firma" OnValidSubmit="@Submit" OnInvalidSubmit="@InvalidSubmit">
<div class="card">
<div class="card-body">
<SfButton IsPrimary="true" OnClick="@(() => SaveClick())">Speichern</SfButton>
</div>
</div>
<DataAnnotationsValidator />
<SfTab ID="BlazorTab" Height="390">
<TabItems>
<TabItem>
<ChildContent>
<TabHeader Text="Kontakt-Daten"></TabHeader>
</ChildContent>
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Adress-Daten</h5>
<form>
<div class="form-group row">
<label for="nameZ1" class="col-2 col-form-label">Name</label>
<div class="col-10">
<InputText id="namez1" class="form-control" @bind-Value="_firma.nameZ1" placeholder="Firmenname" />
<ValidationMessage For="@(() => _firma.nameZ1)" />
</div>
</div>
<div class="form-group row">
<label for="nameZ2" class="col-2 col-form-label">Zusatz</label>
<div class="col-10">
<InputText id="nameZ2" class="form-control" @bind-Value="@_firma.nameZ2" placeholder="Zusatz" />
<ValidationMessage For="@(() => _firma.nameZ2)" />
</div>
</div>
<div class="form-group row">
<label for="strasse" class="col-2 col-form-label">Strasse</label>
<div class="col-10">
<InputText id="strasse" class="form-control" @bind-Value="@_firma.strasse" placeholder="Strasse" />
<ValidationMessage For="@(() => _firma.strasse)" />
</div>
</div>
<div class="form-group row">
<label for="plz" class="col-2 col-form-label">PLZ</label>
<div class="col-10">
<InputText id="plz" class="form-control" @bind-Value="@_firma.plz" placeholder="Postleitzahl" />
<ValidationMessage For="@(() => _firma.plz)" />
</div>
</div>
<div class="form-group row">
<label for="ort" class="col-2 col-form-label">Ort</label>
<div class="col-10">
<InputText id="ort" class="form-control" @bind-Value="@_firma.ort" placeholder="Ort" />
<ValidationMessage For="@(() => _firma.ort)" />
</div>
</div>
<hr />
<div class="form-group row">
<label for="telefon" class="col-2 col-form-label">Telefon</label>
<div class="col-10">
<InputText id="tel" class="form-control" @bind-Value="@_firma.tel" placeholder="Telefon-Nummer" />
<ValidationMessage For="@(() => _firma.tel)" />
</div>
</div>
<div class="form-group row">
<label for="email" class="col-2 col-form-label">E-Mail</label>
<div class="col-10">
<InputText id="mail" class="form-control" @bind-Value="@_firma.mail" placeholder="E-Mail" required="required" typeof="email" />
<ValidationMessage For="@(() => _firma.mail)" />
</div>
</div>
<div class="form-group row">
<label for="web" class="col-2 col-form-label">Internet</label>
<div class="col-10">
<InputText id="internet" class="form-control" @bind-Value="@_firma.web" placeholder="Internet" />
<ValidationMessage For="@(() => _firma.web)" />
</div>
</div>
<div class="form-group row">
<label for="Bemerkungen" class="col-2 col-form-label">Bemerkung</label>
<div class="col-10">
<InputTextArea id="bemerkung" class="form-control" @bind-Value="@_firma.bemerkung" placeholder="Bemerkung" />
<ValidationMessage For="@(() => _firma.bemerkung)" />
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Ansprechperson</h5>
<form>
<div class="form-group row">
<label for="Anrede" class="col-2 col-form-label">Anrede</label>
<div class="col-10">
<select id="Anrede" name="Anrede" class="form-control" @bind="@_firma.anrede">
<option value="1">Herr</option>
<option value="2">Frau</option>
<option value="3">Damen und Herren</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="ansprechperson_anme" class="col-2 col-form-label">Name</label>
<div class="col-10">
<InputText id="ansprechperson_name" class="form-control" @bind-Value="@_firma.ansprechperson_name" placeholder="Name Ansprechperson" />
<ValidationMessage For="@(() => _firma.ansprechperson_name)" />
</div>
</div>
<div class="form-group row">
<label for="ansprechperson_vorname" class="col-2 col-form-label">Vorname</label>
<div class="col-10">
<InputText id="ansprechperson_vorname" class="form-control" @bind-Value="@_firma.ansprechperon_vorname" placeholder="Vorname Ansprechperson" />
<ValidationMessage For="@(() => _firma.ansprechperon_vorname)" />
</div>
</div>
<div class="form-group row">
<label for="briefanrede" class="col-2 col-form-label">Briefanrede</label>
<div class="col-10">
<InputText id="briefanrede" class="form-control" @bind-Value="@_firma.briefanrede" placeholder="gewünschte Briefanrede" />
<ValidationMessage For="@(() => _firma.briefanrede)" />
</div>
</div>
<div class="form-group row">
<label for="handy" class="col-2 col-form-label">Telefon</label>
<div class="col-10">
<InputText id="handy" class="form-control" @bind-Value="@_firma.handy" placeholder="Telefon" />
<ValidationMessage For="@(() => _firma.handy)" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<ChildContent>
<TabHeader text="Angaben zur Ausbildung"></TabHeader>
</ChildContent>
<ContentTemplate>
<div class="col-md-10">
<div class="card">
<div class="card-body">
<h5 class="card-title">Allgemeine Angaben</h5>
<form>
<div class="form-group row">
<label for="ausbildung_Standort" class="col-2 col-form-label">Ausbildungsstandort</label>
<div class="col-10">
<InputTextArea id="ausbildung_Standort" class="form-control" @bind-Value="@_firma.ausbildungsstandort" placeholder="Allgmeine Angaben über Ausbildungsstandort" />
<ValidationMessage For="@(() => _firma.ausbildungsstandort)" />
</div>
</div>
<div class="form-group row">
<label for="ausbildung_bemerkung" class="col-2 col-form-label">Bemerkung</label>
<div class="col-10">
<InputTextArea id="ausbildung_bemerkung" class="form-control" @bind-Value="@_firma.ausbildungsbemerkung" placeholder="Allgemeine Bemerkungen zu den Ausbildungen" />
<ValidationMessage For="@(() => _firma.ausbildungsbemerkung)" />
</div>
</div>
</form>
</div>
</div>
</div>
</ContentTemplate>
</TabItem>
</TabItems>
</SfTab>
</EditForm>
</div>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowErrorDialog">
<DialogTemplates>
<Header> Formmular unvollständig </Header>
<Content> Bitte das Formular vollständig ausfüllen. </Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
@*</div>*@
@code {
private Firma _firma { get; set; } = new BWPMModels.Firma();
public List<BWPMModels.Firma> Firmendaten { get; set; }
string userid = "";
public static int? pkey { get; set; }
public bool Initial { get; set; } = true;
private bool ShowErrorDialog { get; set; } = false;
public void Submit()
{
BlazorApp.Controller.FirmaController.PUT(_firma);
}
public void InvalidSubmit()
{
ShowErrorDialog = true;
}
private void CloseDialog()
{
this.ShowErrorDialog = false;
}
private void SaveClick()
{
//BlazorApp.Controller.FirmaController.savedata(_firma);
}
protected override async void OnInitialized()
{
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
@*userid = "4c456017-85b9-4f34-a42c-f3ac534cc34f";*@
userid = await sessionStorage.GetItemAsync<string>("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);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}
if (firstRender)
{
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
_firma = Firmendaten.First<BWPMModels.Firma>();
}
}
}

View File

@@ -0,0 +1,212 @@
@page "/Company/CompanyContact"
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@inherits Admin.ListBase
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Buttons;
@using Syncfusion.Blazor.Spinner;
@using Syncfusion.Blazor.Popups;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h1>Ansprechpartner</h1>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Ansprechpartner" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.FirmaID) HeaderText="Firmaid" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.name) HeaderText="Name" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.vorname) HeaderText="Vorname" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.anrede) HeaderText="Anrede" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.tel) HeaderText="Tel" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.email) HeaderText="Email" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.aktiv) HeaderText="Aktiv" Width="100" Visible="true" DisplayAsCheckBox="true"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Ansprechpartner.mutierer) HeaderText="Mutierer" Width="100" Visible="false"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowDialog">
<DialogTemplates>
<Header> Formmular unvollständig </Header>
<Content> Bitte das Formular vollständig ausfüllen. </Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
@code{
SfGrid<Ansprechpartner> Grid { get; set; }
public List<BWPMModels.Ansprechpartner> GridData { get; set; }
public List<BWPMModels.Ansprechpartner> Ansprechpartners { 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;
private Firma _firma { get; set; } = new BWPMModels.Firma();
public List<BWPMModels.Firma> Firmendaten { get; set; }
private bool ShowDialog { get; set; } = false;
private void CloseDialog()
{
this.ShowDialog = false;
}
protected override async void OnInitialized()
{
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
@*userid = "4c456017-85b9-4f34-a42c-f3ac534cc34f";*@
userid = await sessionStorage.GetItemAsync<string>("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);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
_firma = Firmendaten.First<BWPMModels.Firma>();
if (_firma.nameZ1==""){
ShowDialog = true;
return;
}
GridData = BlazorApp.Controller.AnsprechpartnerController.GetByFirmaID(_firma.ID);
}
private async Task OnBeginHandler(ActionEventArgs<BWPMModels.Ansprechpartner> 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.FirmaID = _firma.ID;
Args.Data.ID = BlazorApp.Controller.AnsprechpartnerController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.AnsprechpartnerController.PUT(Args.Data);
}
}
}
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Ansprechpartner> 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<BWPMModels.Ansprechpartner> 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<double> 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<Ansprechpartner> 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;
}
}

View File

@@ -0,0 +1,273 @@
@page "/Company/Test"
@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 BlazorApp.Helper
@using BWPMModels;
@*<div class="container">*@
<div class="control-section e-tab-section">
<EditForm Model="_firma" OnValidSubmit="@Submit" OnInvalidSubmit="@InvalidSubmit">
<div class="card">
<div class="card-body">
<SfButton IsPrimary="true" OnClick="@(() => SaveClick())">Speichern</SfButton>
</div>
</div>
<DataAnnotationsValidator />
<SfTab ID="BlazorTab" Height="390">
<TabItems>
<TabItem>
<ChildContent>
<TabHeader Text="Kontakt-Daten"></TabHeader>
</ChildContent>
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Adress-Daten</h5>
<form>
<div class="form-group row">
<label for="nameZ1" class="col-2 col-form-label">Name</label>
<div class="col-10">
<InputText id="namez1" class="form-control" @bind-Value="_firma.nameZ1" placeholder="Firmenname" />
<ValidationMessage For="@(() => _firma.nameZ1)" />
</div>
</div>
<div class="form-group row">
<label for="nameZ2" class="col-2 col-form-label">Zusatz</label>
<div class="col-10">
<InputText id="nameZ2" class="form-control" @bind-Value="@_firma.nameZ2" placeholder="Zusatz" />
<ValidationMessage For="@(() => _firma.nameZ2)" />
</div>
</div>
<div class="form-group row">
<label for="strasse" class="col-2 col-form-label">Strasse</label>
<div class="col-10">
<InputText id="strasse" class="form-control" @bind-Value="@_firma.strasse" placeholder="Strasse" />
<ValidationMessage For="@(() => _firma.strasse)" />
</div>
</div>
<div class="form-group row">
<label for="plz" class="col-2 col-form-label">PLZ</label>
<div class="col-10">
<InputText id="plz" class="form-control" @bind-Value="@_firma.plz" placeholder="Postleitzahl" />
<ValidationMessage For="@(() => _firma.plz)" />
</div>
</div>
<div class="form-group row">
<label for="ort" class="col-2 col-form-label">Ort</label>
<div class="col-10">
<InputText id="ort" class="form-control" @bind-Value="@_firma.ort" placeholder="Ort" />
<ValidationMessage For="@(() => _firma.ort)" />
</div>
</div>
<hr />
<div class="form-group row">
<label for="telefon" class="col-2 col-form-label">Telefon</label>
<div class="col-10">
<InputText id="tel" class="form-control" @bind-Value="@_firma.tel" placeholder="Telefon-Nummer" />
<ValidationMessage For="@(() => _firma.tel)" />
</div>
</div>
<div class="form-group row">
<label for="email" class="col-2 col-form-label">E-Mail</label>
<div class="col-10">
<InputText id="mail" class="form-control" @bind-Value="@_firma.mail" placeholder="E-Mail" required="required" typeof="email" />
<ValidationMessage For="@(() => _firma.mail)" />
</div>
</div>
<div class="form-group row">
<label for="web" class="col-2 col-form-label">Internet</label>
<div class="col-10">
<InputText id="internet" class="form-control" @bind-Value="@_firma.web" placeholder="Internet" />
<ValidationMessage For="@(() => _firma.web)" />
</div>
</div>
<div class="form-group row">
<label for="Bemerkungen" class="col-2 col-form-label">Bemerkung</label>
<div class="col-10">
<InputTextArea id="bemerkung" class="form-control" @bind-Value="@_firma.bemerkung" placeholder="Internet" />
<ValidationMessage For="@(() => _firma.bemerkung)" />
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Ansprechperson</h5>
<form>
<div class="form-group row">
<label for="Anrede" class="col-2 col-form-label">Anrede</label>
<div class="col-10">
<select id="Anrede" name="Anrede" class="form-control" @bind="@_firma.anrede">
<option value="1">Herr</option>
<option value="2">Frau</option>
<option value="3">Damen und Herren</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="ansprechperson_anme" class="col-2 col-form-label">Name</label>
<div class="col-10">
<InputText id="ansprechperson_name" class="form-control" @bind-Value="@_firma.ansprechperson_name" placeholder="Name Ansprechperson" />
<ValidationMessage For="@(() => _firma.ansprechperson_name)" />
</div>
</div>
<div class="form-group row">
<label for="ansprechperson_vorname" class="col-2 col-form-label">Vorname</label>
<div class="col-10">
<InputText id="ansprechperson_vorname" class="form-control" @bind-Value="@_firma.ansprechperon_vorname" placeholder="Vorname Ansprechperson" />
<ValidationMessage For="@(() => _firma.ansprechperon_vorname)" />
</div>
</div>
<div class="form-group row">
<label for="briefanrede" class="col-2 col-form-label">Briefanrede</label>
<div class="col-10">
<InputText id="briefanrede" class="form-control" @bind-Value="@_firma.briefanrede" placeholder="gewünschte Briefanrede" />
<ValidationMessage For="@(() => _firma.briefanrede)" />
</div>
</div>
<div class="form-group row">
<label for="handy" class="col-2 col-form-label">Telefon</label>
<div class="col-10">
<InputText id="handy" class="form-control" @bind-Value="@_firma.handy" placeholder="Telefon" />
<ValidationMessage For="@(() => _firma.handy)" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<ChildContent>
<TabHeader text="Angaben zur Ausbildung"></TabHeader>
</ChildContent>
<ContentTemplate>
<div class="col-md-10">
<div class="card">
<div class="card-body">
<h5 class="card-title">Allgemeine Angaben</h5>
<form>
<div class="form-group row">
<label for="ausbildung_Standort" class="col-2 col-form-label">Ausbildungsstandort</label>
<div class="col-10">
<InputTextArea id="ausbildung_Standort" class="form-control" @bind-Value="@_firma.ausbildungsstandort" placeholder="Allgmeine Angaben über Ausbildungsstandort" />
<ValidationMessage For="@(() => _firma.ausbildungsstandort)" />
</div>
</div>
<div class="form-group row">
<label for="ausbildung_bemerkung" class="col-2 col-form-label">Bemerkung</label>
<div class="col-10">
<InputTextArea id="ausbildung_bemerkung" class="form-control" @bind-Value="@_firma.ausbildungsbemerkung" placeholder="Allgemeine Bemerkungen zu den Ausbildungen" />
<ValidationMessage For="@(() => _firma.ausbildungsbemerkung)" />
</div>
</div>
</form>
</div>
</div>
</div>
</ContentTemplate>
</TabItem>
</TabItems>
</SfTab>
</EditForm>
</div>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowErrorDialog">
<DialogTemplates>
<Header> Formmular unvollständig </Header>
<Content> Bitte das Formular vollständig ausfüllen. </Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
@*</div>*@
@code {
private Firma _firma { get; set; } = new BWPMModels.Firma();
public List<BWPMModels.Firma> Firmendaten { get; set; }
string userid = "";
public static int? pkey { get; set; }
public bool Initial { get; set; } = true;
private bool ShowErrorDialog { get; set; } = false;
public void Submit()
{
BlazorApp.Controller.FirmaController.PUT(_firma);
}
public void InvalidSubmit()
{
ShowErrorDialog = true;
}
private void CloseDialog()
{
this.ShowErrorDialog = false;
}
private void SaveClick()
{
//BlazorApp.Controller.FirmaController.savedata(_firma);
}
protected override async void OnInitialized()
{
userid = "4c456017-85b9-4f34-a42c-f3ac534cc34f";
@* userid = await sessionStorage.GetItemAsync<string>("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);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}*@
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
_firma = Firmendaten.First<BWPMModels.Firma>();
}
}

View File

@@ -0,0 +1,5 @@
<h3>Component</h3>
@code {
}

View File

@@ -0,0 +1,131 @@
@page "/Reporting/Reporting"
@page "/Reporting/Reporting/{ReportNr}"
@inherits Admin.ListBase;
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@using Microsoft.AspNetCore.Hosting;
@using System.IO;
@using System.Data;
@using FastReport
@using FastReport.Web
@using FastReport.Web.Blazor.Components
@using BWPMModels;
@using Syncfusion.Blazor.Spinner
<div id="container">
<WebReportContainer WebReport="@UserWebReport" />
<SfSpinner @bind-Visible="@Spinnervisible">
</SfSpinner>
</div>
@emsg;
@code {
[Parameter]
public string ReportNr { get; set; }
public string emsg { get; set; } = "";
private IHostingEnvironment Environment;
private bool Spinnervisible { get; set; } = true;
public string ReportName { get; set; }
public DataSet DataSet { get; set; } = new DataSet();
public WebReport UserWebReport { get; set; } = new WebReport();
public Report Report { get; set; } = new Report();
string guserid = "";
string sql = "";
private Firma _firma { get; set; } = new BWPMModels.Firma();
public List<BWPMModels.Firma> Firmendaten { get; set; }
protected override async Task OnAfterRenderAsync(bool firstRender)
{
Spinnervisible = false;
}
protected override async Task OnParametersSetAsync()
{
string paramtyp1 = "";
string paramtyp2 = "";
string paramtyp3 = "";
Helper.dbhelper dbh = new Helper.dbhelper();
string reportdir = dbh.Get_Option(28);
reportdir += "/";
dbh.Get_Tabledata("Select * from Report where id=" + ReportNr.ToString(), false, true);
@*reportdir = "Reports/";*@
try
{
Report = Report.FromFile(reportdir + dbh.dsdaten.Tables[0].Rows[0]["reportfile"]);
}
catch (Exception e)
{
emsg=e.Message;
return;
}
paramtyp1 = dbh.dsdaten.Tables[0].Rows[0]["paramtype1"].ToString();
paramtyp2 = dbh.dsdaten.Tables[0].Rows[0]["paramtype2"].ToString();
paramtyp3 = dbh.dsdaten.Tables[0].Rows[0]["paramtype3"].ToString();
sql = dbh.dsdaten.Tables[0].Rows[0]["sql"].ToString();
switch (paramtyp1)
{
case "%firmaID%":
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
_firma = Firmendaten.First<BWPMModels.Firma>();
sql = sql.Replace("%firmaid%", _firma.ID.ToString());
break;
default:
break;
};
dbh.dsdaten.Tables.Clear();
DataSet.Tables.Clear();
DataSet.Tables.Add(dbh.Get_Tabledata(sql, false, true).Copy());
Report.SetParameterValue("Parcours", dbh.Get_Option(2));
Report.SetParameterValue("Spruch", dbh.Get_Option(3));
Report.SetParameterValue("URL", dbh.Get_Option(27));
Report.RegisterData(DataSet);
Report.GetDataSource("Daten").Enabled = true;
UserWebReport.Report = Report;
UserWebReport.Report.Refresh();
Spinnervisible = false;
}
protected override async Task OnInitializedAsync()
{
try
{
userid = await sessionStorage.GetItemAsync<string>("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);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}
UserWebReport = new WebReport();
}
catch (Exception e)
{ emsg = e.Message.ToString(); };
}
}

View File

@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using FastReport;
using FastReport.Web;
namespace BlazorApp.Pages.Reporting
{
public partial class Reporting
{
readonly string directory;
const string DEFAULT_REPORT = "userliste.frx";
string userid = "";
//Report Report { get; set; }
//DataSet DataSet { get; } = new DataSet();
protected override void OnParametersSet()
{
base.OnParametersSet();
}
public Reporting()
{
BlazorApp.Helper.dbhelper dbh = new Helper.dbhelper();
DataSet.Tables.Add(dbh.Get_Tabledata("Select * from AspNetUsers", false, true).Copy());
DataSet.Tables[0].TableName = "Daten";
}
}
}

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" standalone="yes"?>
<LPReports>
<Auswertungen>
<Bericht>Firmendaten</Bericht>
<SQL> SELECT dbo.Firma.ID, dbo.Firma.NameZ1, dbo.Firma.NameZ2, dbo.Firma.Strasse, dbo.Firma.PLZ, dbo.Firma.Ort, dbo.Firma.Tel, dbo.Firma.handy, dbo.Firma.Web, dbo.Firma.Mail,
dbo.Firma.Bemerkung, dbo.Firma.Anrede, dbo.Firma.Ausbildungsstandort, dbo.Firma.Ausbildungsbemerkung, dbo.Firma.ansprechperson_name, dbo.Firma.ansprechperon_vorname, dbo.Ansprechpartner.id,
dbo.Ansprechpartner.Name AS AName, dbo.Ansprechpartner.Vorname AS AVorname, dbo.Ansprechpartner.Tel AS ATel, dbo.Ansprechpartner.EMail AS AMail, dbo.Ansprechpartner.Anrede AS AAnrede, dbo.Beruf.Bezeichnung,
dbo.KlassenTyp.bezeichnung AS Klasse, dbo.Zeiten.Bezeichnung AS Zeit, dbo.FirmaBeruf.Anzahl, dbo.FirmaBeruf.Schuelerbemerkung, dbo.FirmaBeruf.Standortbemerkung
,dbo.Firma.mandantnr
FROM dbo.Beruf INNER JOIN
dbo.FirmaBeruf ON dbo.Beruf.id = dbo.FirmaBeruf.Berufid INNER JOIN
dbo.Zeiten ON dbo.FirmaBeruf.Zeitid = dbo.Zeiten.id INNER JOIN
dbo.Firma INNER JOIN
dbo.Ansprechpartner ON dbo.Firma.ID = dbo.Ansprechpartner.FirmaID ON dbo.FirmaBeruf.Ansprechpartnerid = dbo.Ansprechpartner.id INNER JOIN
dbo.KlassenTyp ON dbo.FirmaBeruf.KlassetypID = dbo.klassentyp.id
WHERE (dbo.Ansprechpartner.Aktiv = 1) AND (dbo.FirmaBeruf.Aktiv = 1) and (dbo.firma.id=4)</SQL>
<SQLTYPE>SQL</SQLTYPE>
<Filename>Firmendaten.frx</Filename>
</Auswertungen>
<Auswertungen>
<Bericht>Userliste</Bericht>
<SQL>SELECT * FROM [BWPM].[dbo].[AspNetUsers]</SQL>
<SQLTYPE>SQL</SQLTYPE>
<Filename>Userliste.frx</Filename>
</Auswertungen>
</LPReports>

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="Vb" ReportInfo.Created="07/19/2012 16:02:38" ReportInfo.Modified="07/29/2021 11:42:09" ReportInfo.CreatorVersion="2021.3.20.0">
<ScriptText>Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Drawing
Imports Microsoft.VisualBasic
Imports FastReport
Imports FastReport.Data
Imports FastReport.Dialog
Imports FastReport.Table
Imports FastReport.Barcode
Imports FastReport.Utils
Namespace FastReport
Public Class ReportScript
Private Sub Picture1_BeforePrint(ByVal sender As object, ByVal e As EventArgs)
Picture1.ImageLocation= CType(Report.GetParameterValue(&quot;URL&quot;), String)
End Sub
End Class
End Namespace
</ScriptText>
<Dictionary>
<TableDataSource Name="Daten" ReferenceName="Data.Daten" DataType="System.Int32" Enabled="true">
<Column Name="NameZ1" DataType="System.String"/>
<Column Name="NameZ2" DataType="System.String"/>
<Column Name="Strasse" DataType="System.String"/>
<Column Name="PLZ" DataType="System.String"/>
<Column Name="Ort" DataType="System.String"/>
<Column Name="Tel" DataType="System.String"/>
<Column Name="Web" DataType="System.String"/>
<Column Name="Bemerkung" DataType="System.String"/>
<Column Name="Anrede" DataType="System.String"/>
<Column Name="Ausbildungsstandort" DataType="System.String"/>
<Column Name="Ausbildungsbemerkung" DataType="System.String"/>
<Column Name="Bezeichnung" DataType="System.String"/>
<Column Name="Anzahl" DataType="System.Int32"/>
<Column Name="AName" DataType="System.String"/>
<Column Name="AVorname" DataType="System.String"/>
<Column Name="ATel" DataType="System.String"/>
<Column Name="AMail" DataType="System.String"/>
<Column Name="AAnrede" DataType="System.String"/>
<Column Name="Klasse" DataType="System.String"/>
<Column Name="Zeit" DataType="System.String"/>
<Column Name="Schuelerbemerkung" DataType="System.String"/>
<Column Name="Standortbemerkung" DataType="System.String"/>
<Column Name="ID" DataType="System.Int32"/>
<Column Name="handy" DataType="System.String"/>
<Column Name="Mail" DataType="System.String"/>
<Column Name="ansprechperson_name" DataType="System.String"/>
<Column Name="ansprechperon_vorname" DataType="System.String"/>
<Column Name="id1" DataType="System.Int32"/>
<Column Name="mandantnr" DataType="System.Int32"/>
</TableDataSource>
<Parameter Name="Parcours" DataType="System.String"/>
<Parameter Name="Spruch" DataType="System.String"/>
<Parameter Name="URL" DataType="System.String"/>
</Dictionary>
<ReportPage Name="Page1" Landscape="true" PaperWidth="297" PaperHeight="210" RawPaperSize="9" Watermark.Font="Arial, 60pt">
<ReportTitleBand Name="ReportTitle1" Width="1047.06" Height="245.7">
<TextObject Name="Text32" Left="567" Top="9.45" Width="463.05" Height="18.9" Text="[Parcours]" HorzAlign="Right" Font="Arial, 12pt, style=Bold"/>
<TextObject Name="Text33" Left="567" Top="37.8" Width="463.05" Height="18.9" Text="Firmendaten" HorzAlign="Right" Font="Arial, 12pt, style=Bold"/>
<TextObject Name="Text1" Left="122.85" Top="94.5" Width="207.9" Height="18.9" Text="[Daten.NameZ1]" Font="Arial, 10pt"/>
<TextObject Name="Text9" Left="18.9" Top="94.5" Width="103.95" Height="18.9" Text="Name Zeile 1:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text40" Left="359.1" Top="94.5" Width="66.15" Height="18.9" Text="Telefon:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text10" Left="434.7" Top="94.5" Width="141.75" Height="18.9" Text="[Daten.Tel]" Font="Arial, 10pt"/>
<TextObject Name="Text2" Left="122.85" Top="113.4" Width="207.9" Height="18.9" Text="[Daten.NameZ2]" Font="Arial, 10pt"/>
<TextObject Name="Text3" Left="122.85" Top="132.3" Width="207.9" Height="18.9" Text="[Daten.Anrede]" Font="Arial, 10pt"/>
<TextObject Name="Text34" Left="18.9" Top="113.4" Width="103.95" Height="18.9" Text="Name Zeile 2:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text35" Left="18.9" Top="132.3" Width="103.95" Height="18.9" Text="Anrede:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text42" Left="359.1" Top="141.75" Width="66.15" Height="18.9" Text="Internet:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text12" Left="434.7" Top="141.75" Width="245.7" Height="18.9" Text="[Daten.Web]" Font="Arial, 10pt"/>
<TextObject Name="Text36" Left="18.9" Top="151.2" Width="103.95" Height="18.9" Text="Name:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text43" Left="359.1" Top="160.65" Width="66.15" Height="18.9" Text="E-Mail:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text13" Left="434.7" Top="160.65" Width="245.7" Height="18.9" Text="[Daten.Mail]" Font="Arial, 10pt"/>
<TextObject Name="Text37" Left="18.9" Top="170.1" Width="103.95" Height="18.9" Text="Vorname:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text6" Left="122.85" Top="189" Width="207.9" Height="18.9" Text="[Daten.Strasse]" Font="Arial, 10pt"/>
<TextObject Name="Text38" Left="18.9" Top="189" Width="103.95" Height="18.9" Text="Strasse:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text7" Left="122.85" Top="207.9" Width="47.25" Height="18.9" Text="[Daten.PLZ]" Font="Arial, 10pt"/>
<TextObject Name="Text8" Left="170.1" Top="207.9" Width="132.3" Height="18.9" Text="[Daten.Ort]" Font="Arial, 10pt"/>
<TextObject Name="Text39" Left="18.9" Top="207.9" Width="103.95" Height="18.9" Text="PLZ / Ort:" Font="Arial, 10pt, style=Bold"/>
<PictureObject Name="Picture1" Left="9.45" Top="-18.9" Width="103.95" Height="85.05" BeforePrintEvent="Picture1_BeforePrint" Image=""/>
<TextObject Name="Text55" Left="359.1" Top="113.4" Width="66.15" Height="18.9" Text="Natel:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text28" Left="434.7" Top="113.4" Width="141.75" Height="18.9" Text="[Daten.handy]" Font="Arial, 10pt"/>
<TextObject Name="Text58" Left="122.85" Top="151.2" Width="189" Height="18.9" Text="[Daten.ansprechperson_name]" Font="Arial, 10pt"/>
<TextObject Name="Text59" Left="122.85" Top="170.1" Width="189" Height="18.9" Text="[Daten.ansprechperon_vorname]" Font="Arial, 10pt"/>
<LineObject Name="Line5" Left="18.9" Top="75.6" Width="1011.15"/>
<ChildBand Name="Child5" Top="249.7" Width="1047.06" Height="37.8" CanGrow="true">
<TextObject Name="Text14" Left="18.9" Top="18.9" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Bemerkung]" Font="Arial, 10pt"/>
<TextObject Name="Text44" Left="18.9" Width="311.85" Height="18.9" Text="Bemerkung für Organisatoren des BWP" Font="Arial, 10pt, style=Bold"/>
<ChildBand Name="Child6" Top="291.5" Width="1047.06" Height="47.25" CanGrow="true">
<TextObject Name="Text45" Left="18.9" Top="9.45" Width="529.2" Height="18.9" Text="Folgendes muss der Schüler mitbringen (spezielle Kleidung, Ausweis, usw.)" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text16" Left="18.9" Top="28.35" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Ausbildungsbemerkung]" Font="Arial, 10pt"/>
<ChildBand Name="Child7" Top="342.75" Width="1047.06" Height="66.15" CanGrow="true">
<TextObject Name="Text15" Left="18.9" Top="28.35" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Ausbildungsstandort]" Font="Arial, 10pt"/>
<TextObject Name="Text46" Left="18.9" Top="9.45" Width="529.2" Height="18.9" Text="Treffpunkt für Schüler, falls abweichend zur Geschäftsadresse" Font="Arial, 10pt, style=Bold"/>
<ChildBand Name="Child8" Top="412.9" Width="1047.06"/>
</ChildBand>
</ChildBand>
</ChildBand>
</ReportTitleBand>
<PageHeaderBand Name="PageHeader1" Top="416.9" Width="1047.06"/>
<GroupHeaderBand Name="GroupHeader1" Top="420.9" Width="1047.06" Height="113.4" KeepChild="true" KeepWithData="true" Condition="[Daten.id1]" KeepTogether="true">
<ShapeObject Name="Shape1" Left="18.9" Width="1011.15" Height="75.6"/>
<TextObject Name="Text19" Left="160.65" Top="9.45" Width="330.75" Height="18.9" Text="[Daten.AAnrede] [Daten.AName] [Daten.AVorname]" Font="Arial, 10pt"/>
<TextObject Name="Text20" Left="160.65" Top="28.35" Width="217.35" Height="18.9" Text="[Daten.ATel]" Font="Arial, 10pt"/>
<TextObject Name="Text47" Left="22.9" Top="28.35" Width="66.15" Height="18.9" Text="Telefon:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text17" Left="22.9" Top="9.45" Width="132.3" Height="18.9" Text="Ansprechpartner:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text48" Left="22.9" Top="47.25" Width="66.15" Height="18.9" Text="E-Mail:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text21" Left="160.65" Top="47.25" Width="500.85" Height="18.9" CanGrow="true" Text="[Daten.AMail]" Font="Arial, 10pt"/>
<TextObject Name="Text50" Left="463.05" Top="94.5" Width="113.4" Height="18.9" Text="Zeit" HorzAlign="Right" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text25" Left="349.65" Top="94.5" Width="85.05" Height="18.9" Text="Anz. Plätze" HorzAlign="Right" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text23" Left="255.15" Top="94.5" Width="66.15" Height="18.9" Text="Min.Anf." Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text49" Left="18.9" Top="94.5" Width="94.5" Height="18.9" Text="Beruf" Font="Arial, 10pt, style=Bold"/>
<LineObject Name="Line2" Left="18.9" Top="113.4" Width="1011.15"/>
<TextObject Name="Text53" Left="585.9" Top="94.5" Width="179.55" Height="18.9" Text="Bemerkung für Schüler" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text54" Left="784.35" Top="94.5" Width="179.55" Height="18.9" Text="Bemerkung zum Standort" Font="Arial, 10pt, style=Bold"/>
<DataBand Name="Data1" Top="538.3" Width="1047.06" Height="18.9" CanGrow="true" DataSource="Daten" KeepTogether="true">
<TextObject Name="Text18" Left="18.9" Width="226.8" Height="18.9" CanGrow="true" Text="[Daten.Bezeichnung]" Font="Arial, 10pt"/>
<TextObject Name="Text22" Left="255.15" Width="103.95" Height="18.9" Text="[Daten.Klasse]" Font="Arial, 10pt"/>
<TextObject Name="Text26" Left="444.15" Width="132.3" Height="18.9" Text="[Daten.Zeit]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text24" Left="378" Width="56.7" Height="18.9" Text="[Daten.Anzahl]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text27" Left="585.9" Width="189" Height="18.9" CanGrow="true" Text="[Daten.Schuelerbemerkung]" Font="Arial, 10pt"/>
<TextObject Name="Text29" Left="784.35" Width="245.7" Height="18.9" CanGrow="true" Text="[Daten.Standortbemerkung]" Font="Arial, 10pt"/>
<Sort>
<Sort Expression="[Daten.Zeit]"/>
<Sort Expression="[Daten.Bezeichnung]"/>
</Sort>
</DataBand>
<GroupFooterBand Name="GroupFooter1" Top="561.2" Width="1047.06" Height="18.9"/>
</GroupHeaderBand>
<PageFooterBand Name="PageFooter1" Top="584.1" Width="1047.06" Height="28.35">
<TextObject Name="Text51" Left="963.9" Top="9.45" Width="66.15" Height="18.9" Text="[Page#]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text52" Left="18.9" Top="9.45" Width="94.5" Height="18.9" Text="[Date]" Format="Date" Format.Format="d" Font="Arial, 10pt"/>
<LineObject Name="Line4" Left="18.9" Top="9.45" Width="1011.15"/>
</PageFooterBand>
</ReportPage>
</Report>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="07/24/2021 10:48:45" ReportInfo.Modified="07/24/2021 10:49:35" ReportInfo.CreatorVersion="2021.3.17.0">
<Styles Name="Standard">
<Style Name="Title" Font="Arial, 12pt, style=Bold"/>
<Style Name="Header" Font="Arial, 10pt, style=Bold"/>
<Style Name="Group" Font="Arial, 10pt, style=Bold"/>
<Style Name="Data" Font="Arial, 10pt"/>
<Style Name="Footer" Font="Arial, 10pt"/>
<Style Name="EvenRows" Fill.Color="WhiteSmoke" Font="Arial, 10pt"/>
</Styles>
<Dictionary>
<TableDataSource Name="Daten" ReferenceName="Data.Daten" DataType="System.Int32" Enabled="true">
<Column Name="Id" DataType="System.String"/>
<Column Name="UserName" DataType="System.String"/>
<Column Name="NormalizedUserName" DataType="System.String"/>
<Column Name="Email" DataType="System.String"/>
<Column Name="NormalizedEmail" DataType="System.String"/>
<Column Name="EmailConfirmed" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="PasswordHash" DataType="System.String"/>
<Column Name="SecurityStamp" DataType="System.String"/>
<Column Name="ConcurrencyStamp" DataType="System.String"/>
<Column Name="PhoneNumber" DataType="System.String"/>
<Column Name="PhoneNumberConfirmed" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="TwoFactorEnabled" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="LockoutEnd" DataType="System.DateTimeOffset"/>
<Column Name="LockoutEnabled" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="AccessFailedCount" DataType="System.Int32"/>
<Column Name="LockoutEndDateUtc" DataType="System.DateTimeOffset"/>
</TableDataSource>
</Dictionary>
<ReportPage Name="Page1" Watermark.Font="Arial, 60pt">
<ReportTitleBand Name="ReportTitle1" Width="718.2" Height="37.8">
<TextObject Name="Text1" Width="718.2" Height="37.8" Dock="Fill" Text="Daten" HorzAlign="Center" VertAlign="Center" Font="Arial, 12pt, style=Bold" Style="Title"/>
</ReportTitleBand>
<PageHeaderBand Name="PageHeader1" Top="41.8" Width="718.2" Height="28.35">
<TextObject Name="Text2" Left="18.9" Width="94.5" Height="18.9" Text="UserName" Font="Arial, 10pt"/>
</PageHeaderBand>
<DataBand Name="Data1" Top="74.15" Width="718.2" Height="56.7" EvenStyle="EvenRows" DataSource="Daten">
<TextObject Name="Text35" Left="18.9" Top="9.45" Width="94.5" Height="18.9" Text="[Daten.UserName]" Font="Arial, 10pt"/>
</DataBand>
<PageFooterBand Name="PageFooter1" Top="134.85" Width="718.2" Height="75.6">
<TextObject Name="Text34" Width="718.2" Height="75.6" Dock="Fill" Text="[PageN]" HorzAlign="Right" Font="Arial, 10pt" Style="Footer"/>
</PageFooterBand>
</ReportPage>
</Report>

View File

@@ -0,0 +1,43 @@
@page "/showconfig"
@using BlazorApp.Helper
@using System.IO;
<h3>ShowConfig</h3>
<button @onclick="ShowConfiguration">Config</button>
<br />
<label>Autologin: @alogin</label><br />
<label>Connectionstring: @connstring</label><br />
<label>Directory: @mydir</label><br />
<br />
<input placeholder="Enter your text" @bind-value="@pathi" />
<button @onclick="@UpdateFilelist">Refresh</button>
<br />
<label>Files: @filelist</label>
<hr />
@code {
public string alogin { get; set; } = "";
public string connstring { get; set; } = "";
public string mydir { get; set; } = "";
public string filelist { get; set; } = "";
public string pathi { get; set; } = "";
private void ShowConfiguration()
{
Helper.ParameterHelper ph = new Helper.ParameterHelper();
alogin = ph.GetParameter("autologin");
connstring = ph.GetConnString("BlazorAppContextConnection");
mydir = AppContext.BaseDirectory;
}
private void UpdateFilelist()
{
filelist = "";
string [] fileEntries = Directory.GetFiles(pathi);
foreach (string fileName in fileEntries)
filelist = filelist + ", " + fileName;
}
}

View File

@@ -0,0 +1,346 @@
@page "/Teacher/TeacherContact"
@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 BlazorApp.Helper
@using BWPMModels;
<div class="control-section e-tab-section">
<EditForm Model="_lehrer" OnValidSubmit="@Submit" OnInvalidSubmit="@InvalidSubmit">
<div class="card">
<div class="card-body">
<SfButton IsPrimary="true" OnClick="@(() => SaveClick())">Speichern</SfButton>
</div>
</div>
<DataAnnotationsValidator />
<SfTab ID="BlazorTab" Height="390">
<TabItems>
<TabItem>
<ChildContent>
<TabHeader Text="Kontakt-Daten"></TabHeader>
</ChildContent>
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Adress-Daten</h5>
<form>
<div class="form-group row">
<label for="Anrede" class="col-2 col-form-label">Anrede</label>
<div class="col-10">
<select id="Anrede" name="Anrede" class="form-control" @bind="@_lehrer.anredeID">
<option value="1">Herr</option>
<option value="2">Frau</option>
<option value="3">Damen und Herren</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="nameZ1" class="col-2 col-form-label">Name</label>
<div class="col-10">
<InputText id="namez1" class="form-control" @bind-Value="_lehrer.name" placeholder="Nachname" />
<ValidationMessage For="@(() => _lehrer.name)" />
</div>
</div>
<div class="form-group row">
<label for="nameZ2" class="col-2 col-form-label">Zusatz</label>
<div class="col-10">
<InputText id="nameZ2" class="form-control" @bind-Value="@_lehrer.vorname" placeholder="vorname" />
<ValidationMessage For="@(() => _lehrer.vorname)" />
</div>
</div>
<hr />
<div class="form-group row">
<label for="telefon" class="col-2 col-form-label">Telefon</label>
<div class="col-10">
<InputText id="tel" class="form-control" @bind-Value="@_lehrer.tel" placeholder="Telefon-Nummer" />
<ValidationMessage For="@(() => _lehrer.tel)" />
</div>
</div>
<div class="form-group row">
<label for="handy" class="col-2 col-form-label">Mobile</label>
<div class="col-10">
<InputText id="handy" class="form-control" @bind-Value="@_lehrer.handy" placeholder="Mobile-Nummer" />
<ValidationMessage For="@(() => _lehrer.handy)" />
</div>
</div>
<div class="form-group row">
<label for="email" class="col-2 col-form-label">E-Mail</label>
<div class="col-10">
<InputText id="mail" class="form-control" @bind-Value="@_lehrer.email" placeholder="E-Mail" required="required" typeof="email" />
<ValidationMessage For="@(() => _lehrer.email)" />
</div>
</div>
<div class="form-group row">
<label for="Schulhaus" class="col-2 col-form-label">Schulhaus</label>
<div class="col-10">
<select id="Schulhaus" name="Schulhaus" class="form-control" @bind="@_lehrer.schulhausID">
@foreach (var sh in _schulhaus)
{
<option value="@sh.ID">@sh.bezeichnung</option>
}
</select>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Klassen und Klassengrösse</h5>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="false" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Klasse" OnDataBound="RowDataBoundHandler"></GridEvents>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(Klasse.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60" Visible="true"></GridColumn>
<GridForeignColumn Field=@nameof(Klasse.schulhausID) HeaderText="Schulhaus" ForeignKeyValue="bezeichnung" ForeignKeyField="ID" ForeignDataSource="@_schulhaus" Width="150"></GridForeignColumn>
@*<GridColumn Field=@nameof(Klasse.schulhausID) HeaderText="Schulhausid" Width="100" Visible="true"></GridColumn>*@
<GridColumn Field=@nameof(Klasse.bezeichnung) HeaderText="Bezeichnung" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Klasse.klassengroesse) HeaderText="Klassengrösse" Width="100" Visible="true"></GridColumn>
<GridColumn Field=@nameof(Klasse.aktiv) HeaderText="Aktiv" Width="100" Visible="false" DisplayAsCheckBox="true"></GridColumn>
<GridColumn Field=@nameof(Klasse.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Klasse.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
<GridColumn Field=@nameof(Klasse.mutierer) HeaderText="Mutierer" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Klasse.lehrerID) HeaderText="Lehrerid" Width="100" Visible="false"></GridColumn>
<GridColumn Field=@nameof(Klasse.mandantnr) HeaderText="Mandantnr" Width="100" Visible="false"></GridColumn>
</GridColumns>
</SfGrid>
<form>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</TabItem>
</TabItems>
</SfTab>
</EditForm>
</div>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowErrorDialog">
<DialogTemplates>
<Header> Formmular unvollständig </Header>
<Content> Bitte das Formular vollständig ausfüllen. </Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowErrorDialog_grid">
<DialogTemplates>
<Header> Formmular unvollständig </Header>
<Content> Bitte das Formular vollständig ausfüllen. </Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
</DialogButtons>
</SfDialog>
@code {
SfGrid<Klasse> Grid { get; set; }
public int Value = 0;
public List<BWPMModels.Klasse> GridData { get; set; }
public List<BWPMModels.Klasse> Klasses { get; set; }
public int foundrow = 0;
public bool ContinuePaging = true;
public bool InitialRender { get; set; }
private List<BWPMModels.Schulhaus> _schulhaus { get; set; } = BlazorApp.Controller.SchulhausController.GetAllData();
private Lehrer _lehrer { get; set; } = new BWPMModels.Lehrer();
public List<BWPMModels.Lehrer> Lehrerdaten { get; set; }
string userid = "";
public static int? pkey { get; set; }
public bool Initial { get; set; } = true;
private bool ShowErrorDialog { get; set; } = false;
private bool ShowErrorDialog_grid { get; set; } = false;
public void Submit()
{
BlazorApp.Controller.LehrerController.PUT(_lehrer);
}
public void InvalidSubmit()
{
ShowErrorDialog = true;
}
private void CloseDialog()
{
this.ShowErrorDialog = false;
}
private void SaveClick()
{
}
protected override async void OnInitialized()
{
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
userid = await sessionStorage.GetItemAsync<string>("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);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}
if (firstRender)
{
Lehrerdaten = BlazorApp.Controller.LehrerController.GetByUserID(userid);
_lehrer = Lehrerdaten.First<BWPMModels.Lehrer>();
GridData = BlazorApp.Controller.KlasseController.GetByLehrerID(_lehrer.ID);
}
}
private async Task OnBeginHandler(ActionEventArgs<BWPMModels.Klasse> Args)
{
try{
if (_lehrer.ID==0)
{ShowErrorDialog_grid=true
return}
}
catch
{ ShowErrorDialog_grid=true
return}
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
{
if (Args.Action == "Add")
{
Args.Data.lehrerID = _lehrer.ID;
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.KlasseController.POST(Args.Data);
Value = Args.Data.ID;
}
else
{
Args.Data.mutierer = userid.ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.KlasseController.PUT(Args.Data);
Value = Args.Data.ID;
Grid.Refresh();
}
}
}
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Klasse> 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<BWPMModels.Klasse> 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<double> 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<Klasse> 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;
}
}

View File

@@ -23,7 +23,9 @@
<body>
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
<app>
<component type="typeof(App)" render-mode="ServerPrerendered" />
<component type="typeof(App)" render-mode="Server" />
@*<component type="typeof(App)" render-mode="ServerPrerendered" />*@
</app>
<div id="blazor-error-ui">

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DeleteExistingFiles>False</DeleteExistingFiles>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>\\192.168.111.111\web\dotnetcore\blazorapp</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>netcoreapp3.1</TargetFramework>
<ProjectGuid>649400f9-4953-4ae8-acca-c497fef91c39</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PublishTargetUrl>\\192.168.111.111\web\dotnetcore\blazorapp</_PublishTargetUrl>
<History>True|2021-08-04T11:40:45.9365003Z;True|2021-08-04T12:50:34.3278165+02:00;True|2021-08-04T09:10:42.6301597+02:00;True|2021-08-04T09:03:43.2843398+02:00;True|2021-08-04T08:42:04.0809876+02:00;True|2021-08-04T08:31:43.5861029+02:00;True|2021-08-04T08:26:44.6244276+02:00;True|2021-08-03T10:47:55.0601300+02:00;True|2021-08-02T13:02:35.6235887+02:00;True|2021-08-02T12:58:13.4350136+02:00;</History>
</PropertyGroup>
</Project>

View File

@@ -18,10 +18,17 @@
"BlazorApp": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"publishAllPorts": true,
"useSSL": true
}
}
}
}

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" standalone="yes"?>
<LPReports>
<Auswertungen>
<Bericht>Firmendaten</Bericht>
<SQL> SELECT dbo.Firma.ID, dbo.Firma.NameZ1, dbo.Firma.NameZ2, dbo.Firma.Strasse, dbo.Firma.PLZ, dbo.Firma.Ort, dbo.Firma.Tel, dbo.Firma.handy, dbo.Firma.Web, dbo.Firma.Mail,
dbo.Firma.Bemerkung, dbo.Firma.Anrede, dbo.Firma.Ausbildungsstandort, dbo.Firma.Ausbildungsbemerkung, dbo.Firma.ansprechperson_name, dbo.Firma.ansprechperon_vorname, dbo.Ansprechpartner.id,
dbo.Ansprechpartner.Name AS AName, dbo.Ansprechpartner.Vorname AS AVorname, dbo.Ansprechpartner.Tel AS ATel, dbo.Ansprechpartner.EMail AS AMail, dbo.Ansprechpartner.Anrede AS AAnrede, dbo.Beruf.Bezeichnung,
dbo.KlassenTyp.bezeichnung AS Klasse, dbo.Zeiten.Bezeichnung AS Zeit, dbo.FirmaBeruf.Anzahl, dbo.FirmaBeruf.Schuelerbemerkung, dbo.FirmaBeruf.Standortbemerkung
,dbo.Firma.mandantnr
FROM dbo.Beruf INNER JOIN
dbo.FirmaBeruf ON dbo.Beruf.id = dbo.FirmaBeruf.Berufid INNER JOIN
dbo.Zeiten ON dbo.FirmaBeruf.Zeitid = dbo.Zeiten.id INNER JOIN
dbo.Firma INNER JOIN
dbo.Ansprechpartner ON dbo.Firma.ID = dbo.Ansprechpartner.FirmaID ON dbo.FirmaBeruf.Ansprechpartnerid = dbo.Ansprechpartner.id INNER JOIN
dbo.KlassenTyp ON dbo.FirmaBeruf.KlassetypID = dbo.klassentyp.id
WHERE (dbo.Ansprechpartner.Aktiv = 1) AND (dbo.FirmaBeruf.Aktiv = 1) and (dbo.firma.id=4)</SQL>
<SQLTYPE>SQL</SQLTYPE>
<Filename>Firmendaten.frx</Filename>
</Auswertungen>
<Auswertungen>
<Bericht>Userliste</Bericht>
<SQL>SELECT * FROM [BWPM].[dbo].[AspNetUsers]</SQL>
<SQLTYPE>SQL</SQLTYPE>
<Filename>Userliste.frx</Filename>
</Auswertungen>
</LPReports>

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="Vb" ReportInfo.Created="07/19/2012 16:02:38" ReportInfo.Modified="07/29/2021 11:42:09" ReportInfo.CreatorVersion="2021.3.20.0">
<ScriptText>Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Drawing
Imports Microsoft.VisualBasic
Imports FastReport
Imports FastReport.Data
Imports FastReport.Dialog
Imports FastReport.Table
Imports FastReport.Barcode
Imports FastReport.Utils
Namespace FastReport
Public Class ReportScript
Private Sub Picture1_BeforePrint(ByVal sender As object, ByVal e As EventArgs)
Picture1.ImageLocation= CType(Report.GetParameterValue(&quot;URL&quot;), String)
End Sub
End Class
End Namespace
</ScriptText>
<Dictionary>
<TableDataSource Name="Daten" ReferenceName="Data.Daten" DataType="System.Int32" Enabled="true">
<Column Name="NameZ1" DataType="System.String"/>
<Column Name="NameZ2" DataType="System.String"/>
<Column Name="Strasse" DataType="System.String"/>
<Column Name="PLZ" DataType="System.String"/>
<Column Name="Ort" DataType="System.String"/>
<Column Name="Tel" DataType="System.String"/>
<Column Name="Web" DataType="System.String"/>
<Column Name="Bemerkung" DataType="System.String"/>
<Column Name="Anrede" DataType="System.String"/>
<Column Name="Ausbildungsstandort" DataType="System.String"/>
<Column Name="Ausbildungsbemerkung" DataType="System.String"/>
<Column Name="Bezeichnung" DataType="System.String"/>
<Column Name="Anzahl" DataType="System.Int32"/>
<Column Name="AName" DataType="System.String"/>
<Column Name="AVorname" DataType="System.String"/>
<Column Name="ATel" DataType="System.String"/>
<Column Name="AMail" DataType="System.String"/>
<Column Name="AAnrede" DataType="System.String"/>
<Column Name="Klasse" DataType="System.String"/>
<Column Name="Zeit" DataType="System.String"/>
<Column Name="Schuelerbemerkung" DataType="System.String"/>
<Column Name="Standortbemerkung" DataType="System.String"/>
<Column Name="ID" DataType="System.Int32"/>
<Column Name="handy" DataType="System.String"/>
<Column Name="Mail" DataType="System.String"/>
<Column Name="ansprechperson_name" DataType="System.String"/>
<Column Name="ansprechperon_vorname" DataType="System.String"/>
<Column Name="id1" DataType="System.Int32"/>
<Column Name="mandantnr" DataType="System.Int32"/>
</TableDataSource>
<Parameter Name="Parcours" DataType="System.String"/>
<Parameter Name="Spruch" DataType="System.String"/>
<Parameter Name="URL" DataType="System.String"/>
</Dictionary>
<ReportPage Name="Page1" Landscape="true" PaperWidth="297" PaperHeight="210" RawPaperSize="9" Watermark.Font="Arial, 60pt">
<ReportTitleBand Name="ReportTitle1" Width="1047.06" Height="245.7">
<TextObject Name="Text32" Left="567" Top="9.45" Width="463.05" Height="18.9" Text="[Parcours]" HorzAlign="Right" Font="Arial, 12pt, style=Bold"/>
<TextObject Name="Text33" Left="567" Top="37.8" Width="463.05" Height="18.9" Text="Firmendaten" HorzAlign="Right" Font="Arial, 12pt, style=Bold"/>
<TextObject Name="Text1" Left="122.85" Top="94.5" Width="207.9" Height="18.9" Text="[Daten.NameZ1]" Font="Arial, 10pt"/>
<TextObject Name="Text9" Left="18.9" Top="94.5" Width="103.95" Height="18.9" Text="Name Zeile 1:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text40" Left="359.1" Top="94.5" Width="66.15" Height="18.9" Text="Telefon:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text10" Left="434.7" Top="94.5" Width="141.75" Height="18.9" Text="[Daten.Tel]" Font="Arial, 10pt"/>
<TextObject Name="Text2" Left="122.85" Top="113.4" Width="207.9" Height="18.9" Text="[Daten.NameZ2]" Font="Arial, 10pt"/>
<TextObject Name="Text3" Left="122.85" Top="132.3" Width="207.9" Height="18.9" Text="[Daten.Anrede]" Font="Arial, 10pt"/>
<TextObject Name="Text34" Left="18.9" Top="113.4" Width="103.95" Height="18.9" Text="Name Zeile 2:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text35" Left="18.9" Top="132.3" Width="103.95" Height="18.9" Text="Anrede:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text42" Left="359.1" Top="141.75" Width="66.15" Height="18.9" Text="Internet:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text12" Left="434.7" Top="141.75" Width="245.7" Height="18.9" Text="[Daten.Web]" Font="Arial, 10pt"/>
<TextObject Name="Text36" Left="18.9" Top="151.2" Width="103.95" Height="18.9" Text="Name:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text43" Left="359.1" Top="160.65" Width="66.15" Height="18.9" Text="E-Mail:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text13" Left="434.7" Top="160.65" Width="245.7" Height="18.9" Text="[Daten.Mail]" Font="Arial, 10pt"/>
<TextObject Name="Text37" Left="18.9" Top="170.1" Width="103.95" Height="18.9" Text="Vorname:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text6" Left="122.85" Top="189" Width="207.9" Height="18.9" Text="[Daten.Strasse]" Font="Arial, 10pt"/>
<TextObject Name="Text38" Left="18.9" Top="189" Width="103.95" Height="18.9" Text="Strasse:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text7" Left="122.85" Top="207.9" Width="47.25" Height="18.9" Text="[Daten.PLZ]" Font="Arial, 10pt"/>
<TextObject Name="Text8" Left="170.1" Top="207.9" Width="132.3" Height="18.9" Text="[Daten.Ort]" Font="Arial, 10pt"/>
<TextObject Name="Text39" Left="18.9" Top="207.9" Width="103.95" Height="18.9" Text="PLZ / Ort:" Font="Arial, 10pt, style=Bold"/>
<PictureObject Name="Picture1" Left="9.45" Top="-18.9" Width="103.95" Height="85.05" BeforePrintEvent="Picture1_BeforePrint" Image=""/>
<TextObject Name="Text55" Left="359.1" Top="113.4" Width="66.15" Height="18.9" Text="Natel:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text28" Left="434.7" Top="113.4" Width="141.75" Height="18.9" Text="[Daten.handy]" Font="Arial, 10pt"/>
<TextObject Name="Text58" Left="122.85" Top="151.2" Width="189" Height="18.9" Text="[Daten.ansprechperson_name]" Font="Arial, 10pt"/>
<TextObject Name="Text59" Left="122.85" Top="170.1" Width="189" Height="18.9" Text="[Daten.ansprechperon_vorname]" Font="Arial, 10pt"/>
<LineObject Name="Line5" Left="18.9" Top="75.6" Width="1011.15"/>
<ChildBand Name="Child5" Top="249.7" Width="1047.06" Height="37.8" CanGrow="true">
<TextObject Name="Text14" Left="18.9" Top="18.9" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Bemerkung]" Font="Arial, 10pt"/>
<TextObject Name="Text44" Left="18.9" Width="311.85" Height="18.9" Text="Bemerkung für Organisatoren des BWP" Font="Arial, 10pt, style=Bold"/>
<ChildBand Name="Child6" Top="291.5" Width="1047.06" Height="47.25" CanGrow="true">
<TextObject Name="Text45" Left="18.9" Top="9.45" Width="529.2" Height="18.9" Text="Folgendes muss der Schüler mitbringen (spezielle Kleidung, Ausweis, usw.)" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text16" Left="18.9" Top="28.35" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Ausbildungsbemerkung]" Font="Arial, 10pt"/>
<ChildBand Name="Child7" Top="342.75" Width="1047.06" Height="66.15" CanGrow="true">
<TextObject Name="Text15" Left="18.9" Top="28.35" Width="1011.15" Height="18.9" CanGrow="true" Text="[Daten.Ausbildungsstandort]" Font="Arial, 10pt"/>
<TextObject Name="Text46" Left="18.9" Top="9.45" Width="529.2" Height="18.9" Text="Treffpunkt für Schüler, falls abweichend zur Geschäftsadresse" Font="Arial, 10pt, style=Bold"/>
<ChildBand Name="Child8" Top="412.9" Width="1047.06"/>
</ChildBand>
</ChildBand>
</ChildBand>
</ReportTitleBand>
<PageHeaderBand Name="PageHeader1" Top="416.9" Width="1047.06"/>
<GroupHeaderBand Name="GroupHeader1" Top="420.9" Width="1047.06" Height="113.4" KeepChild="true" KeepWithData="true" Condition="[Daten.id1]" KeepTogether="true">
<ShapeObject Name="Shape1" Left="18.9" Width="1011.15" Height="75.6"/>
<TextObject Name="Text19" Left="160.65" Top="9.45" Width="330.75" Height="18.9" Text="[Daten.AAnrede] [Daten.AName] [Daten.AVorname]" Font="Arial, 10pt"/>
<TextObject Name="Text20" Left="160.65" Top="28.35" Width="217.35" Height="18.9" Text="[Daten.ATel]" Font="Arial, 10pt"/>
<TextObject Name="Text47" Left="22.9" Top="28.35" Width="66.15" Height="18.9" Text="Telefon:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text17" Left="22.9" Top="9.45" Width="132.3" Height="18.9" Text="Ansprechpartner:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text48" Left="22.9" Top="47.25" Width="66.15" Height="18.9" Text="E-Mail:" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text21" Left="160.65" Top="47.25" Width="500.85" Height="18.9" CanGrow="true" Text="[Daten.AMail]" Font="Arial, 10pt"/>
<TextObject Name="Text50" Left="463.05" Top="94.5" Width="113.4" Height="18.9" Text="Zeit" HorzAlign="Right" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text25" Left="349.65" Top="94.5" Width="85.05" Height="18.9" Text="Anz. Plätze" HorzAlign="Right" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text23" Left="255.15" Top="94.5" Width="66.15" Height="18.9" Text="Min.Anf." Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text49" Left="18.9" Top="94.5" Width="94.5" Height="18.9" Text="Beruf" Font="Arial, 10pt, style=Bold"/>
<LineObject Name="Line2" Left="18.9" Top="113.4" Width="1011.15"/>
<TextObject Name="Text53" Left="585.9" Top="94.5" Width="179.55" Height="18.9" Text="Bemerkung für Schüler" Font="Arial, 10pt, style=Bold"/>
<TextObject Name="Text54" Left="784.35" Top="94.5" Width="179.55" Height="18.9" Text="Bemerkung zum Standort" Font="Arial, 10pt, style=Bold"/>
<DataBand Name="Data1" Top="538.3" Width="1047.06" Height="18.9" CanGrow="true" DataSource="Daten" KeepTogether="true">
<TextObject Name="Text18" Left="18.9" Width="226.8" Height="18.9" CanGrow="true" Text="[Daten.Bezeichnung]" Font="Arial, 10pt"/>
<TextObject Name="Text22" Left="255.15" Width="103.95" Height="18.9" Text="[Daten.Klasse]" Font="Arial, 10pt"/>
<TextObject Name="Text26" Left="444.15" Width="132.3" Height="18.9" Text="[Daten.Zeit]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text24" Left="378" Width="56.7" Height="18.9" Text="[Daten.Anzahl]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text27" Left="585.9" Width="189" Height="18.9" CanGrow="true" Text="[Daten.Schuelerbemerkung]" Font="Arial, 10pt"/>
<TextObject Name="Text29" Left="784.35" Width="245.7" Height="18.9" CanGrow="true" Text="[Daten.Standortbemerkung]" Font="Arial, 10pt"/>
<Sort>
<Sort Expression="[Daten.Zeit]"/>
<Sort Expression="[Daten.Bezeichnung]"/>
</Sort>
</DataBand>
<GroupFooterBand Name="GroupFooter1" Top="561.2" Width="1047.06" Height="18.9"/>
</GroupHeaderBand>
<PageFooterBand Name="PageFooter1" Top="584.1" Width="1047.06" Height="28.35">
<TextObject Name="Text51" Left="963.9" Top="9.45" Width="66.15" Height="18.9" Text="[Page#]" HorzAlign="Right" Font="Arial, 10pt"/>
<TextObject Name="Text52" Left="18.9" Top="9.45" Width="94.5" Height="18.9" Text="[Date]" Format="Date" Format.Format="d" Font="Arial, 10pt"/>
<LineObject Name="Line4" Left="18.9" Top="9.45" Width="1011.15"/>
</PageFooterBand>
</ReportPage>
</Report>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="07/24/2021 10:48:45" ReportInfo.Modified="07/24/2021 10:49:35" ReportInfo.CreatorVersion="2021.3.17.0">
<Styles Name="Standard">
<Style Name="Title" Font="Arial, 12pt, style=Bold"/>
<Style Name="Header" Font="Arial, 10pt, style=Bold"/>
<Style Name="Group" Font="Arial, 10pt, style=Bold"/>
<Style Name="Data" Font="Arial, 10pt"/>
<Style Name="Footer" Font="Arial, 10pt"/>
<Style Name="EvenRows" Fill.Color="WhiteSmoke" Font="Arial, 10pt"/>
</Styles>
<Dictionary>
<TableDataSource Name="Daten" ReferenceName="Data.Daten" DataType="System.Int32" Enabled="true">
<Column Name="Id" DataType="System.String"/>
<Column Name="UserName" DataType="System.String"/>
<Column Name="NormalizedUserName" DataType="System.String"/>
<Column Name="Email" DataType="System.String"/>
<Column Name="NormalizedEmail" DataType="System.String"/>
<Column Name="EmailConfirmed" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="PasswordHash" DataType="System.String"/>
<Column Name="SecurityStamp" DataType="System.String"/>
<Column Name="ConcurrencyStamp" DataType="System.String"/>
<Column Name="PhoneNumber" DataType="System.String"/>
<Column Name="PhoneNumberConfirmed" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="TwoFactorEnabled" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="LockoutEnd" DataType="System.DateTimeOffset"/>
<Column Name="LockoutEnabled" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="AccessFailedCount" DataType="System.Int32"/>
<Column Name="LockoutEndDateUtc" DataType="System.DateTimeOffset"/>
</TableDataSource>
</Dictionary>
<ReportPage Name="Page1" Watermark.Font="Arial, 60pt">
<ReportTitleBand Name="ReportTitle1" Width="718.2" Height="37.8">
<TextObject Name="Text1" Width="718.2" Height="37.8" Dock="Fill" Text="Daten" HorzAlign="Center" VertAlign="Center" Font="Arial, 12pt, style=Bold" Style="Title"/>
</ReportTitleBand>
<PageHeaderBand Name="PageHeader1" Top="41.8" Width="718.2" Height="28.35">
<TextObject Name="Text2" Left="18.9" Width="94.5" Height="18.9" Text="UserName" Font="Arial, 10pt"/>
</PageHeaderBand>
<DataBand Name="Data1" Top="74.15" Width="718.2" Height="56.7" EvenStyle="EvenRows" DataSource="Daten">
<TextObject Name="Text35" Left="18.9" Top="9.45" Width="94.5" Height="18.9" Text="[Daten.UserName]" Font="Arial, 10pt"/>
</DataBand>
<PageFooterBand Name="PageFooter1" Top="134.85" Width="718.2" Height="75.6">
<TextObject Name="Text34" Width="718.2" Height="75.6" Dock="Fill" Text="[PageN]" HorzAlign="Right" Font="Arial, 10pt" Style="Footer"/>
</PageFooterBand>
</ReportPage>
</Report>

View File

@@ -79,6 +79,32 @@
<RadzenPanelMenuItem Text="Abmelden" Path="/identity/account/logout" Icon=""></RadzenPanelMenuItem>
</Authorized>
<NotAuthorized></NotAuthorized>
</AuthorizeView>
<AuthorizeView Roles="Lehrer">
<Authorized>
@foreach (var mentry in TeacherMenu)
{
<RadzenPanelMenuItem @bind-Expanded="@mentry.Expanded" Text="@mentry.Name" Path="@mentry.Path" Icon="@mentry.Icon">
@if (mentry.Children != null)
{
@foreach (var child in mentry.Children)
{
if (child.Children != null)
{
<RadzenPanelMenuItem @bind-Expanded="@child.Expanded" Text="@child.Name" Icon="@child.Icon">
@foreach (var subchild in child.Children)
{
<RadzenPanelMenuItem Text="@subchild.Name" Path="@subchild.Path" />}
</RadzenPanelMenuItem> }
else
{
<RadzenPanelMenuItem Text="@child.Name" Path="@child.Path" Icon="@child.Icon" />}
}}
</RadzenPanelMenuItem>}
<RadzenPanelMenuItem Text="Abmelden" Path="/identity/account/logout" Icon=""></RadzenPanelMenuItem>
</Authorized>
<NotAuthorized></NotAuthorized>
</AuthorizeView>
<AuthorizeView Roles="Administrators">
<Authorized>
@@ -110,7 +136,8 @@
<RadzenPanelMenuItem Text="Anmelden" Path="/identity/account/login" Icon=""></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Registrierung Firma" Path="/identity/account/registercompany" Icon=""></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Registrierung Lehrer" Path="/identity/account/registerteacher" Icon=""></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="ScriptGenerator" Path="/Admin/ScriptGenerator" Icon=""></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="ShowConfig" Path="/ShowConfig" Icon=""></RadzenPanelMenuItem>
</NotAuthorized>
</AuthorizeView>
</RadzenPanelMenu>
@@ -162,6 +189,7 @@
//public List<BlazorApp.Models.MenuItem> AdminMenu = new List<Models.MenuItem>();
IEnumerable<BlazorApp.Models.MenuItem> AdminMenu;
IEnumerable<BlazorApp.Models.MenuItem> CompanyMenu;
IEnumerable<BlazorApp.Models.MenuItem> TeacherMenu;
string Theme
{
@@ -190,6 +218,7 @@
AdminMenu = MenuService.MenuAdmin;
CompanyMenu = MenuService.MenuComapny;
TeacherMenu = MenuService.MenuTeacher;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}

View File

@@ -17,7 +17,7 @@
@if (Theme != "default.css")
{
<link href="_content/Radzen.Blazor/css/@(Theme)" rel="stylesheet" />
<link href="_content/Radzen.Blazor/css/@(Theme)" rel="stylesheet" />
}
<RadzenDialog />
<RadzenNotification />
@@ -34,9 +34,6 @@
</RadzenLabel>
</div>
<div class="col-6 d-flex align-items-center justify-content-end">
@*<div class="d-none d-md-inline-flex align-items-center">
<Social />
</div>*@
<label class="d-none d-sm-inline-block" style="margin-left: 1rem">Theme:</label>
<RadzenDropDown style="margin:0 .5rem" TValue="string" TextProperty="Text" ValueProperty="Value" Data="@themes" Value="@ThemeState.CurrentTheme" Change="@ChangeTheme" />
</div>
@@ -55,16 +52,14 @@
<RadzenSidebar @ref="@sidebar0" @bind-Expanded="@sidebarExpanded">
<ChildContent>
@*<div style="padding: 1rem">
<RadzenTextBox Placeholder="Find component ..." type="search" @oninput="@FilterPanelMenu" style="width: 100%" />
</div>*@
<RadzenPanelMenu>
<AuthorizeView Roles="Administrators">
<Authorized>
@foreach (var Menuentry in AdminMenu)
{
<RadzenPanelMenuItem @bind-Expanded="Menuentry.Expanded" Text="Menuentry.Name" Path="MenuEntry.Path" Icon="MenuEntry.Icon">
</RadzenPanelMenuItem>}
{
<RadzenPanelMenuItem @bind-Expanded="Menuentry.Expanded" Text="Menuentry.Name" Path="MenuEntry.Path" Icon="MenuEntry.Icon">
</RadzenPanelMenuItem>
}
<RadzenPanelMenuItem Text="Abmelden" Path="/identity/account/logout" Icon=""></RadzenPanelMenuItem>
</Authorized>
<NotAuthorized>
@@ -72,27 +67,7 @@
</NotAuthorized>
</AuthorizeView>
</RadzenPanelMenu>
@*<RadzenPanelMenu>
@foreach (var category in examples)
{
<RadzenPanelMenuItem @bind-Expanded="@category.Expanded" Text="@category.Name" Path="@category.Path" Icon="@category.Icon">
@if (category.Children != null)
{
@foreach (var example in category.Children)
{
if (example.Children != null)
{
<RadzenPanelMenuItem Text="@example.Name" @bind-Expanded="@example.Expanded" Icon="@example.Icon">
@foreach (var child in example.Children)
{
<RadzenPanelMenuItem Text="@child.Name" Path="@child.Path" />}
</RadzenPanelMenuItem> }
else
{
<RadzenPanelMenuItem Text="@example.Name" Path="@example.Path" Icon="@example.Icon" />}
}}
</RadzenPanelMenuItem>}
</RadzenPanelMenu>*@
</ChildContent>
</RadzenSidebar>
<RadzenFooter>
@@ -103,76 +78,80 @@
</ChildContent>
</RadzenFooter>
@code {
RadzenSidebar sidebar0;
RadzenBody body0;
bool sidebarExpanded = true;
bool bodyExpanded = false;
dynamic themes = new[]
{
new { Text = "Default", Value = "default"},
new { Text = "Dark", Value="dark" },
new { Text = "Software", Value = "software"},
new { Text = "Humanistic", Value = "humanistic" }
RadzenSidebar sidebar0;
RadzenBody body0;
bool sidebarExpanded = true;
bool bodyExpanded = false;
dynamic themes = new[]
{
new { Text = "Default", Value = "default"},
new { Text = "Dark", Value="dark" },
new { Text = "Software", Value = "software"},
new { Text = "Humanistic", Value = "humanistic" }
};
IEnumerable<BlazorApp.Models.MenuItem> AdminMenu;
IEnumerable<BlazorApp.Models.MenuItem> AdminMenu;
string Theme
string Theme
{
get
{
return $"{ThemeState.CurrentTheme}.css";
}
}
protected override void OnInitialized()
{
if (httpContextAccessor != null && httpContextAccessor.HttpContext != null &&
httpContextAccessor.HttpContext.Request != null && httpContextAccessor.HttpContext.Request.Headers.ContainsKey("User-Agent"))
{
var userAgent = httpContextAccessor.HttpContext.Request.Headers["User-Agent"].FirstOrDefault();
if (!string.IsNullOrEmpty(userAgent))
{
get
if (userAgent.Contains("iPhone") || userAgent.Contains("Android") || userAgent.Contains("Googlebot"))
{
return $"{ThemeState.CurrentTheme}.css";
sidebarExpanded = false;
bodyExpanded = true;
}
}
}
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (!firstRender)
{
var example = ExampleService.FindCurrent(UriHelper.ToAbsoluteUri(UriHelper.Uri));
protected override void OnInitialized()
{
if (httpContextAccessor != null && httpContextAccessor.HttpContext != null &&
httpContextAccessor.HttpContext.Request != null && httpContextAccessor.HttpContext.Request.Headers.ContainsKey("User-Agent"))
{
var userAgent = httpContextAccessor.HttpContext.Request.Headers["User-Agent"].FirstOrDefault();
if (!string.IsNullOrEmpty(userAgent))
{
if (userAgent.Contains("iPhone") || userAgent.Contains("Android") || userAgent.Contains("Googlebot"))
{
sidebarExpanded = false;
bodyExpanded = true;
}
}
}
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}
}
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (!firstRender)
{
var example = ExampleService.FindCurrent(UriHelper.ToAbsoluteUri(UriHelper.Uri));
void ChangeTheme(object value)
{
ThemeState.CurrentTheme = value.ToString();
UriHelper.NavigateTo(UriHelper.ToAbsoluteUri(UriHelper.Uri).ToString());
}
//await JSRuntime.InvokeVoidAsync("setTitle", ExampleService.TitleFor(example));
}
}
void ChangeTheme(object value)
{
ThemeState.CurrentTheme = value.ToString();
UriHelper.NavigateTo(UriHelper.ToAbsoluteUri(UriHelper.Uri).ToString());
}
public class CustomMenuItem
{
public string Id { get; set; }
public string Text { get; set; }
public string ParentId { get; set; }
public string Url { get; set; }
} }
public class CustomMenuItem
{
public string Id { get; set; }
public string Text { get; set; }
public string ParentId { get; set; }
public string Url { get; set; }
}
}

View File

@@ -22,6 +22,7 @@ using Microsoft.AspNetCore.Components.Server;
using Radzen;
using Blazored.SessionStorage;
using BlazorApp.Helper;
using Microsoft.AspNetCore.Http;
namespace BlazorApp
{
@@ -56,7 +57,7 @@ namespace BlazorApp
services.AddScoped<TooltipService>();
services.AddScoped<ContextMenuService>();
services.AddBlazoredSessionStorage();
services.AddScoped<SessionState>();
//services.AddScoped<SessionState>();
// services.AddAuthentication("Identity.Application")
//.AddCookie();
@@ -95,6 +96,10 @@ namespace BlazorApp
services.AddScoped<ThemeState>();
services.AddScoped<ExampleService>();
services.AddScoped<MenuService>();
// services.AddScoped<SessionState>();
services.AddProtectedBrowserStorage();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -104,6 +109,7 @@ namespace BlazorApp
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
@@ -124,6 +130,24 @@ namespace BlazorApp
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
app.UseFastReport();
}
private async Task DeveloperLogin(HttpContext httpContext)
{
var UserManager = httpContext.RequestServices.GetRequiredService<UserManager<IdentityUser>>();
var signInManager = httpContext.RequestServices.GetRequiredService<SignInManager<IdentityUser>>();
var _user = await UserManager.FindByNameAsync("info@shub.ch");
await signInManager.SignInAsync(_user, isPersistent: false);
}
}
}

View File

@@ -11,3 +11,9 @@
@using Syncfusion.Blazor.Calendars
@using Radzen
@using Radzen.Blazor
@using FastReport
@using FastReport.Web
@using FastReport.Web.Blazor.Components
@using Blazored.SessionStorage

View File

@@ -17,10 +17,16 @@
"smtpserver": "smtp.eu.mailgun.org",
"smtpuser": "postmaster@mg.bwpm.ch",
"smtppw": "3eb92cf657bf678cd31b4942a3e05cd4-7238b007-50b3a800",
"smtpport": "587"
"smtpport": "587",
"autologin": "true",
"autologin_user": "teacher@shub.ch",
"autologin_pw": "Admin*123",
//"autologin_user": "hutter@shub.ch",
//"autologin_pw": "b",
},
"AllowedHosts": "*",
"ConnectionStrings": {
"BlazorAppContextConnection": "Server=shu00;Database=BWPM;user=sa;password=*shu29;MultipleActiveResultSets=true"
"BlazorAppContextConnection": "Server=shu00;Database=BWPM;user=sa;password=*shu29;MultipleActiveResultSets=true",
//"BlazorAppContextConnection": "Server=192.168.111.111;Database=BWPM;user=sa;password=SHU*sql123;MultipleActiveResultSets=true"
}
}

View File

@@ -1,5 +1,7 @@
<StaticWebAssets Version="1.0">
<ContentRoot BasePath="/Identity" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\microsoft.aspnetcore.identity.ui\3.1.15\staticwebassets\V4\" />
<ContentRoot BasePath="_content/FastReport.Web" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\fastreport.web\2021.3.17\build\..\staticwebassets\" />
<ContentRoot BasePath="_content/Microsoft.AspNetCore.ProtectedBrowserStorage" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\microsoft.aspnetcore.protectedbrowserstorage\0.1.0-alpha.19521.1\build\..\staticwebassets\" />
<ContentRoot BasePath="_content/Radzen.Blazor" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\radzen.blazor\3.6.7\build\..\staticwebassets\" />
<ContentRoot BasePath="_content/Syncfusion.Blazor" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\syncfusion.blazor\19.1.0.54\build\..\staticwebassets\" />
<ContentRoot BasePath="_content/Syncfusion.Blazor.Themes" Path="C:\Users\Steafn Hutter lokal\.nuget\packages\syncfusion.blazor.themes\19.1.0.54\build\..\staticwebassets\" />

View File

@@ -33,17 +33,22 @@
"dependencies": {
"BWPMModels": "1.0.0",
"Blazored.SessionStorage": "1.0.13",
"FastReport.Core": "2021.3.17",
"FastReport.Web": "2021.3.17",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "3.1.15",
"Microsoft.AspNetCore.Identity.UI": "3.1.15",
"Microsoft.AspNetCore.Mvc.NewtonsoftJson": "3.1.15",
"Microsoft.AspNetCore.ProtectedBrowserStorage": "0.1.0-alpha.19521.1",
"Microsoft.EntityFrameworkCore.SqlServer": "3.1.15",
"Microsoft.EntityFrameworkCore.Tools": "3.1.15",
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.10.14",
"Microsoft.VisualStudio.Web.CodeGeneration.Design": "3.1.5",
"Radzen.Blazor": "3.6.7",
"Syncfusion.Blazor": "19.1.0.54",
"Syncfusion.Blazor.Themes": "19.1.0.54",
"System.Net.Http": "4.3.4",
"System.Net.Http.Json": "5.0.0",
"FastReport.Compat.Reference": "2021.2.9.0",
"Microsoft.AspNetCore.Antiforgery": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "3.1.0.0",
@@ -289,7 +294,7 @@
"System.Web": "4.0.0.0",
"System.Web.HttpUtility": "4.0.2.0",
"System.Windows": "4.0.0.0",
"System.Windows.Extensions": "4.0.1.0",
"System.Windows.Extensions.Reference": "4.0.1.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0",
"System.Xml.ReaderWriter.Reference": "4.2.2.0",
@@ -340,6 +345,69 @@
"lib/netstandard2.0/Blazored.SessionStorage.dll": {}
}
},
"FastReport.Compat/2021.2.9": {
"dependencies": {
"Microsoft.CodeAnalysis.CSharp": "3.3.1",
"Microsoft.CodeAnalysis.VisualBasic": "3.3.1",
"System.Drawing.Common": "4.6.1",
"System.Windows.Extensions": "4.6.0"
},
"runtimeTargets": {
"runtimes/any/lib/netcoreapp3.0/FastReport.Compat.dll": {
"rid": "any",
"assetType": "runtime",
"assemblyVersion": "2021.2.9.0",
"fileVersion": "2021.2.9.0"
}
}
},
"FastReport.Core/2021.3.17": {
"dependencies": {
"FastReport.Compat": "2021.2.9",
"FastReport.DataVisualization": "2021.2.3",
"System.Drawing.Common": "4.6.1",
"System.Security.Cryptography.Pkcs": "4.5.2",
"System.Security.Permissions": "4.5.0",
"System.Text.Encoding.CodePages": "4.5.1"
},
"runtime": {
"lib/netstandard2.1/FastReport.dll": {
"assemblyVersion": "2021.3.17.0",
"fileVersion": "2021.3.17.0"
}
},
"compile": {
"lib/netstandard2.1/FastReport.dll": {}
}
},
"FastReport.DataVisualization/2021.2.3": {
"dependencies": {
"FastReport.Compat": "2021.2.9"
},
"runtimeTargets": {
"runtimes/any/lib/netcoreapp3.0/FastReport.DataVisualization.dll": {
"rid": "any",
"assetType": "runtime",
"assemblyVersion": "2021.2.3.0",
"fileVersion": "2021.2.3.0"
}
}
},
"FastReport.Web/2021.3.17": {
"dependencies": {
"FastReport.Compat": "2021.2.9",
"FastReport.Core": "2021.3.17"
},
"runtime": {
"lib/netcoreapp3.1/FastReport.Web.dll": {
"assemblyVersion": "2021.3.17.0",
"fileVersion": "2021.3.17.0"
}
},
"compile": {
"lib/netcoreapp3.1/FastReport.Web.dll": {}
}
},
"Microsoft.AspNet.WebApi.Client/5.2.7": {
"dependencies": {
"Newtonsoft.Json": "12.0.3",
@@ -532,6 +600,17 @@
"lib/netcoreapp3.1/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": {}
}
},
"Microsoft.AspNetCore.ProtectedBrowserStorage/0.1.0-alpha.19521.1": {
"runtime": {
"lib/netcoreapp3.0/Microsoft.AspNetCore.ProtectedBrowserStorage.dll": {
"assemblyVersion": "0.1.0.0",
"fileVersion": "0.100.19.52101"
}
},
"compile": {
"lib/netcoreapp3.0/Microsoft.AspNetCore.ProtectedBrowserStorage.dll": {}
}
},
"Microsoft.AspNetCore.Razor/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Html.Abstractions": "2.2.0"
@@ -766,6 +845,61 @@
"lib/netstandard2.0/Microsoft.CodeAnalysis.Razor.dll": {}
}
},
"Microsoft.CodeAnalysis.VisualBasic/3.3.1": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "3.3.1"
},
"runtime": {
"lib/netstandard2.0/Microsoft.CodeAnalysis.VisualBasic.dll": {
"assemblyVersion": "3.3.0.0",
"fileVersion": "3.300.119.46211"
}
},
"resources": {
"lib/netstandard2.0/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "cs"
},
"lib/netstandard2.0/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "de"
},
"lib/netstandard2.0/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "es"
},
"lib/netstandard2.0/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "fr"
},
"lib/netstandard2.0/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "it"
},
"lib/netstandard2.0/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ja"
},
"lib/netstandard2.0/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ko"
},
"lib/netstandard2.0/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "pl"
},
"lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "pt-BR"
},
"lib/netstandard2.0/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ru"
},
"lib/netstandard2.0/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "tr"
},
"lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "zh-Hans"
},
"lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "zh-Hant"
}
},
"compile": {
"lib/netstandard2.0/Microsoft.CodeAnalysis.VisualBasic.dll": {}
}
},
"Microsoft.CodeAnalysis.Workspaces.Common/3.3.1": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "3.3.1",
@@ -1256,6 +1390,7 @@
},
"Microsoft.NETCore.Platforms/3.1.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.10.14": {},
"Microsoft.VisualStudio.Web.CodeGeneration/3.1.5": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "3.1.15",
@@ -1384,6 +1519,11 @@
"System.Security.Principal.Windows": "4.7.0"
}
},
"Microsoft.Win32.SystemEvents/4.6.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.0"
}
},
"NETStandard.Library/2.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.0"
@@ -1864,6 +2004,15 @@
"System.Runtime": "4.3.0"
}
},
"System.Drawing.Common/4.6.1": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.0",
"Microsoft.Win32.SystemEvents": "4.6.0"
},
"compile": {
"ref/netcoreapp3.0/System.Drawing.Common.dll": {}
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.0",
@@ -2307,6 +2456,14 @@
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
}
},
"System.Security.Cryptography.Pkcs/4.5.2": {
"dependencies": {
"System.Security.Cryptography.Cng": "4.5.0"
},
"compile": {
"ref/netcoreapp2.1/System.Security.Cryptography.Pkcs.dll": {}
}
},
"System.Security.Cryptography.Primitives/4.3.0": {
"dependencies": {
"System.Diagnostics.Debug": "4.3.0",
@@ -2433,6 +2590,11 @@
}
},
"System.Threading.Tasks.Extensions/4.5.3": {},
"System.Windows.Extensions/4.6.0": {
"dependencies": {
"System.Drawing.Common": "4.6.1"
}
},
"System.Xml.ReaderWriter/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
@@ -2515,6 +2677,17 @@
"BWPMModels.dll": {}
}
},
"FastReport.Compat.Reference/2021.2.9.0": {
"runtime": {
"FastReport.Compat.dll": {
"assemblyVersion": "2021.2.9.0",
"fileVersion": "2021.2.9.0"
}
},
"compile": {
"FastReport.Compat.dll": {}
}
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"compile": {
"Microsoft.AspNetCore.Antiforgery.dll": {}
@@ -3985,7 +4158,7 @@
},
"compileOnly": true
},
"System.Windows.Extensions/4.0.1.0": {
"System.Windows.Extensions.Reference/4.0.1.0": {
"compile": {
"System.Windows.Extensions.dll": {}
},
@@ -4066,6 +4239,34 @@
"path": "blazored.sessionstorage/1.0.13",
"hashPath": "blazored.sessionstorage.1.0.13.nupkg.sha512"
},
"FastReport.Compat/2021.2.9": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fjjHxgbgbw5UpkLvlhsJVw9YrUSG+xPZjdHp/vcx6bpkLY+cHXAUavYzPZgOD2h7uvhsrUHzjsta6oIXEwhRkQ==",
"path": "fastreport.compat/2021.2.9",
"hashPath": "fastreport.compat.2021.2.9.nupkg.sha512"
},
"FastReport.Core/2021.3.17": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yqE7AYP/HI1x2nqwGoL6/GekrdAetoVTUDtZlMi5W2ELbxKPHUjOAweZE0m8hUjOrSwikSjduOdfEFyFYAIFjg==",
"path": "fastreport.core/2021.3.17",
"hashPath": "fastreport.core.2021.3.17.nupkg.sha512"
},
"FastReport.DataVisualization/2021.2.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-l+eBqq4fsJ+Pmr0cyQxcwyrGEiR9lgmQo2KjIykpl+zb6DJddTUp7dASx/7qS8fUFz7P94q91dSmhUngF5ndvQ==",
"path": "fastreport.datavisualization/2021.2.3",
"hashPath": "fastreport.datavisualization.2021.2.3.nupkg.sha512"
},
"FastReport.Web/2021.3.17": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BOtZvnH5rU8pK2tG0f7LZ8ivWcfgrWcOyNgsdhkmhkpivb+570R4E6eqesC0GUXx6uwfbPn0a0Ult9P3TlKGUw==",
"path": "fastreport.web/2021.3.17",
"hashPath": "fastreport.web.2021.3.17.nupkg.sha512"
},
"Microsoft.AspNet.WebApi.Client/5.2.7": {
"type": "package",
"serviceable": true,
@@ -4164,6 +4365,13 @@
"path": "microsoft.aspnetcore.mvc.newtonsoftjson/3.1.15",
"hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.3.1.15.nupkg.sha512"
},
"Microsoft.AspNetCore.ProtectedBrowserStorage/0.1.0-alpha.19521.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-P81qtHhl6KXr+TCm5qfCxkhFxkGtALmY3bNcraKX6rPGMbPMBGi9mIeCyUZVmpzIVkD1ocUfuRqiob05jR3hUA==",
"path": "microsoft.aspnetcore.protectedbrowserstorage/0.1.0-alpha.19521.1",
"hashPath": "microsoft.aspnetcore.protectedbrowserstorage.0.1.0-alpha.19521.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Razor/2.2.0": {
"type": "package",
"serviceable": true,
@@ -4234,6 +4442,13 @@
"path": "microsoft.codeanalysis.razor/3.1.0",
"hashPath": "microsoft.codeanalysis.razor.3.1.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.VisualBasic/3.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==",
"path": "microsoft.codeanalysis.visualbasic/3.3.1",
"hashPath": "microsoft.codeanalysis.visualbasic.3.3.1.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Workspaces.Common/3.3.1": {
"type": "package",
"serviceable": true,
@@ -4472,6 +4687,13 @@
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.10.14": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vjweoaSTnMiJY4Ts4/9xHt3vStk36q8FRXxvwqSx7YjdXTbQE0i/JxncHeL6vsdE1+4sn6of2/eLQeGZ43eL2Q==",
"path": "microsoft.visualstudio.azure.containers.tools.targets/1.10.14",
"hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.10.14.nupkg.sha512"
},
"Microsoft.VisualStudio.Web.CodeGeneration/3.1.5": {
"type": "package",
"serviceable": true,
@@ -4535,6 +4757,13 @@
"path": "microsoft.win32.registry/4.7.0",
"hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/4.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Edg+pFW5C8WJb680Za2kTV8TqUi6Ahl/WldRVoOVJ23UQLpDHFspa+umgFjkWZw24ETsU99Cg+ErZz683M4chg==",
"path": "microsoft.win32.systemevents/4.6.0",
"hashPath": "microsoft.win32.systemevents.4.6.0.nupkg.sha512"
},
"NETStandard.Library/2.0.0": {
"type": "package",
"serviceable": true,
@@ -4878,6 +5107,13 @@
"path": "system.diagnostics.tracing/4.3.0",
"hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
},
"System.Drawing.Common/4.6.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-TFAADvBEUhdDb2Lteq/BUeG0J1y7a0GyFdpB8yE/eAcbiN0R5MII1nXExXsrtRZiO8C/L9SozL2wGqkRlhiv6A==",
"path": "system.drawing.common/4.6.1",
"hashPath": "system.drawing.common.4.6.1.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
@@ -5172,6 +5408,13 @@
"path": "system.security.cryptography.openssl/4.3.0",
"hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Pkcs/4.5.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lIo52x0AAsZs8r1L58lPXaqN6PP51Z/XJts0kZtbZRNYcMguupxqRGjvc/GoqSKTbYa+aBwbkT4xoqQ7EsfN0A==",
"path": "system.security.cryptography.pkcs/4.5.2",
"hashPath": "system.security.cryptography.pkcs.4.5.2.nupkg.sha512"
},
"System.Security.Cryptography.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
@@ -5277,6 +5520,13 @@
"path": "system.threading.tasks.extensions/4.5.3",
"hashPath": "system.threading.tasks.extensions.4.5.3.nupkg.sha512"
},
"System.Windows.Extensions/4.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GL4izk0KgeyXklUOHViAk7y1IOYVYcn8nDpJZgcCqNzTGv2xd+8rgGgMKMo8G9nvfEuRCrNxWnGc74EiuYH2YA==",
"path": "system.windows.extensions/4.6.0",
"hashPath": "system.windows.extensions.4.6.0.nupkg.sha512"
},
"System.Xml.ReaderWriter/4.3.0": {
"type": "package",
"serviceable": true,
@@ -5310,6 +5560,11 @@
"serviceable": false,
"sha512": ""
},
"FastReport.Compat.Reference/2021.2.9.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"type": "referenceassembly",
"serviceable": false,
@@ -6535,7 +6790,7 @@
"serviceable": false,
"sha512": ""
},
"System.Windows.Extensions/4.0.1.0": {
"System.Windows.Extensions.Reference/4.0.1.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""

View File

@@ -3,6 +3,7 @@
"additionalProbingPaths": [
"C:\\Users\\Steafn Hutter lokal\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\Steafn Hutter lokal\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
]
}

Binary file not shown.

Binary file not shown.

View File

@@ -17,10 +17,16 @@
"smtpserver": "smtp.eu.mailgun.org",
"smtpuser": "postmaster@mg.bwpm.ch",
"smtppw": "3eb92cf657bf678cd31b4942a3e05cd4-7238b007-50b3a800",
"smtpport": "587"
"smtpport": "587",
"autologin": "true",
"autologin_user": "teacher@shub.ch",
"autologin_pw": "Admin*123",
//"autologin_user": "hutter@shub.ch",
//"autologin_pw": "b",
},
"AllowedHosts": "*",
"ConnectionStrings": {
"BlazorAppContextConnection": "Server=shu00;Database=BWPM;user=sa;password=*shu29;MultipleActiveResultSets=true"
"BlazorAppContextConnection": "Server=shu00;Database=BWPM;user=sa;password=*shu29;MultipleActiveResultSets=true",
//"BlazorAppContextConnection": "Server=192.168.111.111;Database=BWPM;user=sa;password=SHU*sql123;MultipleActiveResultSets=true"
}
}

View File

@@ -0,0 +1,416 @@
Futura Book-B C:\Users\Steafn Hutter lokal\AppData\Local\Microsoft\Windows\Fonts\Fub____.ttf
Futura Light C:\Users\Steafn Hutter lokal\AppData\Local\Microsoft\Windows\Fonts\ful____.ttf
Futura Book C:\Users\Steafn Hutter lokal\AppData\Local\Microsoft\Windows\Fonts\Fuw____.ttf
OCR-B 10 BT C:\Users\Steafn Hutter lokal\AppData\Local\Microsoft\Windows\Fonts\OCR-b__.ttf
Agency FB-B C:\Windows\Fonts\AGENCYB.TTF
Agency FB C:\Windows\Fonts\AGENCYR.TTF
Algerian C:\Windows\Fonts\ALGER.TTF
Book Antiqua-B C:\Windows\Fonts\ANTQUAB.TTF
Book Antiqua-B-I C:\Windows\Fonts\ANTQUABI.TTF
Book Antiqua-I C:\Windows\Fonts\ANTQUAI.TTF
Arial C:\Windows\Fonts\arial.ttf
Arial-B C:\Windows\Fonts\arialbd.ttf
Arial-B-I C:\Windows\Fonts\arialbi.ttf
Arial-I C:\Windows\Fonts\ariali.ttf
Arial Narrow C:\Windows\Fonts\ARIALN.TTF
Arial Narrow-B C:\Windows\Fonts\ARIALNB.TTF
Arial Narrow-B-I C:\Windows\Fonts\ARIALNBI.TTF
Arial Narrow-I C:\Windows\Fonts\ARIALNI.TTF
Arial Black-B C:\Windows\Fonts\ariblk.ttf
Arial Rounded MT Bold C:\Windows\Fonts\ARLRDBD.TTF
Bahnschrift C:\Windows\Fonts\bahnschrift.ttf
Baskerville Old Face C:\Windows\Fonts\BASKVILL.TTF
Bauhaus 93 C:\Windows\Fonts\BAUHS93.TTF
Bell MT C:\Windows\Fonts\BELL.TTF
Bell MT-B C:\Windows\Fonts\BELLB.TTF
Bell MT-I C:\Windows\Fonts\BELLI.TTF
Bernard MT Condensed C:\Windows\Fonts\BERNHC.TTF
Book Antiqua C:\Windows\Fonts\BKANT.TTF
Bodoni MT-B C:\Windows\Fonts\BOD_B.TTF
Bodoni MT-B-I C:\Windows\Fonts\BOD_BI.TTF
Bodoni MT Black-B-I C:\Windows\Fonts\BOD_BLAI.TTF
Bodoni MT Black-B C:\Windows\Fonts\BOD_BLAR.TTF
Bodoni MT Condensed-B C:\Windows\Fonts\BOD_CB.TTF
Bodoni MT Condensed-B-I C:\Windows\Fonts\BOD_CBI.TTF
Bodoni MT Condensed-I C:\Windows\Fonts\BOD_CI.TTF
Bodoni MT Condensed C:\Windows\Fonts\BOD_CR.TTF
Bodoni MT-I C:\Windows\Fonts\BOD_I.TTF
Bodoni MT Poster C:\Windows\Fonts\BOD_PSTC.TTF
Bodoni MT Poster Compressed C:\Windows\Fonts\BOD_PSTC.TTF
Bodoni MT C:\Windows\Fonts\BOD_R.TTF
Bookman Old Style C:\Windows\Fonts\BOOKOS.TTF
Bookman Old Style-B C:\Windows\Fonts\BOOKOSB.TTF
Bookman Old Style-B-I C:\Windows\Fonts\BOOKOSBI.TTF
Bookman Old Style-I C:\Windows\Fonts\BOOKOSI.TTF
Bradley Hand ITC C:\Windows\Fonts\BRADHITC.TTF
Britannic Bold C:\Windows\Fonts\BRITANIC.TTF
Berlin Sans FB-B C:\Windows\Fonts\BRLNSB.TTF
Berlin Sans FB Demi-B C:\Windows\Fonts\BRLNSDB.TTF
Berlin Sans FB C:\Windows\Fonts\BRLNSR.TTF
Broadway C:\Windows\Fonts\BROADW.TTF
Brush Script MT-I C:\Windows\Fonts\BRUSHSCI.TTF
Bookshelf Symbol 7 C:\Windows\Fonts\BSSYM7.TTF
Calibri C:\Windows\Fonts\calibri.ttf
Calibri-B C:\Windows\Fonts\calibrib.ttf
Calibri-I C:\Windows\Fonts\calibrii.ttf
Calibri Light C:\Windows\Fonts\calibril.ttf
Calibri Light-I C:\Windows\Fonts\calibrili.ttf
Calibri-B-I C:\Windows\Fonts\calibriz.ttf
Californian FB-B C:\Windows\Fonts\CALIFB.TTF
Californian FB-I C:\Windows\Fonts\CALIFI.TTF
Californian FB C:\Windows\Fonts\CALIFR.TTF
Calisto MT C:\Windows\Fonts\CALIST.TTF
Calisto MT-B C:\Windows\Fonts\CALISTB.TTF
Calisto MT-B-I C:\Windows\Fonts\CALISTBI.TTF
Calisto MT-I C:\Windows\Fonts\CALISTI.TTF
Cambria C:\Windows\Fonts\cambria.ttc
Cambria Math C:\Windows\Fonts\cambria.ttc
Cambria-B C:\Windows\Fonts\cambriab.ttf
Cambria-I C:\Windows\Fonts\cambriai.ttf
Cambria-B-I C:\Windows\Fonts\cambriaz.ttf
Candara C:\Windows\Fonts\Candara.ttf
Candara-B C:\Windows\Fonts\Candarab.ttf
Candara-I C:\Windows\Fonts\Candarai.ttf
Candara Light C:\Windows\Fonts\Candaral.ttf
Candara Light-I C:\Windows\Fonts\Candarali.ttf
Candara-B-I C:\Windows\Fonts\Candaraz.ttf
Castellar C:\Windows\Fonts\CASTELAR.TTF
Century Schoolbook C:\Windows\Fonts\CENSCBK.TTF
Centaur C:\Windows\Fonts\CENTAUR.TTF
Century C:\Windows\Fonts\CENTURY.TTF
Chiller C:\Windows\Fonts\CHILLER.TTF
Code39AzaleaNarrow1 C:\Windows\Fonts\Code39AzaleaNarrow1.ttf
Code39AzaleaNarrow2 C:\Windows\Fonts\Code39AzaleaNarrow2.ttf
Code39AzaleaNarrow3 C:\Windows\Fonts\Code39AzaleaNarrow3.ttf
Code39AzaleaRegular1 C:\Windows\Fonts\Code39AzaleaRegular1.ttf
Code39AzaleaRegular2 C:\Windows\Fonts\Code39AzaleaRegular2.ttf
Code39AzaleaRegular3 C:\Windows\Fonts\Code39AzaleaRegular3.ttf
Code39AzaleaWide1 C:\Windows\Fonts\Code39AzaleaWide1.ttf
Code39AzaleaWide2 C:\Windows\Fonts\Code39AzaleaWide2.ttf
Code39AzaleaWide3 C:\Windows\Fonts\Code39AzaleaWide3.ttf
Colonna MT C:\Windows\Fonts\COLONNA.TTF
Comic Sans MS C:\Windows\Fonts\comic.ttf
Comic Sans MS-B C:\Windows\Fonts\comicbd.ttf
Comic Sans MS-I C:\Windows\Fonts\comici.ttf
Comic Sans MS-B-I C:\Windows\Fonts\comicz.ttf
Consolas C:\Windows\Fonts\consola.ttf
Consolas-B C:\Windows\Fonts\consolab.ttf
Consolas-I C:\Windows\Fonts\consolai.ttf
Consolas-B-I C:\Windows\Fonts\consolaz.ttf
Constantia C:\Windows\Fonts\constan.ttf
Constantia-B C:\Windows\Fonts\constanb.ttf
Constantia-I C:\Windows\Fonts\constani.ttf
Constantia-B-I C:\Windows\Fonts\constanz.ttf
Cooper Black C:\Windows\Fonts\COOPBL.TTF
Copperplate Gothic Bold C:\Windows\Fonts\COPRGTB.TTF
Copperplate Gothic Light C:\Windows\Fonts\COPRGTL.TTF
Corbel C:\Windows\Fonts\corbel.ttf
Corbel-B C:\Windows\Fonts\corbelb.ttf
Corbel-I C:\Windows\Fonts\corbeli.ttf
Corbel Light C:\Windows\Fonts\corbell.ttf
Corbel Light-I C:\Windows\Fonts\corbelli.ttf
Corbel-B-I C:\Windows\Fonts\corbelz.ttf
Courier New C:\Windows\Fonts\cour.ttf
Courier New-B C:\Windows\Fonts\courbd.ttf
Courier New-B-I C:\Windows\Fonts\courbi.ttf
Courier New-I C:\Windows\Fonts\couri.ttf
Curlz MT C:\Windows\Fonts\CURLZ___.TTF
Dubai Bold-B C:\Windows\Fonts\DUBAI-BOLD.TTF
Dubai-B C:\Windows\Fonts\DUBAI-BOLD.TTF
Dubai Light C:\Windows\Fonts\DUBAI-LIGHT.TTF
Dubai Medium C:\Windows\Fonts\DUBAI-MEDIUM.TTF
Dubai Regular C:\Windows\Fonts\DUBAI-REGULAR.TTF
Dubai C:\Windows\Fonts\DUBAI-REGULAR.TTF
Ebrima C:\Windows\Fonts\ebrima.ttf
Ebrima-B C:\Windows\Fonts\ebrimabd.ttf
Elephant C:\Windows\Fonts\ELEPHNT.TTF
Elephant-I C:\Windows\Fonts\ELEPHNTI.TTF
Engravers MT C:\Windows\Fonts\ENGR.TTF
Eras Bold ITC C:\Windows\Fonts\ERASBD.TTF
Eras Demi ITC C:\Windows\Fonts\ERASDEMI.TTF
Eras Light ITC C:\Windows\Fonts\ERASLGHT.TTF
Eras Medium ITC C:\Windows\Fonts\ERASMD.TTF
Felix Titling C:\Windows\Fonts\FELIXTI.TTF
Forte-I C:\Windows\Fonts\FORTE.TTF
Franklin Gothic Book C:\Windows\Fonts\FRABK.TTF
Franklin Gothic Book-I C:\Windows\Fonts\FRABKIT.TTF
Franklin Gothic Demi C:\Windows\Fonts\FRADM.TTF
Franklin Gothic Demi Cond C:\Windows\Fonts\FRADMCN.TTF
Franklin Gothic Demi-I C:\Windows\Fonts\FRADMIT.TTF
Franklin Gothic Heavy C:\Windows\Fonts\FRAHV.TTF
Franklin Gothic Heavy-I C:\Windows\Fonts\FRAHVIT.TTF
Franklin Gothic Medium C:\Windows\Fonts\framd.ttf
Franklin Gothic Medium Cond C:\Windows\Fonts\FRAMDCN.TTF
Franklin Gothic Medium-I C:\Windows\Fonts\framdit.ttf
Freestyle Script C:\Windows\Fonts\FREESCPT.TTF
French Script MT C:\Windows\Fonts\FRSCRIPT.TTF
Footlight MT Light C:\Windows\Fonts\FTLTLT.TTF
Gabriola C:\Windows\Fonts\Gabriola.ttf
Gadugi C:\Windows\Fonts\gadugi.ttf
Gadugi-B C:\Windows\Fonts\gadugib.ttf
Garamond C:\Windows\Fonts\GARA.TTF
Garamond-B C:\Windows\Fonts\GARABD.TTF
Garamond-I C:\Windows\Fonts\GARAIT.TTF
Georgia C:\Windows\Fonts\georgia.ttf
Georgia-B C:\Windows\Fonts\georgiab.ttf
Georgia-I C:\Windows\Fonts\georgiai.ttf
Georgia-B-I C:\Windows\Fonts\georgiaz.ttf
Gigi C:\Windows\Fonts\GIGI.TTF
Gill Sans MT-B-I C:\Windows\Fonts\GILBI___.TTF
Gill Sans MT-B C:\Windows\Fonts\GILB____.TTF
Gill Sans MT Condensed C:\Windows\Fonts\GILC____.TTF
Gill Sans MT-I C:\Windows\Fonts\GILI____.TTF
Gill Sans Ultra Bold Condensed C:\Windows\Fonts\GILLUBCD.TTF
Gill Sans Ultra Bold C:\Windows\Fonts\GILSANUB.TTF
Gill Sans MT C:\Windows\Fonts\GIL_____.TTF
Gloucester MT Extra Condensed C:\Windows\Fonts\GLECB.TTF
Gill Sans MT Ext Condensed Bold C:\Windows\Fonts\GLSNECB.TTF
Century Gothic C:\Windows\Fonts\GOTHIC.TTF
Century Gothic-B C:\Windows\Fonts\GOTHICB.TTF
Century Gothic-B-I C:\Windows\Fonts\GOTHICBI.TTF
Century Gothic-I C:\Windows\Fonts\GOTHICI.TTF
Goudy Old Style C:\Windows\Fonts\GOUDOS.TTF
Goudy Old Style-B C:\Windows\Fonts\GOUDOSB.TTF
Goudy Old Style-I C:\Windows\Fonts\GOUDOSI.TTF
Goudy Stout C:\Windows\Fonts\GOUDYSTO.TTF
Harlow Solid Italic-I C:\Windows\Fonts\HARLOWSI.TTF
Harrington C:\Windows\Fonts\HARNGTON.TTF
Haettenschweiler C:\Windows\Fonts\HATTEN.TTF
Microsoft Himalaya C:\Windows\Fonts\himalaya.ttf
HoloLens MDL2 Assets C:\Windows\Fonts\holomdl2.ttf
High Tower Text C:\Windows\Fonts\HTOWERT.TTF
High Tower Text-I C:\Windows\Fonts\HTOWERTI.TTF
Impact C:\Windows\Fonts\impact.ttf
Imprint MT Shadow C:\Windows\Fonts\IMPRISHA.TTF
Informal Roman C:\Windows\Fonts\INFROMAN.TTF
Ink Free C:\Windows\Fonts\Inkfree.ttf
Blackadder ITC C:\Windows\Fonts\ITCBLKAD.TTF
Edwardian Script ITC C:\Windows\Fonts\ITCEDSCR.TTF
Kristen ITC C:\Windows\Fonts\ITCKRIST.TTF
Javanese Text C:\Windows\Fonts\javatext.ttf
Jokerman C:\Windows\Fonts\JOKERMAN.TTF
Juice ITC C:\Windows\Fonts\JUICE___.TTF
Kunstler Script C:\Windows\Fonts\KUNSTLER.TTF
Wide Latin C:\Windows\Fonts\LATINWD.TTF
Lucida Bright C:\Windows\Fonts\LBRITE.TTF
Lucida Bright-B C:\Windows\Fonts\LBRITED.TTF
Lucida Bright-B-I C:\Windows\Fonts\LBRITEDI.TTF
Lucida Bright-I C:\Windows\Fonts\LBRITEI.TTF
Lucida Calligraphy-I C:\Windows\Fonts\LCALLIG.TTF
Leelawadee UI-B C:\Windows\Fonts\LeelaUIb.ttf
Leelawadee C:\Windows\Fonts\LEELAWAD.TTF
Leelawadee-B C:\Windows\Fonts\LEELAWDB.TTF
Leelawadee UI C:\Windows\Fonts\LeelawUI.ttf
Leelawadee UI Semilight C:\Windows\Fonts\LeelUIsl.ttf
Lucida Fax C:\Windows\Fonts\LFAX.TTF
Lucida Fax-B C:\Windows\Fonts\LFAXD.TTF
Lucida Fax-B-I C:\Windows\Fonts\LFAXDI.TTF
Lucida Fax-I C:\Windows\Fonts\LFAXI.TTF
Lucida Handwriting-I C:\Windows\Fonts\LHANDW.TTF
Lucida Sans C:\Windows\Fonts\LSANS.TTF
Lucida Sans-B C:\Windows\Fonts\LSANSD.TTF
Lucida Sans-B-I C:\Windows\Fonts\LSANSDI.TTF
Lucida Sans-I C:\Windows\Fonts\LSANSI.TTF
Lucida Sans Typewriter C:\Windows\Fonts\LTYPE.TTF
Lucida Sans Typewriter-B C:\Windows\Fonts\LTYPEB.TTF
Lucida Sans Typewriter-B-I C:\Windows\Fonts\LTYPEBO.TTF
Lucida Sans Typewriter-I C:\Windows\Fonts\LTYPEO.TTF
Lucida Console C:\Windows\Fonts\lucon.ttf
Lucida Sans Unicode C:\Windows\Fonts\l_10646.ttf
Magneto-B C:\Windows\Fonts\MAGNETOB.TTF
Maiandra GD C:\Windows\Fonts\MAIAN.TTF
Malgun Gothic C:\Windows\Fonts\malgun.ttf
맑은 고딕 C:\Windows\Fonts\malgun.ttf
Malgun Gothic-B C:\Windows\Fonts\malgunbd.ttf
맑은 고딕-B C:\Windows\Fonts\malgunbd.ttf
Malgun Gothic Semilight C:\Windows\Fonts\malgunsl.ttf
맑은 고딕 Semilight C:\Windows\Fonts\malgunsl.ttf
Marlett C:\Windows\Fonts\marlett.ttf
Matura MT Script Capitals C:\Windows\Fonts\MATURASC.TTF
Microsoft Sans Serif C:\Windows\Fonts\micross.ttf
MingLiU-ExtB C:\Windows\Fonts\mingliub.ttc
細明體-ExtB C:\Windows\Fonts\mingliub.ttc
PMingLiU-ExtB C:\Windows\Fonts\mingliub.ttc
新細明體-ExtB C:\Windows\Fonts\mingliub.ttc
MingLiU_HKSCS-ExtB C:\Windows\Fonts\mingliub.ttc
細明體_HKSCS-ExtB C:\Windows\Fonts\mingliub.ttc
Mistral C:\Windows\Fonts\MISTRAL.TTF
Myanmar Text C:\Windows\Fonts\mmrtext.ttf
Myanmar Text-B C:\Windows\Fonts\mmrtextb.ttf
Modern No. 20 C:\Windows\Fonts\MOD20.TTF
Mongolian Baiti C:\Windows\Fonts\monbaiti.ttf
MS Gothic C:\Windows\Fonts\msgothic.ttc
ゴシック C:\Windows\Fonts\msgothic.ttc
MS UI Gothic C:\Windows\Fonts\msgothic.ttc
MS PGothic C:\Windows\Fonts\msgothic.ttc
Pゴシック C:\Windows\Fonts\msgothic.ttc
微軟正黑體 C:\Windows\Fonts\msjh.ttc
Microsoft JhengHei C:\Windows\Fonts\msjh.ttc
Microsoft JhengHei UI C:\Windows\Fonts\msjh.ttc
微軟正黑體-B C:\Windows\Fonts\msjhbd.ttc
Microsoft JhengHei-B C:\Windows\Fonts\msjhbd.ttc
Microsoft JhengHei UI-B C:\Windows\Fonts\msjhbd.ttc
微軟正黑體 Light C:\Windows\Fonts\msjhl.ttc
Microsoft JhengHei Light C:\Windows\Fonts\msjhl.ttc
Microsoft JhengHei UI Light C:\Windows\Fonts\msjhl.ttc
Microsoft Uighur-B C:\Windows\Fonts\MSUIGHUB.TTF
Microsoft Uighur C:\Windows\Fonts\MSUIGHUR.TTF
Microsoft YaHei C:\Windows\Fonts\msyh.ttc
微软雅黑 C:\Windows\Fonts\msyh.ttc
Microsoft YaHei UI C:\Windows\Fonts\msyh.ttc
Microsoft YaHei-B C:\Windows\Fonts\msyhbd.ttc
微软雅黑-B C:\Windows\Fonts\msyhbd.ttc
Microsoft YaHei UI-B C:\Windows\Fonts\msyhbd.ttc
Microsoft YaHei Light C:\Windows\Fonts\msyhl.ttc
微软雅黑 Light C:\Windows\Fonts\msyhl.ttc
Microsoft YaHei UI Light C:\Windows\Fonts\msyhl.ttc
Microsoft Yi Baiti C:\Windows\Fonts\msyi.ttf
Monotype Corsiva-I C:\Windows\Fonts\MTCORSVA.TTF
MT Extra C:\Windows\Fonts\MTEXTRA.TTF
MV Boli-I C:\Windows\Fonts\mvboli.ttf
Netto Offc Regular C:\Windows\Fonts\NettoOffc.ttf
Netto Offc C:\Windows\Fonts\NettoOffc.ttf
Niagara Engraved C:\Windows\Fonts\NIAGENG.TTF
Niagara Solid C:\Windows\Fonts\NIAGSOL.TTF
Nirmala UI C:\Windows\Fonts\Nirmala.ttf
Nirmala UI-B C:\Windows\Fonts\NirmalaB.ttf
Nirmala UI Semilight C:\Windows\Fonts\NirmalaS.ttf
Microsoft New Tai Lue C:\Windows\Fonts\ntailu.ttf
Microsoft New Tai Lue-B C:\Windows\Fonts\ntailub.ttf
OCR A Extended C:\Windows\Fonts\OCRAEXT.TTF
Old English Text MT C:\Windows\Fonts\OLDENGL.TTF
Onyx C:\Windows\Fonts\ONYX.TTF
MS Outlook C:\Windows\Fonts\OUTLOOK.TTF
Palatino Linotype C:\Windows\Fonts\pala.ttf
Palatino Linotype-B C:\Windows\Fonts\palab.ttf
Palatino Linotype-B-I C:\Windows\Fonts\palabi.ttf
Palatino Linotype-I C:\Windows\Fonts\palai.ttf
Palace Script MT-I C:\Windows\Fonts\PALSCRI.TTF
Papyrus C:\Windows\Fonts\PAPYRUS.TTF
Parchment C:\Windows\Fonts\PARCHM.TTF
Perpetua-B-I C:\Windows\Fonts\PERBI___.TTF
Perpetua-B C:\Windows\Fonts\PERB____.TTF
Perpetua-I C:\Windows\Fonts\PERI____.TTF
Perpetua Titling MT-B C:\Windows\Fonts\PERTIBD.TTF
Perpetua Titling MT C:\Windows\Fonts\PERTILI.TTF
Perpetua C:\Windows\Fonts\PER_____.TTF
Microsoft PhagsPa C:\Windows\Fonts\phagspa.ttf
Microsoft PhagsPa-B C:\Windows\Fonts\phagspab.ttf
Playbill C:\Windows\Fonts\PLAYBILL.TTF
Poor Richard C:\Windows\Fonts\POORICH.TTF
Pristina C:\Windows\Fonts\PRISTINA.TTF
Rage Italic C:\Windows\Fonts\RAGE.TTF
Ravie C:\Windows\Fonts\RAVIE.TTF
MS Reference Sans Serif C:\Windows\Fonts\REFSAN.TTF
MS Reference Specialty C:\Windows\Fonts\REFSPCL.TTF
Rockwell Condensed-B C:\Windows\Fonts\ROCCB___.TTF
Rockwell Condensed C:\Windows\Fonts\ROCC____.TTF
Rockwell C:\Windows\Fonts\ROCK.TTF
Rockwell-B C:\Windows\Fonts\ROCKB.TTF
Rockwell-B-I C:\Windows\Fonts\ROCKBI.TTF
Rockwell Extra Bold-B C:\Windows\Fonts\ROCKEB.TTF
Rockwell-I C:\Windows\Fonts\ROCKI.TTF
Century Schoolbook-B C:\Windows\Fonts\SCHLBKB.TTF
Century Schoolbook-B-I C:\Windows\Fonts\SCHLBKBI.TTF
Century Schoolbook-I C:\Windows\Fonts\SCHLBKI.TTF
Script MT Bold-B C:\Windows\Fonts\SCRIPTBL.TTF
Segoe MDL2 Assets C:\Windows\Fonts\segmdl2.ttf
Segoe Print C:\Windows\Fonts\segoepr.ttf
Segoe Print-B C:\Windows\Fonts\segoeprb.ttf
Segoe Script C:\Windows\Fonts\segoesc.ttf
Segoe Script-B C:\Windows\Fonts\segoescb.ttf
Segoe UI C:\Windows\Fonts\segoeui.ttf
Segoe UI-B C:\Windows\Fonts\segoeuib.ttf
Segoe UI-I C:\Windows\Fonts\segoeuii.ttf
Segoe UI Light C:\Windows\Fonts\segoeuil.ttf
Segoe UI Semilight C:\Windows\Fonts\segoeuisl.ttf
Segoe UI-B-I C:\Windows\Fonts\segoeuiz.ttf
Segoe UI Black-B C:\Windows\Fonts\seguibl.ttf
Segoe UI Black-B-I C:\Windows\Fonts\seguibli.ttf
Segoe UI Emoji C:\Windows\Fonts\seguiemj.ttf
Segoe UI Historic C:\Windows\Fonts\seguihis.ttf
Segoe UI Light-I C:\Windows\Fonts\seguili.ttf
Segoe UI Semibold-B C:\Windows\Fonts\seguisb.ttf
Segoe UI Semibold-B-I C:\Windows\Fonts\seguisbi.ttf
Segoe UI Semilight-I C:\Windows\Fonts\seguisli.ttf
Segoe UI Symbol C:\Windows\Fonts\seguisym.ttf
Showcard Gothic C:\Windows\Fonts\SHOWG.TTF
SimSun C:\Windows\Fonts\simsun.ttc
宋体 C:\Windows\Fonts\simsun.ttc
NSimSun C:\Windows\Fonts\simsun.ttc
新宋体 C:\Windows\Fonts\simsun.ttc
SimSun-ExtB C:\Windows\Fonts\simsunb.ttf
Sitka Small C:\Windows\Fonts\Sitka.ttc
Sitka Text C:\Windows\Fonts\Sitka.ttc
Sitka Subheading C:\Windows\Fonts\Sitka.ttc
Sitka Heading C:\Windows\Fonts\Sitka.ttc
Sitka Display C:\Windows\Fonts\Sitka.ttc
Sitka Banner C:\Windows\Fonts\Sitka.ttc
Sitka Small-B C:\Windows\Fonts\SitkaB.ttc
Sitka Text-B C:\Windows\Fonts\SitkaB.ttc
Sitka Subheading-B C:\Windows\Fonts\SitkaB.ttc
Sitka Heading-B C:\Windows\Fonts\SitkaB.ttc
Sitka Display-B C:\Windows\Fonts\SitkaB.ttc
Sitka Banner-B C:\Windows\Fonts\SitkaB.ttc
Sitka Small-I C:\Windows\Fonts\SitkaI.ttc
Sitka Text-I C:\Windows\Fonts\SitkaI.ttc
Sitka Subheading-I C:\Windows\Fonts\SitkaI.ttc
Sitka Heading-I C:\Windows\Fonts\SitkaI.ttc
Sitka Display-I C:\Windows\Fonts\SitkaI.ttc
Sitka Banner-I C:\Windows\Fonts\SitkaI.ttc
Sitka Small-B-I C:\Windows\Fonts\SitkaZ.ttc
Sitka Text-B-I C:\Windows\Fonts\SitkaZ.ttc
Sitka Subheading-B-I C:\Windows\Fonts\SitkaZ.ttc
Sitka Heading-B-I C:\Windows\Fonts\SitkaZ.ttc
Sitka Display-B-I C:\Windows\Fonts\SitkaZ.ttc
Sitka Banner-B-I C:\Windows\Fonts\SitkaZ.ttc
Snap ITC C:\Windows\Fonts\SNAP____.TTF
Stencil C:\Windows\Fonts\STENCIL.TTF
Sylfaen C:\Windows\Fonts\sylfaen.ttf
Symbol C:\Windows\Fonts\symbol.ttf
Tahoma C:\Windows\Fonts\tahoma.ttf
Tahoma-B C:\Windows\Fonts\tahomabd.ttf
Microsoft Tai Le C:\Windows\Fonts\taile.ttf
Microsoft Tai Le-B C:\Windows\Fonts\taileb.ttf
Tw Cen MT-B-I C:\Windows\Fonts\TCBI____.TTF
Tw Cen MT-B C:\Windows\Fonts\TCB_____.TTF
Tw Cen MT Condensed-B C:\Windows\Fonts\TCCB____.TTF
Tw Cen MT Condensed Extra Bold C:\Windows\Fonts\TCCEB.TTF
Tw Cen MT Condensed C:\Windows\Fonts\TCCM____.TTF
Tw Cen MT-I C:\Windows\Fonts\TCMI____.TTF
Tw Cen MT C:\Windows\Fonts\TCM_____.TTF
TeamViewer15 C:\Windows\Fonts\teamviewer15.otf
Tempus Sans ITC C:\Windows\Fonts\TEMPSITC.TTF
Times New Roman C:\Windows\Fonts\times.ttf
Times New Roman-B C:\Windows\Fonts\timesbd.ttf
Times New Roman-B-I C:\Windows\Fonts\timesbi.ttf
Times New Roman-I C:\Windows\Fonts\timesi.ttf
Trebuchet MS C:\Windows\Fonts\trebuc.ttf
Trebuchet MS-B C:\Windows\Fonts\trebucbd.ttf
Trebuchet MS-B-I C:\Windows\Fonts\trebucbi.ttf
Trebuchet MS-I C:\Windows\Fonts\trebucit.ttf
Verdana C:\Windows\Fonts\verdana.ttf
Verdana-B C:\Windows\Fonts\verdanab.ttf
Verdana-I C:\Windows\Fonts\verdanai.ttf
Verdana-B-I C:\Windows\Fonts\verdanaz.ttf
Viner Hand ITC C:\Windows\Fonts\VINERITC.TTF
Vivaldi-I C:\Windows\Fonts\VIVALDII.TTF
Vladimir Script C:\Windows\Fonts\VLADIMIR.TTF
Webdings C:\Windows\Fonts\webdings.ttf
Wingdings C:\Windows\Fonts\wingding.ttf
Wingdings 2 C:\Windows\Fonts\WINGDNG2.TTF
Wingdings 3 C:\Windows\Fonts\WINGDNG3.TTF
Yu Gothic-B C:\Windows\Fonts\YuGothB.ttc
游ゴシック-B C:\Windows\Fonts\YuGothB.ttc
Yu Gothic UI-B C:\Windows\Fonts\YuGothB.ttc
Yu Gothic UI Semibold-B C:\Windows\Fonts\YuGothB.ttc
Yu Gothic Light C:\Windows\Fonts\YuGothL.ttc
游ゴシック Light C:\Windows\Fonts\YuGothL.ttc
Yu Gothic UI Light C:\Windows\Fonts\YuGothL.ttc
Yu Gothic Medium C:\Windows\Fonts\YuGothM.ttc
游ゴシック Medium C:\Windows\Fonts\YuGothM.ttc
Yu Gothic UI C:\Windows\Fonts\YuGothM.ttc
Yu Gothic C:\Windows\Fonts\YuGothR.ttc
游ゴシック C:\Windows\Fonts\YuGothR.ttc
Yu Gothic UI Semilight C:\Windows\Fonts\YuGothR.ttc
ZWAdobeF-I C:\Windows\Fonts\ZWAdobeF.TTF

Some files were not shown because too many files have changed in this diff Show More