Dashboard & Mitarbeiterverwaltung

This commit is contained in:
2026-03-18 23:07:45 +01:00
parent 9a8789a7ae
commit d54d01e62a
53 changed files with 415 additions and 136 deletions

View File

@@ -1,10 +1,7 @@
<MudNavMenu>
<MudNavLink Href="" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.Home">Home</MudNavLink>
<MudNavLink Href="counter" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Add">Counter</MudNavLink>
<MudNavLink Href="weather" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.List">Weather</MudNavLink>
<MudNavMenu>
<MudNavLink Href="" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.Home">Meine Übersicht</MudNavLink>
<MudNavLink Href="manager-dashboard" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Dashboard">Team-Dashboard</MudNavLink>
<MudNavLink Href="employee-management" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.People">Mitarbeiterverwaltung</MudNavLink>
</MudNavMenu>

View File

@@ -1,19 +0,0 @@
@page "/counter"
<PageTitle>Counter</PageTitle>
<MudText Typo="Typo.h3" GutterBottom="true">Counter</MudText>
<MudText Class="mb-4">Current count: @currentCount</MudText>
<MudButton Color="Color.Primary" Variant="Variant.Filled" @onclick="IncrementCount">Click me</MudButton>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}

View File

@@ -0,0 +1,216 @@
@page "/employee-management"
@using MudBlazor
@inject ISnackbar Snackbar
<PageTitle>Mitarbeiterverwaltung | OnProf</PageTitle>
<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="mt-8">
<div class="d-flex justify-space-between align-center mb-6">
<div>
<MudText Typo="Typo.h4" Class="fw-bold">Mitarbeiterverwaltung</MudText>
<MudText Typo="Typo.body1" Color="Color.Secondary" Class="mt-1">Verwalte Rollen, Mandanten und Arbeitszeiten deiner Mitarbeiter.</MudText>
</div>
<div class="d-flex gap-4">
<MudButton Variant="Variant.Outlined" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Sync" OnClick="SyncWithAzureAd">AAD Sync</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Add" OnClick="OpenAddModal">Neuer Mitarbeiter</MudButton>
</div>
</div>
<MudPaper Elevation="2" Class="pa-4">
<MudDataGrid T="Employee" Items="@_employees" Hover="true" Bordered="false" Striped="true" QuickFilter="@_quickFilter" Dense="false">
<ToolBarContent>
<MudTextField @bind-Value="_searchString" Placeholder="Suchen..." Adornment="Adornment.Start" Immediate="true"
AdornmentIcon="@Icons.Material.Filled.Search" IconSize="Size.Medium" Class="mt-0"
Variant="Variant.Outlined" Margin="Margin.Dense" Style="max-width: 300px;"></MudTextField>
<MudSpacer />
</ToolBarContent>
<Columns>
<TemplateColumn T="Employee" Title="Mitarbeiter" SortBy="@(x => x.Name)">
<CellTemplate>
<div class="d-flex align-center">
<MudAvatar Size="Size.Medium" Color="Color.Primary" Class="mr-3">
@(string.IsNullOrWhiteSpace(context.Item.Name) ? "?" : context.Item.Name[0].ToString().ToUpper())
</MudAvatar>
<div>
<MudText Typo="Typo.body1"><b>@context.Item.Name</b></MudText>
<MudText Typo="Typo.caption" Color="Color.Secondary">@context.Item.Email</MudText>
</div>
</div>
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="Employee" Title="Mandant" SortBy="@(x => x.Tenant)">
<CellTemplate>
<MudChip T="string" Color="Color.Secondary" Size="Size.Small" Variant="Variant.Text">@context.Item.Tenant</MudChip>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="x => x.Role" Title="Rolle" />
<TemplateColumn T="Employee" Title="Tägl. Arbeitszeit" SortBy="@(x => x.DailyWorkHours)">
<CellTemplate>
<div class="d-flex align-center gap-2">
<MudIcon Icon="@Icons.Material.Filled.Schedule" Size="Size.Small" Color="Color.Default" />
<MudText><b>@context.Item.DailyWorkHours</b> <small>h / Tag</small></MudText>
</div>
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="Employee" Title="AAD Status">
<CellTemplate>
@if (context.Item.IsAadSynced)
{
<MudTooltip Text="Mit Azure AD synchronisiert">
<MudIcon Icon="@Icons.Material.Filled.CloudSync" Color="Color.Success" Size="Size.Small" />
</MudTooltip>
}
else
{
<MudTooltip Text="Lokal angelegt">
<MudIcon Icon="@Icons.Material.Filled.PersonOutline" Color="Color.Warning" Size="Size.Small" />
</MudTooltip>
}
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="Employee" CellClass="d-flex justify-end pr-4">
<CellTemplate>
<MudIconButton Size="@Size.Small" Icon="@Icons.Material.Filled.Edit" Color="Color.Primary" OnClick="() => EditEmployee(context.Item)" />
</CellTemplate>
</TemplateColumn>
</Columns>
<PagerContent>
<MudDataGridPager T="Employee" RowsPerPageString="Einträge pro Seite:" />
</PagerContent>
</MudDataGrid>
</MudPaper>
</MudContainer>
<MudDialog @bind-Visible="_isModalOpen" Options="new DialogOptions { MaxWidth = MaxWidth.Small, FullWidth = true }">
<TitleContent>
<MudText Typo="Typo.h6">@(_isEditing ? "Mitarbeiter bearbeiten" : "Neuen Mitarbeiter anlegen")</MudText>
</TitleContent>
<DialogContent>
<MudTextField @bind-Value="_currentEmployee.Name" Label="Name" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3" Required="true"
Disabled="@(_isEditing && _currentEmployee.IsAadSynced)" HelperText="@(_isEditing && _currentEmployee.IsAadSynced ? "Wird durch AAD verwaltet" : "")" />
<MudTextField @bind-Value="_currentEmployee.Email" Label="E-Mail" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3" Required="true"
Disabled="@(_isEditing && _currentEmployee.IsAadSynced)" />
<MudSelect @bind-Value="_currentEmployee.Tenant" Label="Mandant" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3">
@foreach (var tenant in _availableTenants)
{
<MudSelectItem Value="@tenant">@tenant</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="_currentEmployee.Role" Label="Rolle" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3">
@foreach (var role in _availableRoles)
{
<MudSelectItem Value="@role">@role</MudSelectItem>
}
</MudSelect>
<MudNumericField @bind-Value="_currentEmployee.DailyWorkHours" Label="Tägliche Arbeitszeit (Stunden)" Variant="Variant.Outlined" Margin="Margin.Dense" Step="0.5" Min="1" Max="24" />
</DialogContent>
<DialogActions>
<MudButton OnClick="CloseModal">Abbrechen</MudButton>
<MudButton Color="Color.Primary" Variant="Variant.Filled" OnClick="SaveEmployee">Speichern</MudButton>
</DialogActions>
</MudDialog>
@code {
private string _searchString = "";
private bool _isModalOpen = false;
private bool _isEditing = false;
private Employee _currentEmployee = new();
// Listen für Dropdowns
private List<string> _availableTenants = new() { "OnProf GmbH", "SubCorp AG", "Freelancer Network" };
private List<string> _availableRoles = new() { "Teamleiter", "Entwickler", "Projektleiter", "Designer", "Tester", "Administrator" };
public class Employee
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Tenant { get; set; } = string.Empty;
public string Role { get; set; } = string.Empty;
public double DailyWorkHours { get; set; } = 8.0;
public bool IsAadSynced { get; set; } = false;
}
private List<Employee> _employees = new()
{
new Employee { Name = "Marc Mustermann", Email = "marc@onprof.de", Tenant = "OnProf GmbH", Role = "Entwickler", DailyWorkHours = 8.0, IsAadSynced = true },
new Employee { Name = "Anna Schmidt", Email = "anna@onprof.de", Tenant = "OnProf GmbH", Role = "Projektleiter", DailyWorkHours = 8.0, IsAadSynced = true },
new Employee { Name = "John Doe", Email = "john@subcorp.com", Tenant = "SubCorp AG", Role = "Entwickler", DailyWorkHours = 4.0, IsAadSynced = false },
new Employee { Name = "Maria Mayer", Email = "maria@onprof.de", Tenant = "OnProf GmbH", Role = "Tester", DailyWorkHours = 6.0, IsAadSynced = true },
new Employee { Name = "Peter Parker", Email = "peter@freelance.net", Tenant = "Freelancer Network", Role = "Designer", DailyWorkHours = 8.0, IsAadSynced = false },
};
private Func<Employee, bool> _quickFilter => x =>
{
if (string.IsNullOrWhiteSpace(_searchString)) return true;
if (x.Name.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) return true;
if (x.Email.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) return true;
if (x.Role.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) return true;
if (x.Tenant.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) return true;
return false;
};
private void SyncWithAzureAd()
{
Snackbar.Add("Synchronisation mit Azure AD wird gestartet (Mock)...", Severity.Info);
// Hier käme später die MS Graph API Integration hin
}
private void OpenAddModal()
{
_isEditing = false;
_currentEmployee = new Employee { Tenant = _availableTenants.First(), Role = _availableRoles.First() };
_isModalOpen = true;
}
private void EditEmployee(Employee employee)
{
_isEditing = true;
// Deep Copy für die Bearbeitung, um direkte Listen-Updates bei Abbruch zu vermeiden
_currentEmployee = new Employee
{
Id = employee.Id,
Name = employee.Name,
Email = employee.Email,
Tenant = employee.Tenant,
Role = employee.Role,
DailyWorkHours = employee.DailyWorkHours,
IsAadSynced = employee.IsAadSynced
};
_isModalOpen = true;
}
private void SaveEmployee()
{
if (string.IsNullOrWhiteSpace(_currentEmployee.Name) || string.IsNullOrWhiteSpace(_currentEmployee.Email))
{
Snackbar.Add("Name und E-Mail sind Pflichtfelder.", Severity.Error);
return;
}
if (_isEditing)
{
var index = _employees.FindIndex(e => e.Id == _currentEmployee.Id);
if (index != -1)
{
_employees[index] = _currentEmployee;
Snackbar.Add("Änderungen gespeichert.", Severity.Success);
}
}
else
{
_employees.Add(_currentEmployee);
Snackbar.Add("Neuer Mitarbeiter angelegt.", Severity.Success);
}
CloseModal();
}
private void CloseModal()
{
_isModalOpen = false;
}
}

