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