View File

@@ -0,0 +1,147 @@
@page "/manager-dashboard"
@using MudBlazor
<PageTitle>Team-Dashboard | OnProf</PageTitle>
<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="mt-8">
<div class="d-flex justify-space-between align-center mb-6">
<MudText Typo="Typo.h4" Class="fw-bold">Team-Dashboard</MudText>
<MudButton Variant="Variant.Outlined" Color="Color.Primary" StartIcon="@Icons.Material.Filled.FileDownload">Als PDF exportieren</MudButton>
</div>
<MudGrid>
<!-- Top KPI Cards -->
<MudItem xs="12" sm="6" md="3">
<MudPaper Elevation="2" Class="pa-4" Style="height: 120px; border-left: 6px solid var(--mud-palette-primary);">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Team-Stunden (Aktueller Monat)</MudText>
<div class="d-flex align-end justify-space-between mt-2">
<MudText Typo="Typo.h3">850 <small style="font-size: 1rem">h</small></MudText>
<MudIcon Icon="@Icons.Material.Filled.Group" Color="Color.Primary" Size="Size.Large" />
</div>
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Elevation="2" Class="pa-4" Style="height: 120px; border-left: 6px solid var(--mud-palette-success);">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Auslastung (Durchschnitt)</MudText>
<MudText Typo="Typo.h3">92 <small style="font-size: 1rem">%</small></MudText>
<MudProgressLinear Color="Color.Success" Value="92" Class="mt-2" />
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Elevation="2" Class="pa-4" Style="height: 120px; border-left: 6px solid var(--mud-palette-info);">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Aktive Auftragsprojekte</MudText>
<div class="d-flex align-end justify-space-between mt-2">
<MudText Typo="Typo.h3">14</MudText>
<MudIcon Icon="@Icons.Material.Filled.Domain" Color="Color.Info" Size="Size.Large" />
</div>
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Elevation="2" Class="pa-4" Style="height: 120px; border-left: 6px solid var(--mud-palette-warning);">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Überstundenkonto gesamt</MudText>
<div class="d-flex align-end justify-space-between mt-2">
<MudText Typo="Typo.h3">185 <small style="font-size: 1rem">h</small></MudText>
<MudIcon Icon="@Icons.Material.Filled.Warning" Color="Color.Warning" Size="Size.Large" />
</div>
</MudPaper>
</MudItem>
<!-- Charts Row -->
<MudItem xs="12" md="8">
<MudPaper Elevation="2" Class="pa-6" Style="height: 400px; display: flex; flex-direction: column;">
<MudText Typo="Typo.h6" Class="mb-4">Gebuchte Stunden der letzten 5 Wochen</MudText>
<div class="flex-grow-1">
<MudChart T="double" ChartType="ChartType.Bar" ChartSeries="@_barSeries" XAxisLabels="@_xAxisLabels" Width="100%" Height="280px" />
</div>
</MudPaper>
</MudItem>
<MudItem xs="12" md="4">
<MudPaper Elevation="2" Class="pa-6" Style="height: 400px; display: flex; flex-direction: column;">
<MudText Typo="Typo.h6" Class="mb-4">Projektverteilung gesamt</MudText>
<div class="flex-grow-1 d-flex justify-center align-center">
<MudChart T="double" ChartType="ChartType.Donut" InputData="@_donutData" InputLabels="@_donutLabels" Width="200px" Height="200px" />
</div>
</MudPaper>
</MudItem>
<!-- Top Mitarbeiter Table -->
<MudItem xs="12">
<MudPaper Elevation="2" Class="pa-6 mt-2">
<MudText Typo="Typo.h6" Class="mb-4">Performance der Mitarbeiter im aktuellen Monat</MudText>
<MudDataGrid T="EmployeeStat" Items="@_employees" Hover="true" Bordered="false" Striped="true" Dense="true" Elevation="0">
<Columns>
<TemplateColumn T="EmployeeStat" Title="Mitarbeiter" SortBy="@(x => x.Name)">
<CellTemplate>
<div class="d-flex align-center">
<MudAvatar Size="Size.Small" Color="Color.Primary" Class="mr-3">
@context.Item.Name.Substring(0, 1)
</MudAvatar>
<MudText Typo="Typo.body2"><b>@context.Item.Name</b></MudText>
</div>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="x => x.Role" Title="Rolle" />
<PropertyColumn Property="x => x.ProjectCount" Title="Aktive Projekte" />
<TemplateColumn T="EmployeeStat" Title="Stunden (Monat)" SortBy="@(x => x.HoursBooked)">
<CellTemplate>
<MudText Typo="Typo.body2"><b>@context.Item.HoursBooked</b> <small class="mud-text-secondary ml-1">h</small></MudText>
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="EmployeeStat" Title="Auslastung" SortBy="@(x => x.Utilization)">
<CellTemplate>
<div class="d-flex align-center">
<MudProgressLinear Color="@GetUtilizationColor(context.Item.Utilization)" Value="@context.Item.Utilization" Class="mr-2" Style="width: 100px; min-width: 60px;" />
<MudText Typo="Typo.caption" Color="@GetUtilizationColor(context.Item.Utilization)"><b>@context.Item.Utilization%</b></MudText>
</div>
</CellTemplate>
</TemplateColumn>
</Columns>
</MudDataGrid>
</MudPaper>
</MudItem>
</MudGrid>
</MudContainer>
@code {
public class EmployeeStat
{
public string Name { get; set; } = string.Empty;
public string Role { get; set; } = string.Empty;
public int ProjectCount { get; set; }
public double HoursBooked { get; set; }
public double Utilization { get; set; }
}
private List<EmployeeStat> _employees = new()
{
new EmployeeStat { Name = "Marc Mustermann", Role = "Entwickler", ProjectCount = 3, HoursBooked = 160, Utilization = 100 },
new EmployeeStat { Name = "Anna Schmidt", Role = "Projektleiterin", ProjectCount = 5, HoursBooked = 145, Utilization = 90 },
new EmployeeStat { Name = "John Doe", Role = "Entwickler", ProjectCount = 4, HoursBooked = 175, Utilization = 110 },
new EmployeeStat { Name = "Maria Mayer", Role = "Testerin", ProjectCount = 2, HoursBooked = 150, Utilization = 95 },
new EmployeeStat { Name = "Peter Parker", Role = "Designer", ProjectCount = 2, HoursBooked = 80, Utilization = 50 },
};
private string[] _xAxisLabels = { "KW 08", "KW 09", "KW 10", "KW 11", "KW 12" };
private List<ChartSeries<double>> _barSeries = new()
{
new ChartSeries<double>() { Name = "Kundenaufträge", Data = new double[] { 300, 320, 280, 350, 400 } },
new ChartSeries<double>() { Name = "Intern", Data = new double[] { 60, 40, 50, 30, 20 } },
new ChartSeries<double>() { Name = "Gleitzeit / Urlaub", Data = new double[] { 40, 50, 60, 45, 30 } },
};
private double[] _donutData = { 65, 15, 20 };
private string[] _donutLabels = { "Kundenaufträge", "Intern", "Gleitzeit / Urlaub" };
private Color GetUtilizationColor(double utilization)
{
if (utilization > 105) return Color.Warning;
if (utilization < 75) return Color.Error;
return Color.Success;
}
}

View File

@@ -1,63 +0,0 @@
@page "/weather"
<PageTitle>Weather</PageTitle>
<MudText Typo="Typo.h3" GutterBottom="true">Weather forecast</MudText>
<MudText Typo="Typo.body1" Class="mb-8">This component demonstrates fetching data from the server.</MudText>
@if (Forecasts == null)
{
<MudProgressCircular Color="Color.Default" Indeterminate="true" />
}
else
{
<MudTable Items="Forecasts" Hover="true" SortLabel="Sort By" Elevation="0" AllowUnsorted="false">
<HeaderContent>
<MudTh><MudTableSortLabel InitialDirection="SortDirection.Ascending" SortBy="new Func<WeatherForecast, object>(x=>x.Date)">Date</MudTableSortLabel></MudTh>
<MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.TemperatureC)">Temp. (C)</MudTableSortLabel></MudTh>
<MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.TemperatureF)">Temp. (F)</MudTableSortLabel></MudTh>
<MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.Summary!)">Summary</MudTableSortLabel></MudTh>
</HeaderContent>
<RowTemplate>
<MudTd DataLabel="Date">@context.Date</MudTd>
<MudTd DataLabel="Temp. (C)">@context.TemperatureC</MudTd>
<MudTd DataLabel="Temp. (F)">@context.TemperatureF</MudTd>
<MudTd DataLabel="Summary">@context.Summary</MudTd>
</RowTemplate>
<PagerContent>
<MudTablePager PageSizeOptions="new int[]{50, 100}" />
</PagerContent>
</MudTable>
}
@code {
[PersistentState(AllowUpdates = true)]
public WeatherForecast[]? Forecasts { get; set; }
protected override async Task OnInitializedAsync()
{
if (Forecasts is null)
{
// Simulate asynchronous loading to demonstrate a loading indicator
await Task.Delay(500);
var startDate = DateOnly.FromDateTime(DateTime.Now);
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
Forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
}).ToArray();
}
}
public class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,7 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
"mainAssemblyName": "OnProfNext.Client",
"applicationEnvironment": "Development",
"resources": {
"hash": "sha256-0jRv7kYnF4D0VUs8jGx8ORPXW37eJ4aGs7nqv5MaXmw=",
"hash": "sha256-dDAtD663tbmfDUp8ZE8oi21U69a+khO5Ei19QXc13BE=",
"jsModuleNative": [
{
"name": "dotnet.native.ykrnppwhq2.js"
@@ -1260,16 +1260,16 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
},
{
"virtualPath": "OnProfNext.Client.wasm",
"name": "OnProfNext.Client.szhvrb7xox.wasm",
"integrity": "sha256-KNzUOd1ZeCKoOujwusI45QSuLmQVAgPWZVJKNja0ybA=",
"name": "OnProfNext.Client.dh6mn4i5sw.wasm",
"integrity": "sha256-r87V1zANlRraLshRk/Jo0eJb13yGpG4K4aW7eSbaMXc=",
"cache": "force-cache"
}
],
"pdb": [
{
"virtualPath": "OnProfNext.Client.pdb",
"name": "OnProfNext.Client.hwlp25tq9f.pdb",
"integrity": "sha256-3/7YDotr5H2dQg8f0lqchKQo1dABUNpA3bK633HaMNE=",
"name": "OnProfNext.Client.l4c6v0ola1.pdb",
"integrity": "sha256-5cFxRmQTowcbq1pcN/paYq1Pq2HHBh4WMX3gRXDW9zk=",
"cache": "force-cache"
}
],

View File

@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("OnProfNext.Client")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d8908d9553dc0c927bb41bf7a3f5058bd930a45f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8789a7ae824d2ea7a0fb2e157b070acd39b48a")]
[assembly: System.Reflection.AssemblyProductAttribute("OnProfNext.Client")]
[assembly: System.Reflection.AssemblyTitleAttribute("OnProfNext.Client")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
b9f3204c494cb720185f7e20979ba2b42c1358f03d7e49854e068c03c240adbd
b4cba670dad6e58e051410a88f00f9832fbb70bedd102c047d11069d1fb21433

View File

@@ -39,8 +39,8 @@ build_metadata.AdditionalFiles.CssScope =
build_metadata.AdditionalFiles.TargetPath = TGF5b3V0XE5hdk1lbnUucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/Counter.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcQ291bnRlci5yYXpvcg==
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/EmployeeManagement.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcRW1wbG95ZWVNYW5hZ2VtZW50LnJhem9y
build_metadata.AdditionalFiles.CssScope =
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/Home.razor]
@@ -51,12 +51,12 @@ build_metadata.AdditionalFiles.CssScope =
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcSXRlbVRlbXBsYXRlLnJhem9y
build_metadata.AdditionalFiles.CssScope =
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/NotFound.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcTm90Rm91bmQucmF6b3I=
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/ManagerDashboard.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcTWFuYWdlckRhc2hib2FyZC5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/Weather.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcV2VhdGhlci5yYXpvcg==
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Pages/NotFound.razor]
build_metadata.AdditionalFiles.TargetPath = UGFnZXNcTm90Rm91bmQucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[D:/Dev/Tut/OnProfNext/OnProfNext/OnProfNext.Client/Routes.razor]

View File

@@ -1086,10 +1086,10 @@ D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\refint\OnPr
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\OnProfNext.Client.pdb
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\ref\OnProfNext.Client.dll
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebassets.upToDateCheck.txt
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.szhvrb7xox.wasm
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.hwlp25tq9f.pdb
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.szhvrb7xox.wasm.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.hwlp25tq9f.pdb.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\f6u1msztxb-{0}-szhvrb7xox-szhvrb7xox.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\cycczivqx5-{0}-hwlp25tq9f-hwlp25tq9f.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\qz9h56e7z8-{0}-kdxkkbcqse-kdxkkbcqse.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.dh6mn4i5sw.wasm
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.l4c6v0ola1.pdb
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.dh6mn4i5sw.wasm.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\bin\Debug\net10.0\wwwroot\_framework\OnProfNext.Client.l4c6v0ola1.pdb.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\f6u1msztxb-{0}-dh6mn4i5sw-dh6mn4i5sw.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\cycczivqx5-{0}-l4c6v0ola1-l4c6v0ola1.gz
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\compressed\qz9h56e7z8-{0}-jnflitrpbd-jnflitrpbd.gz

View File

@@ -5,7 +5,7 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
"mainAssemblyName": "OnProfNext.Client",
"applicationEnvironment": "Development",
"resources": {
"hash": "sha256-0jRv7kYnF4D0VUs8jGx8ORPXW37eJ4aGs7nqv5MaXmw=",
"hash": "sha256-dDAtD663tbmfDUp8ZE8oi21U69a+khO5Ei19QXc13BE=",
"jsModuleNative": [
{
"name": "dotnet.native.ykrnppwhq2.js"
@@ -1260,16 +1260,16 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
},
{
"virtualPath": "OnProfNext.Client.wasm",
"name": "OnProfNext.Client.szhvrb7xox.wasm",
"integrity": "sha256-KNzUOd1ZeCKoOujwusI45QSuLmQVAgPWZVJKNja0ybA=",
"name": "OnProfNext.Client.dh6mn4i5sw.wasm",
"integrity": "sha256-r87V1zANlRraLshRk/Jo0eJb13yGpG4K4aW7eSbaMXc=",
"cache": "force-cache"
}
],
"pdb": [
{
"virtualPath": "OnProfNext.Client.pdb",
"name": "OnProfNext.Client.hwlp25tq9f.pdb",
"integrity": "sha256-3/7YDotr5H2dQg8f0lqchKQo1dABUNpA3bK633HaMNE=",
"name": "OnProfNext.Client.l4c6v0ola1.pdb",
"integrity": "sha256-5cFxRmQTowcbq1pcN/paYq1Pq2HHBh4WMX3gRXDW9zk=",
"cache": "force-cache"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"GlobalPropertiesHash":"AHqUvtcq0/uGMCYQndTbkCTxTcoYUarDG7PCme/1A7Y=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","eI4bVy3Gh8j8eCYfgX8V8M7uHKKDISoT60q\u002BF8/UaQI=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","KtMcCZYV1pVsrd0MLUMfbt28YdvVhiWYMjq0fNuUdQA=","58B7yF7PQXq4TW\u002B8ZQHUC\u002BlKI1VVPrUYhQTqucI0DHM=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","597cJLP130m7F8NABJtyCFYjqBXBZZ\u002ByS79uvYE\u002ByYY=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA=","2aX\u002BX\u002B4eE8xi\u002BR7ngW0cq03FjNfIsbVE\u002BusEwCQmFWI=","SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"AHqUvtcq0/uGMCYQndTbkCTxTcoYUarDG7PCme/1A7Y=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","ALliHz343Q6iG2kAWI4lPAn2SIcJCnjxNe9MQc46uck=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","rMK\u002BD7hPTq6nRPjx5GMEtOtCF8PbfMNj8oTfqo\u002BBWGE=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4wJu/WsqjwkaX/IA1Ko9SpnUHOoivPFErgUDS4Csnvg=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA=","2aX\u002BX\u002B4eE8xi\u002BR7ngW0cq03FjNfIsbVE\u002BusEwCQmFWI=","SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk="],"CachedAssets":{},"CachedCopyCandidates":{}}

View File

@@ -1 +1 @@
{"GlobalPropertiesHash":"nTZLcUNcq6m2VFEdFbcXfzvxonGExOJOO/jRXnOQPjE=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","eI4bVy3Gh8j8eCYfgX8V8M7uHKKDISoT60q\u002BF8/UaQI=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","KtMcCZYV1pVsrd0MLUMfbt28YdvVhiWYMjq0fNuUdQA=","58B7yF7PQXq4TW\u002B8ZQHUC\u002BlKI1VVPrUYhQTqucI0DHM=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","597cJLP130m7F8NABJtyCFYjqBXBZZ\u002ByS79uvYE\u002ByYY=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA=","2aX\u002BX\u002B4eE8xi\u002BR7ngW0cq03FjNfIsbVE\u002BusEwCQmFWI=","SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk="],"CachedAssets":{"SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\Layout\\ReconnectModal.razor.js","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\","BasePath":"/","RelativePath":"Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"ycbzh0sbjd","Integrity":"QlWWcf5RpEclEeIaJ/IPv/jDMRlIfAjHvdR/vuJ9su4=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Layout\\ReconnectModal.razor.js","FileLength":2746,"LastWriteTime":"2026-03-18T16:33:32.4827835+00:00"}},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"nTZLcUNcq6m2VFEdFbcXfzvxonGExOJOO/jRXnOQPjE=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","ALliHz343Q6iG2kAWI4lPAn2SIcJCnjxNe9MQc46uck=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","rMK\u002BD7hPTq6nRPjx5GMEtOtCF8PbfMNj8oTfqo\u002BBWGE=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4wJu/WsqjwkaX/IA1Ko9SpnUHOoivPFErgUDS4Csnvg=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA=","2aX\u002BX\u002B4eE8xi\u002BR7ngW0cq03FjNfIsbVE\u002BusEwCQmFWI=","SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk="],"CachedAssets":{"SqTDM3v2LWiW/nP3WnxvUb3FCx88S4FQBhwnCKof6mk=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\Layout\\ReconnectModal.razor.js","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\","BasePath":"/","RelativePath":"Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"ycbzh0sbjd","Integrity":"QlWWcf5RpEclEeIaJ/IPv/jDMRlIfAjHvdR/vuJ9su4=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Layout\\ReconnectModal.razor.js","FileLength":2746,"LastWriteTime":"2026-03-18T16:33:32.4827835+00:00"}},"CachedCopyCandidates":{}}

View File

@@ -1 +1 @@
{"GlobalPropertiesHash":"ceVpLKOwAYIalAIdJEpP4itQE+Net5TgzJv3073CDrM=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","eI4bVy3Gh8j8eCYfgX8V8M7uHKKDISoT60q\u002BF8/UaQI=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","KtMcCZYV1pVsrd0MLUMfbt28YdvVhiWYMjq0fNuUdQA=","58B7yF7PQXq4TW\u002B8ZQHUC\u002BlKI1VVPrUYhQTqucI0DHM=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","597cJLP130m7F8NABJtyCFYjqBXBZZ\u002ByS79uvYE\u002ByYY=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA="],"CachedAssets":{"VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\appsettings.Development.json","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\","BasePath":"/","RelativePath":"appsettings.Development#[.{fingerprint}]?.json","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"x0ueugt8gp","Integrity":"gX2wvy7Mp4NkxB2695Sb8lBM9HocPQ1U876BeP78Aws=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"wwwroot\\appsettings.Development.json","FileLength":119,"LastWriteTime":"2026-03-18T16:33:32.4217478+00:00"},"UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\appsettings.json","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\","BasePath":"/","RelativePath":"appsettings#[.{fingerprint}]?.json","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"x0ueugt8gp","Integrity":"gX2wvy7Mp4NkxB2695Sb8lBM9HocPQ1U876BeP78Aws=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"wwwroot\\appsettings.json","FileLength":119,"LastWriteTime":"2026-03-18T16:33:32.4227457+00:00"}},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"ceVpLKOwAYIalAIdJEpP4itQE+Net5TgzJv3073CDrM=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=","UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=","4CkZKjhmIpvEqKpnX4SHqDYTPppSz6VvTDTpl2HUdv8=","ALliHz343Q6iG2kAWI4lPAn2SIcJCnjxNe9MQc46uck=","R\u002BM/OthMdeQATqSrWj5YvibIW0f6FRHRb9KPZPxfx\u002Bk=","98f6kSZiNOrHq9QPQOnjzMAYB02RtoI5JgJgw9\u002BsIyM=","rMK\u002BD7hPTq6nRPjx5GMEtOtCF8PbfMNj8oTfqo\u002BBWGE=","9Vr8OXWFXuNoJ0MgoEHdmVDwdQxG4F7wb\u002Bp/hZ6Dw50=","4wJu/WsqjwkaX/IA1Ko9SpnUHOoivPFErgUDS4Csnvg=","4cFvcUIUrBodlCinZvANH95jRWA2Tv56JFz0JCB23r4=","8\u002BzS1fkNIeUtk2qi1DErgqc02\u002B6IPeIAkp\u002B6vFr6uK4=","m574K3xCoXT254R89TxToR59xHmi3gsExT8w\u002BHxiNyA=","2aX\u002BX\u002B4eE8xi\u002BR7ngW0cq03FjNfIsbVE\u002BusEwCQmFWI="],"CachedAssets":{"VE\u002BpR917HjFp9gYK1XDTmwHtO7D52AaupqiGoT47KOg=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\appsettings.Development.json","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\","BasePath":"/","RelativePath":"appsettings.Development#[.{fingerprint}]?.json","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"x0ueugt8gp","Integrity":"gX2wvy7Mp4NkxB2695Sb8lBM9HocPQ1U876BeP78Aws=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"wwwroot\\appsettings.Development.json","FileLength":119,"LastWriteTime":"2026-03-18T16:33:32.4217478+00:00"},"UJnkQBNtjaxTikg3vmugRVAFtF6hvHDn4FaWCEz2zjM=":{"Identity":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\appsettings.json","SourceId":"OnProfNext.Client","SourceType":"Discovered","ContentRoot":"D:\\Dev\\Tut\\OnProfNext\\OnProfNext\\OnProfNext.Client\\wwwroot\\","BasePath":"/","RelativePath":"appsettings#[.{fingerprint}]?.json","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"x0ueugt8gp","Integrity":"gX2wvy7Mp4NkxB2695Sb8lBM9HocPQ1U876BeP78Aws=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"wwwroot\\appsettings.json","FileLength":119,"LastWriteTime":"2026-03-18T16:33:32.4227457+00:00"}},"CachedCopyCandidates":{}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
ckSNxJSQ+p5ctBRgiDxade01OuHr38XzSeXURCM4c3A=
lOatcVrEHDkitBinbqbj7FFtJW7aDN1BSdEPC+zqhgE=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("OnProfNext")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d8908d9553dc0c927bb41bf7a3f5058bd930a45f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8789a7ae824d2ea7a0fb2e157b070acd39b48a")]
[assembly: System.Reflection.AssemblyProductAttribute("OnProfNext")]
[assembly: System.Reflection.AssemblyTitleAttribute("OnProfNext")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
9497fca390bf14522fb17495a37305ffba910007e2ff231efb653eaebd808f4c
aa4f72102874befb44678503ef16e22be6e63270700d9fe458b2d7a041485c29

View File

@@ -1 +1 @@
{"GlobalPropertiesHash":"bAkKC+nVWweE76nob4C9J+dFUzoC/TSMK/+7Va2pEMQ=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["XalveFocMXOm37mVadyo/IW5OGvQ/lODnx2TscTUtmg=","97mJ4IawCQABCF0KFzwGfxqgIjqy1QmaxUaca1BmvN4=","pwbDm\u002BtuPrkkqYGciBeibsjIYD0XR0Oz\u002BZ9BHDd6Puc=","cdg3Zlnjx9JVVy55JTZ/aF1D/LCceFBFjShywDeeMOE=","5R3c0nUvzYa85XM8E8qiKiHB9f9fY\u002BKQFN7tk1Xj30w=","Igjj5gMX02oP225xpwDz/yAIu5tv8WkiY6dRGb4F8NQ=","nBYj8i61sCgl1nUtUnzDYPtjtMi6DMVMVUOYLiNwPj0=","uUwBddsA4K2hHam3dVRUqIPnUKFFCf\u002BC6Bh/Xsq4BeA=","zEB8ma4uSEyqauoElD6tTBhdMbnWJWjSHBzAwVK0lzU=","qHVO01qP1rW4qGtGdFdUOYGcJAHcArvkTUT7RXSb4lw=","EtC\u002BxWOyo9lnT2ef7Q5V33kIW6378BTiA2xyTNVejHc=","qdH8zWynS8jrvHLMU\u002BCjyePLujbMY1XPVkKVX4JXrbI=","hrSkJngleIaorlgApro6sH0NbLF2ikGM/MdaDA15s2I=","yLMv953kk3b0\u002BgonsiVVAM91iR\u002BVlzH0h7OLkLDNZ10=","wO85d/tlqaOzbrlEJ0byD4EQQIVz7bTFDraYXMPkY6E=","hDaFTY\u002BUgTD4lomlNCNkTT2kLZ6VokV40qQLxxDpeRk=","pPLVSrJMu0DTHQZxeD5rvkTibZtAiN6RkiPJ1Bhntso=","oO/Tqc89d180i2biEPjarWAX96rQQ3iUqbc4DXnfF9k=","xeioYEOcCAINAmT07RoDZpO5ff3MCsXmo6GVrDY5FGA="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"bAkKC+nVWweE76nob4C9J+dFUzoC/TSMK/+7Va2pEMQ=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["XalveFocMXOm37mVadyo/IW5OGvQ/lODnx2TscTUtmg=","97mJ4IawCQABCF0KFzwGfxqgIjqy1QmaxUaca1BmvN4=","pwbDm\u002BtuPrkkqYGciBeibsjIYD0XR0Oz\u002BZ9BHDd6Puc=","cdg3Zlnjx9JVVy55JTZ/aF1D/LCceFBFjShywDeeMOE=","5R3c0nUvzYa85XM8E8qiKiHB9f9fY\u002BKQFN7tk1Xj30w=","Igjj5gMX02oP225xpwDz/yAIu5tv8WkiY6dRGb4F8NQ=","nBYj8i61sCgl1nUtUnzDYPtjtMi6DMVMVUOYLiNwPj0=","uUwBddsA4K2hHam3dVRUqIPnUKFFCf\u002BC6Bh/Xsq4BeA=","zEB8ma4uSEyqauoElD6tTBhdMbnWJWjSHBzAwVK0lzU=","qHVO01qP1rW4qGtGdFdUOYGcJAHcArvkTUT7RXSb4lw=","EtC\u002BxWOyo9lnT2ef7Q5V33kIW6378BTiA2xyTNVejHc=","qdH8zWynS8jrvHLMU\u002BCjyePLujbMY1XPVkKVX4JXrbI=","hrSkJngleIaorlgApro6sH0NbLF2ikGM/MdaDA15s2I=","yLMv953kk3b0\u002BgonsiVVAM91iR\u002BVlzH0h7OLkLDNZ10=","wO85d/tlqaOzbrlEJ0byD4EQQIVz7bTFDraYXMPkY6E=","hDaFTY\u002BUgTD4lomlNCNkTT2kLZ6VokV40qQLxxDpeRk=","pPLVSrJMu0DTHQZxeD5rvkTibZtAiN6RkiPJ1Bhntso=","oO/Tqc89d180i2biEPjarWAX96rQQ3iUqbc4DXnfF9k=","AmM6Kwm0hGKjCiPYRG5SaRiX6vf8H/3FenhNRjhRibc="],"CachedAssets":{},"CachedCopyCandidates":{}}

View File

@@ -1 +1 @@
{"GlobalPropertiesHash":"MNvSBurCTEOUuR+IcnH0PakuTmc+/mF96BjR0OsyLQ4=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["XalveFocMXOm37mVadyo/IW5OGvQ/lODnx2TscTUtmg=","97mJ4IawCQABCF0KFzwGfxqgIjqy1QmaxUaca1BmvN4=","pwbDm\u002BtuPrkkqYGciBeibsjIYD0XR0Oz\u002BZ9BHDd6Puc=","cdg3Zlnjx9JVVy55JTZ/aF1D/LCceFBFjShywDeeMOE=","5R3c0nUvzYa85XM8E8qiKiHB9f9fY\u002BKQFN7tk1Xj30w=","Igjj5gMX02oP225xpwDz/yAIu5tv8WkiY6dRGb4F8NQ=","nBYj8i61sCgl1nUtUnzDYPtjtMi6DMVMVUOYLiNwPj0=","uUwBddsA4K2hHam3dVRUqIPnUKFFCf\u002BC6Bh/Xsq4BeA=","zEB8ma4uSEyqauoElD6tTBhdMbnWJWjSHBzAwVK0lzU=","qHVO01qP1rW4qGtGdFdUOYGcJAHcArvkTUT7RXSb4lw=","EtC\u002BxWOyo9lnT2ef7Q5V33kIW6378BTiA2xyTNVejHc=","qdH8zWynS8jrvHLMU\u002BCjyePLujbMY1XPVkKVX4JXrbI=","hrSkJngleIaorlgApro6sH0NbLF2ikGM/MdaDA15s2I=","yLMv953kk3b0\u002BgonsiVVAM91iR\u002BVlzH0h7OLkLDNZ10=","wO85d/tlqaOzbrlEJ0byD4EQQIVz7bTFDraYXMPkY6E=","hDaFTY\u002BUgTD4lomlNCNkTT2kLZ6VokV40qQLxxDpeRk=","pPLVSrJMu0DTHQZxeD5rvkTibZtAiN6RkiPJ1Bhntso=","oO/Tqc89d180i2biEPjarWAX96rQQ3iUqbc4DXnfF9k=","xeioYEOcCAINAmT07RoDZpO5ff3MCsXmo6GVrDY5FGA="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"MNvSBurCTEOUuR+IcnH0PakuTmc+/mF96BjR0OsyLQ4=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["XalveFocMXOm37mVadyo/IW5OGvQ/lODnx2TscTUtmg=","97mJ4IawCQABCF0KFzwGfxqgIjqy1QmaxUaca1BmvN4=","pwbDm\u002BtuPrkkqYGciBeibsjIYD0XR0Oz\u002BZ9BHDd6Puc=","cdg3Zlnjx9JVVy55JTZ/aF1D/LCceFBFjShywDeeMOE=","5R3c0nUvzYa85XM8E8qiKiHB9f9fY\u002BKQFN7tk1Xj30w=","Igjj5gMX02oP225xpwDz/yAIu5tv8WkiY6dRGb4F8NQ=","nBYj8i61sCgl1nUtUnzDYPtjtMi6DMVMVUOYLiNwPj0=","uUwBddsA4K2hHam3dVRUqIPnUKFFCf\u002BC6Bh/Xsq4BeA=","zEB8ma4uSEyqauoElD6tTBhdMbnWJWjSHBzAwVK0lzU=","qHVO01qP1rW4qGtGdFdUOYGcJAHcArvkTUT7RXSb4lw=","EtC\u002BxWOyo9lnT2ef7Q5V33kIW6378BTiA2xyTNVejHc=","qdH8zWynS8jrvHLMU\u002BCjyePLujbMY1XPVkKVX4JXrbI=","hrSkJngleIaorlgApro6sH0NbLF2ikGM/MdaDA15s2I=","yLMv953kk3b0\u002BgonsiVVAM91iR\u002BVlzH0h7OLkLDNZ10=","wO85d/tlqaOzbrlEJ0byD4EQQIVz7bTFDraYXMPkY6E=","hDaFTY\u002BUgTD4lomlNCNkTT2kLZ6VokV40qQLxxDpeRk=","pPLVSrJMu0DTHQZxeD5rvkTibZtAiN6RkiPJ1Bhntso=","oO/Tqc89d180i2biEPjarWAX96rQQ3iUqbc4DXnfF9k=","AmM6Kwm0hGKjCiPYRG5SaRiX6vf8H/3FenhNRjhRibc="],"CachedAssets":{},"CachedCopyCandidates":{}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
RFeCi4TzRrTSTJeKC+26d8Q+KbX1rMiYNhVf1rLIwSM=
60SO/ao4KfnmL0Qz7KIgx/Dl2C0uhSXv+ZOtE6C72+A=

File diff suppressed because one or more lines are too long

View File

@@ -6,3 +6,4 @@ D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebas
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebassets.build.json
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebassets.build.json
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebassets.build.json
D:\Dev\Tut\OnProfNext\OnProfNext\OnProfNext.Client\obj\Debug\net10.0\staticwebassets.build.json