Project Details Page + Employees
This commit is contained in:
parent
910ed8b8f8
commit
de2c369350
@ -90,7 +90,7 @@
|
||||
[Parameter] public EventCallback<ProjectCreateDto> OnProjectCreated { get; set; }
|
||||
[Parameter] public string SearchText { get; set; } = "";
|
||||
|
||||
private List<User>? users;
|
||||
private List<UserDto>? users;
|
||||
private string? errorMessage;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
@ -112,8 +112,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<User> FilteredUsers => users is null || string.IsNullOrWhiteSpace(SearchText)
|
||||
? Enumerable.Empty<User>()
|
||||
private IEnumerable<UserDto> FilteredUsers => users is null || string.IsNullOrWhiteSpace(SearchText)
|
||||
? Enumerable.Empty<UserDto>()
|
||||
: users.Where(u => $"{u.FirstName} {u.LastName} {u.Username}"
|
||||
.Contains(SearchText, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
|
||||
@ -139,8 +139,17 @@ else
|
||||
<td>@o.Planstunden</td>
|
||||
<td>@o.Iststunden</td>
|
||||
<td>
|
||||
<!-- Mitarbeiter-Zuordnung (später) -->
|
||||
<span class="text-muted small">noch offen</span>
|
||||
@if (o.Mitarbeiter?.Any() == true)
|
||||
{
|
||||
@foreach (var m in o.Mitarbeiter)
|
||||
{
|
||||
<span class="badge bg-info text-dark me-1">@m.FirstName @m.LastName</span>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="text-muted small">keine zugewiesen</span>
|
||||
}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<button class="btn btn-outline-danger btn-sm" @onclick="() => DeleteOrder(o.Id)">
|
||||
@ -232,10 +241,38 @@ else
|
||||
case "members":
|
||||
<div>
|
||||
<h5>Mitarbeiter</h5>
|
||||
<p>Teamzuordnung, Rollenverwaltung, People Picker.</p>
|
||||
|
||||
@if (projectMembers == null || !projectMembers.Any())
|
||||
{
|
||||
<div class="alert alert-info mt-3 text-center">
|
||||
Keine Mitarbeiter zugewiesen.
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-3 mt-3">
|
||||
@foreach (var member in projectMembers)
|
||||
{
|
||||
<div class="col">
|
||||
<div class="card h-100 shadow-sm border-0">
|
||||
<div class="card-body">
|
||||
<h6 class="card-title mb-1 text-primary">
|
||||
@member.FirstName @member.LastName
|
||||
</h6>
|
||||
<p class="card-text text-muted small mb-1">@member.Username</p>
|
||||
<p class="card-text text-muted small mb-0">
|
||||
<i class="bi bi-envelope"></i> @member.Email
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
break;
|
||||
|
||||
|
||||
case "documents":
|
||||
<div>
|
||||
<h5>Dokumente</h5>
|
||||
@ -275,9 +312,10 @@ else
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadProjectAsync();
|
||||
await LoadOrderAsync();
|
||||
await LoadUsersAsync();
|
||||
|
||||
|
||||
var result = await OrderService.GetOrdersByProjectAsync(1);
|
||||
Console.WriteLine($"Orders loaded: {result.Data?.Count}");
|
||||
|
||||
}
|
||||
|
||||
@ -361,6 +399,7 @@ else
|
||||
if(result.Success)
|
||||
{
|
||||
orders = result.Data;
|
||||
RefreshProjectMembers();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -370,6 +409,9 @@ else
|
||||
|
||||
private async Task CreateOrderAsync()
|
||||
{
|
||||
// Mitarbeiter mit reinpacken
|
||||
newOrder.Mitarbeiter = users.Where(u => selectedUserIds.Contains(u.Id)).ToList();
|
||||
|
||||
var result = await OrderService.CreateOrderAsync(newOrder);
|
||||
if (!result.Success)
|
||||
{
|
||||
@ -395,6 +437,35 @@ else
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadUsersAsync()
|
||||
{
|
||||
var result = await UserService.GetUsersAsync();
|
||||
if (result.Success && result.Data != null)
|
||||
{
|
||||
users = result.Data;
|
||||
Console.WriteLine($"Loaded {users.Count} users.");
|
||||
}
|
||||
else
|
||||
{
|
||||
errorMessage = result.Error ?? "Fehler beim Laden der Benutzer.";
|
||||
}
|
||||
}
|
||||
|
||||
private List<UserDto> projectMembers = new();
|
||||
private void RefreshProjectMembers()
|
||||
{
|
||||
if (orders == null) return;
|
||||
|
||||
projectMembers = orders
|
||||
.Where(o => o.Mitarbeiter != null)
|
||||
.SelectMany(o => o.Mitarbeiter!)
|
||||
.GroupBy(u => u.Id)
|
||||
.Select(g => g.First())
|
||||
.OrderBy(u => u.LastName)
|
||||
.ThenBy(u => u.FirstName)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
<style>
|
||||
|
||||
@ -184,10 +184,10 @@ else
|
||||
private string? errorMessage;
|
||||
private bool showAddModal = false;
|
||||
private ProjectCreateDto newProject = new();
|
||||
private List<User> users = new();
|
||||
private List<UserDto> users = new();
|
||||
private string searchText = "";
|
||||
|
||||
private IEnumerable<User> FilteredUsers => string.IsNullOrWhiteSpace(searchText)
|
||||
private IEnumerable<UserDto> FilteredUsers => string.IsNullOrWhiteSpace(searchText)
|
||||
? users
|
||||
: users.Where(u => $"{u.FirstName} {u.LastName} {u.Username}"
|
||||
.Contains(searchText, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
@page "/users"
|
||||
@using OnProfNext.Client.Services
|
||||
@using OnProfNext.Shared.Models
|
||||
@using OnProfNext.Shared.Models.DTOs
|
||||
@inject UserApiService UserService
|
||||
@inject AuthService AuthService
|
||||
@inject NavigationManager Nav
|
||||
@ -139,9 +140,9 @@ else
|
||||
|
||||
|
||||
@code {
|
||||
private List<User>? users;
|
||||
private List<UserDto>? users;
|
||||
private string? errorMessage;
|
||||
private User? selectedUser;
|
||||
private UserDto? selectedUser;
|
||||
|
||||
private bool showDeleteConfirm = false;
|
||||
private string deleteConfirmInput = string.Empty;
|
||||
|
||||
@ -19,13 +19,9 @@ namespace OnProfNext.Client.Services
|
||||
var orders = await _httpClient.GetFromJsonAsync<List<OrderDto>>($"api/orders/byproject/{projectId}");
|
||||
return (true, orders ?? new List<OrderDto>(), null);
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
return (false, null, "Server nicht erreichbar. Bitte später erneut versuchen.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (false, null, $"Fehler: {ex.Message}");
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,19 +43,25 @@ namespace OnProfNext.Client.Services
|
||||
}
|
||||
|
||||
//Auftrag erstellen
|
||||
public async Task<(bool Success, string? Error)> CreateOrderAsync(OrderDto newOrder)
|
||||
public async Task<(bool Success, string? Error)> CreateOrderAsync(OrderDto order)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.PostAsJsonAsync("api/orders", newOrder);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
return (false, $"Fehler beim Erstellen: {response.ReasonPhrase}");
|
||||
|
||||
return (true, null);
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
var createDto = new OrderCreateDto
|
||||
{
|
||||
return (false, "Server nicht erreichbar.");
|
||||
ProjectId = order.ProjectId,
|
||||
Auftragsnummer = order.Auftragsnummer,
|
||||
Titel = order.Titel,
|
||||
Status = order.Status,
|
||||
Planstunden = order.Planstunden,
|
||||
MandantId = order.MandantId,
|
||||
UserIds = order.Mitarbeiter.Select(u => u.Id).ToList()
|
||||
};
|
||||
|
||||
var response = await _httpClient.PostAsJsonAsync("api/orders", createDto);
|
||||
return response.IsSuccessStatusCode
|
||||
? (true, null)
|
||||
: (false, $"Fehler beim Anlegen: {response.ReasonPhrase}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -105,6 +107,24 @@ namespace OnProfNext.Client.Services
|
||||
}
|
||||
}
|
||||
|
||||
//Set Order Users Async
|
||||
public async Task<(bool Success, string? Error)> SetOrderUsersAsync(int orderId, List<int> userIds)
|
||||
{
|
||||
try
|
||||
{
|
||||
var payload = new { OrderId = orderId, UserIds = userIds };
|
||||
var response = await _httpClient.PostAsJsonAsync("api/orderusers", payload);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
return (false, $"Fehler beim Speichern: {response.ReasonPhrase}");
|
||||
return (true, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (false, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@ namespace OnProfNext.Client.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var projects = await _httpClient.GetFromJsonAsync<List<ProjectDto>>("api/project");
|
||||
var projects = await _httpClient.GetFromJsonAsync<List<ProjectDto>>("api/projects");
|
||||
return (true, projects ?? new(), null);
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
@ -35,7 +35,7 @@ namespace OnProfNext.Client.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var project = await _httpClient.GetFromJsonAsync<ProjectDto>($"api/project/{id}");
|
||||
var project = await _httpClient.GetFromJsonAsync<ProjectDto>($"api/projects/{id}");
|
||||
if (project == null)
|
||||
return (false, null, "Projekt nicht gefunden.");
|
||||
|
||||
@ -56,7 +56,7 @@ namespace OnProfNext.Client.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.PostAsJsonAsync("api/project", dto);
|
||||
var response = await _httpClient.PostAsJsonAsync("api/projects", dto);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return (false, $"Fehler beim Anlegen: {response.ReasonPhrase}");
|
||||
@ -78,7 +78,7 @@ namespace OnProfNext.Client.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.PutAsJsonAsync($"api/project/{id}", dto);
|
||||
var response = await _httpClient.PutAsJsonAsync($"api/projects/{id}", dto);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return (false, $"Fehler beim Aktualisieren: {response.ReasonPhrase}");
|
||||
@ -100,7 +100,7 @@ namespace OnProfNext.Client.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.DeleteAsync($"api/project/{id}");
|
||||
var response = await _httpClient.DeleteAsync($"api/projects/{id}");
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return (false, $"Fehler beim Löschen: {response.ReasonPhrase}");
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using OnProfNext.Shared.Models;
|
||||
using OnProfNext.Shared.Models.DTOs;
|
||||
using System.Net.Http.Json;
|
||||
|
||||
namespace OnProfNext.Client.Services
|
||||
@ -12,14 +13,14 @@ namespace OnProfNext.Client.Services
|
||||
_httpClient = httpClient;
|
||||
}
|
||||
|
||||
public async Task<(bool Success, List<User>? Data, string? Error)> GetUsersAsync()
|
||||
public async Task<(bool Success, List<UserDto>? Data, string? Error)> GetUsersAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var users = await _httpClient.GetFromJsonAsync<List<User>>("api/users");
|
||||
return (true, users ?? new List<User>(), null);
|
||||
var users = await _httpClient.GetFromJsonAsync<List<UserDto>>("api/users");
|
||||
return (true, users ?? new List<UserDto>(), null);
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
return (false, null, "Keine Verbindung zum Server. Bitte später erneut versuchen.");
|
||||
}
|
||||
@ -48,7 +49,7 @@ namespace OnProfNext.Client.Services
|
||||
}
|
||||
|
||||
|
||||
public async Task<(bool Success, string? Error)> UpdateUserAsync(User user)
|
||||
public async Task<(bool Success, string? Error)> UpdateUserAsync(UserDto user)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"mainAssemblyName": "OnProfNext.Client",
|
||||
"resources": {
|
||||
"hash": "sha256-SaR622VBzkbZ3Cn15m/brI2xuJEupmhtVwEx8wa/rI4=",
|
||||
"hash": "sha256-7KW3Qfm9CxYkbtb9+tRJYPyzmuj07fziiiVYwg4iZ/Y=",
|
||||
"fingerprinting": {
|
||||
"BlazorBootstrap.ym6tnrklwx.wasm": "BlazorBootstrap.wasm",
|
||||
"Blazored.Typeahead.5g65vcuhxb.wasm": "Blazored.Typeahead.wasm",
|
||||
@ -215,10 +215,10 @@
|
||||
"icudt_CJK.tjcz0u77k5.dat": "icudt_CJK.dat",
|
||||
"icudt_EFIGS.tptq2av103.dat": "icudt_EFIGS.dat",
|
||||
"icudt_no_CJK.lfu7j35m59.dat": "icudt_no_CJK.dat",
|
||||
"OnProfNext.Shared.2mfi0vbe9l.wasm": "OnProfNext.Shared.wasm",
|
||||
"OnProfNext.Shared.t3qtrvr78n.pdb": "OnProfNext.Shared.pdb",
|
||||
"OnProfNext.Client.5wq5yy3l8s.wasm": "OnProfNext.Client.wasm",
|
||||
"OnProfNext.Client.4rg9bpcr9v.pdb": "OnProfNext.Client.pdb"
|
||||
"OnProfNext.Shared.ycdkuu8x8h.wasm": "OnProfNext.Shared.wasm",
|
||||
"OnProfNext.Shared.bi3s6hw0ov.pdb": "OnProfNext.Shared.pdb",
|
||||
"OnProfNext.Client.xxw7n209sx.wasm": "OnProfNext.Client.wasm",
|
||||
"OnProfNext.Client.mwqxl9mbte.pdb": "OnProfNext.Client.pdb"
|
||||
},
|
||||
"jsModuleNative": {
|
||||
"dotnet.native.9ih887ebfz.js": "sha256-oS7IRiQoVt9ThQ7Y2UM3XoeY0JqPD02cg9IvRdufn2w="
|
||||
@ -442,12 +442,12 @@
|
||||
"WindowsBase.vy2l5u79y6.wasm": "sha256-ufB9Mo5joMyUs3DzXWWBFFIZNEVrt6h9N5stYB6Oln4=",
|
||||
"mscorlib.xd6mv31d55.wasm": "sha256-1YSLR2eZt3ceALFV//vZUF2AloxVil3VlrW1zZYPSEI=",
|
||||
"netstandard.kaml52uspo.wasm": "sha256-HLEwBpLfzKw2/zGSVzHzFJxznCkt/WIjahrziiMrOpA=",
|
||||
"OnProfNext.Shared.2mfi0vbe9l.wasm": "sha256-dtTuHimLAmvGF8qILy/wJ/+ayEzY7dCE84UPpHBOASA=",
|
||||
"OnProfNext.Client.5wq5yy3l8s.wasm": "sha256-m066gnQLM/+y1wYYFW4kr2hCQmPEE259N81Fky7+CwU="
|
||||
"OnProfNext.Shared.ycdkuu8x8h.wasm": "sha256-olapogpfRGpDGxXuzau/hIQ5o4cyZhq8h7xg3+iq8E4=",
|
||||
"OnProfNext.Client.xxw7n209sx.wasm": "sha256-haEY6AqSymUCGlI0dfz7DhNA7AgCZibKuDrAYQRP8YA="
|
||||
},
|
||||
"pdb": {
|
||||
"OnProfNext.Shared.t3qtrvr78n.pdb": "sha256-aXAxhpJUbAJFfkq3FS2JtRPFp2plRnylMovNt92Xwwo=",
|
||||
"OnProfNext.Client.4rg9bpcr9v.pdb": "sha256-ECxFZzQ6HqVe1zWc13ioyvpjeuXnoVabpsyS62HMv+I="
|
||||
"OnProfNext.Shared.bi3s6hw0ov.pdb": "sha256-PVU32sYeYWTHZ/OZrfTWLqQEkEcm060yrjFwRiK7vs4=",
|
||||
"OnProfNext.Client.mwqxl9mbte.pdb": "sha256-dh/Pyivioxp3QQaW9jirXIoZFcucZBQ24pD2oJva5IQ="
|
||||
}
|
||||
},
|
||||
"cacheBootResources": true,
|
||||
|
||||
Binary file not shown.
@ -13,7 +13,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+789d44a34459f0132cb03433abffa66c9ff48824")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+910ed8b8f84357d5f19f7be7f67be8f98b22e9c9")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OnProfNext.Client")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OnProfNext.Client")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
a6d164127922e05929c86ac8b818b177b550a13e63904451ca14283aeb814edd
|
||||
23ad94e3cb51159ce56923b4c951a2f464f99f297debd052bd2c2b60700174d6
|
||||
|
||||
Binary file not shown.
@ -1159,16 +1159,16 @@ C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\scopedcss\Compone
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\scopedcss\Components\Layout\NavMenu.razor.rz.scp.css
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\cmx4u86mij-jq0bgzcoc4.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\b3tztoi1cm-ob0l47m3ye.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.t3qtrvr78n.pdb
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.2mfi0vbe9l.wasm
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.2mfi0vbe9l.wasm.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.t3qtrvr78n.pdb.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\kzp5jtqdfd-2mfi0vbe9l.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\po7udqtwl2-t3qtrvr78n.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.4rg9bpcr9v.pdb
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.5wq5yy3l8s.wasm
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.4rg9bpcr9v.pdb.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.5wq5yy3l8s.wasm.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\cez1jk5yrk-5wq5yy3l8s.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\b9lx0cbjbg-4rg9bpcr9v.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\xzgxwa2yd7-wfeicy0di7.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.mwqxl9mbte.pdb
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.xxw7n209sx.wasm
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.bi3s6hw0ov.pdb
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.ycdkuu8x8h.wasm
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.mwqxl9mbte.pdb.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Client.xxw7n209sx.wasm.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.ycdkuu8x8h.wasm.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\bin\Debug\net9.0\wwwroot\_framework\OnProfNext.Shared.bi3s6hw0ov.pdb.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\kzp5jtqdfd-ycdkuu8x8h.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\po7udqtwl2-bi3s6hw0ov.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\cez1jk5yrk-xxw7n209sx.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\b9lx0cbjbg-mwqxl9mbte.gz
|
||||
C:\DEVQPDC\Proj2\OnProfNext\OnProfNext.Client\obj\Debug\net9.0\compressed\xzgxwa2yd7-2n5b5i9hx5.gz
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"mainAssemblyName": "OnProfNext.Client",
|
||||
"resources": {
|
||||
"hash": "sha256-SaR622VBzkbZ3Cn15m/brI2xuJEupmhtVwEx8wa/rI4=",
|
||||
"hash": "sha256-7KW3Qfm9CxYkbtb9+tRJYPyzmuj07fziiiVYwg4iZ/Y=",
|
||||
"fingerprinting": {
|
||||
"BlazorBootstrap.ym6tnrklwx.wasm": "BlazorBootstrap.wasm",
|
||||
"Blazored.Typeahead.5g65vcuhxb.wasm": "Blazored.Typeahead.wasm",
|
||||
@ -215,10 +215,10 @@
|
||||
"icudt_CJK.tjcz0u77k5.dat": "icudt_CJK.dat",
|
||||
"icudt_EFIGS.tptq2av103.dat": "icudt_EFIGS.dat",
|
||||
"icudt_no_CJK.lfu7j35m59.dat": "icudt_no_CJK.dat",
|
||||
"OnProfNext.Shared.2mfi0vbe9l.wasm": "OnProfNext.Shared.wasm",
|
||||
"OnProfNext.Shared.t3qtrvr78n.pdb": "OnProfNext.Shared.pdb",
|
||||
"OnProfNext.Client.5wq5yy3l8s.wasm": "OnProfNext.Client.wasm",
|
||||
"OnProfNext.Client.4rg9bpcr9v.pdb": "OnProfNext.Client.pdb"
|
||||
"OnProfNext.Shared.ycdkuu8x8h.wasm": "OnProfNext.Shared.wasm",
|
||||
"OnProfNext.Shared.bi3s6hw0ov.pdb": "OnProfNext.Shared.pdb",
|
||||
"OnProfNext.Client.xxw7n209sx.wasm": "OnProfNext.Client.wasm",
|
||||
"OnProfNext.Client.mwqxl9mbte.pdb": "OnProfNext.Client.pdb"
|
||||
},
|
||||
"jsModuleNative": {
|
||||
"dotnet.native.9ih887ebfz.js": "sha256-oS7IRiQoVt9ThQ7Y2UM3XoeY0JqPD02cg9IvRdufn2w="
|
||||
@ -442,12 +442,12 @@
|
||||
"WindowsBase.vy2l5u79y6.wasm": "sha256-ufB9Mo5joMyUs3DzXWWBFFIZNEVrt6h9N5stYB6Oln4=",
|
||||
"mscorlib.xd6mv31d55.wasm": "sha256-1YSLR2eZt3ceALFV//vZUF2AloxVil3VlrW1zZYPSEI=",
|
||||
"netstandard.kaml52uspo.wasm": "sha256-HLEwBpLfzKw2/zGSVzHzFJxznCkt/WIjahrziiMrOpA=",
|
||||
"OnProfNext.Shared.2mfi0vbe9l.wasm": "sha256-dtTuHimLAmvGF8qILy/wJ/+ayEzY7dCE84UPpHBOASA=",
|
||||
"OnProfNext.Client.5wq5yy3l8s.wasm": "sha256-m066gnQLM/+y1wYYFW4kr2hCQmPEE259N81Fky7+CwU="
|
||||
"OnProfNext.Shared.ycdkuu8x8h.wasm": "sha256-olapogpfRGpDGxXuzau/hIQ5o4cyZhq8h7xg3+iq8E4=",
|
||||
"OnProfNext.Client.xxw7n209sx.wasm": "sha256-haEY6AqSymUCGlI0dfz7DhNA7AgCZibKuDrAYQRP8YA="
|
||||
},
|
||||
"pdb": {
|
||||
"OnProfNext.Shared.t3qtrvr78n.pdb": "sha256-aXAxhpJUbAJFfkq3FS2JtRPFp2plRnylMovNt92Xwwo=",
|
||||
"OnProfNext.Client.4rg9bpcr9v.pdb": "sha256-ECxFZzQ6HqVe1zWc13ioyvpjeuXnoVabpsyS62HMv+I="
|
||||
"OnProfNext.Shared.bi3s6hw0ov.pdb": "sha256-PVU32sYeYWTHZ/OZrfTWLqQEkEcm060yrjFwRiK7vs4=",
|
||||
"OnProfNext.Client.mwqxl9mbte.pdb": "sha256-dh/Pyivioxp3QQaW9jirXIoZFcucZBQ24pD2oJva5IQ="
|
||||
}
|
||||
},
|
||||
"cacheBootResources": true,
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"HQrK/c2YdUjsysKaYGSoybSEyDguxRws1HNGGkzNr68=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["wMWPZGfJtGeKkPw89r\u002BuOnYPKqx9sEcbqVKHPoYpTbg=","puDy0dzI5QvIsFKrWO6hrkZZcZnbTNSWaBqIyd5vS9E=","bNNyXhlBr3jQbNMkCOe8xcZdSkB7XoUpSNnehjUQlxA=","3Q171G9uNkjZ3lAgJDZDLi2eJw/8ixjkaHrw3rOC/vo=","TDAOXjznXPMZY6da8pxBF7r\u002BgikX9nuv6RoxA3r\u002BE1M=","HwFAFTSvCp26cdo1kx5ecfdA/\u002BXAkxgIq5fu6m8nIA0=","SHr5eqYzJxZNE5/PlzkQfEBMjakT5PcfDexn2iCZjyI=","rovhGZeu5lwGm9t06s1govZ9ZDUAyhGquT/zYxV9EMA=","n90/VXHLh5f/b\u002BenXJx5LvC2wVhxMsmGXsKTtLP1rGE=","M2F\u002BdirWJXRBR8xTEBUsBQq5ZBlMsGLrQuDu2Xoflo8=","QQfqB2d2lyRaoRCXHlFI1qDyAV8sb3YBC6sabNep4T8=","sCLTILGPMYZmM4Cq6VeXFDRKEU4zUeqi0zh34Zyl1\u002Bg=","KPtl\u002BIcYzJanv3TdGEjfu/58zjjSte7onQyK1z2UpSs=","UOD2algC0YxakRPAo\u002BdHBxw2nz\u002Bf3inCW8K/2sYv4hk=","2a4AqN7uSgiGGPijKrbGYp3zTiFaYviYMC4je9251Gg=","S1JDFpdG6oeT7HQg1q6p3OLFEq6MSuMk9DrbZZf85U0=","FcAp\u002BB\u002BMdtU4Jqt1qd8ZU0XGQCyIO1UaSwwwKyFcuRI=","KicT\u002BJLs/7POfopY2e6knubWrx25hvaxJ1zNKezbz9Y=","xL7/ma/CChAYqsGMi59uK6yIstcESmcirrh1RzpvMEw=","dnRdnpQc61NJ56ASQrUFLZkDTGNM0KNu\u002BtR3NDDE34A=","Grv4g6vNrL73s12N910v2w8Bfa5b3fgn3knYM4SPbTo=","biFvXP\u002Bh3VCB//g0WfQTKnZXpYAq5NNK8FOtNrSlluc=","JbXwwQIUN/GSNZKsNiMjv4ebWU2SviyhnVdlqdpCpmg=","nz\u002BZycBj/r0qxn/lLFHWJ8J6wFGlMsV/1mlRmZUo/4I=","aQycidQhGUbn4VCw/EJfF5iFRrN1xIgwHoIJjbOVZps=","qgUM6A/uKHiUkWc1/Ln9WXX1SAX8JoRvV74Ma6ZFmng=","iKkyE9MQsJaeQ\u002BwNmzP/yqlnE0DgDcGv\u002BmjdLoDxrRo=","uTVPNnHOvOCd/yTop9dVCWOMKn4tFTh\u002B\u002BvDB36ISZPs=","mfZpFq\u002BvCmodLP7zO9b0YsEWC/OcDyBoxhYqFD56fFk=","YWOs7JAKIsqIOVQG0w8okz7vUzx0CLjYsgFSeEvd8dY=","mhyeOUDBL5xq9Rlm12fZKRW\u002BewVdAloH3HpGO\u002B7GqeM=","dwYRUoBX6sjNOpgOukCSK6FYozMx5nQPuanV9jF0pug=","ozbr8RdoOPcWGZFTphPnXiPHqUXsUX48rNHT9DPxQQQ=","zNy/\u002Beenwd4rP3KmszLj/P9L4RfeJcIG51tiUMGKZUI=","JqnKg76tBTEDi4ygNmSbT8906THHzJuCJTZbK0K6Oe8=","JcACn0ymzW4JpJ5CgWCxT1NdaSHZxnxp\u002BAiJJM/kC6k=","k71DltJbtRqVXA3rGahMZgUq0B9sodbz2R43hsUcD1I=","aouiJcQV84ezpO9Cwpg\u002BId9XaiZVlGhgxGvxD6PaAGM=","b/Jk0Mr/B4BWzcJa6nZHbXC\u002BzU0I1a30M2AcH5fdjKY=","aK2OxKAVYxUxIEDqZnknDAW9qelpdYKLvlGPA3\u002B5OIE=","E4QT\u002B435PZZ\u002BRTzgvECRD1bOtElnkqeWREaoDzYrMdc=","FBxckgU98gb7vgTEM5V4Q\u002BEWV1Ztcp3Bssbx92n1keA=","gv3iSaKsj0CmcWFWMhUhYcA7l4\u002BnVTp1Jj85xAmbA8E=","mRQfJZfYrp6FVuPsI1970i6\u002Bg1zC7cMX1qaaf5X\u002BoCQ=","5BtfX2AAiOmDTGL34icHscY4eUpH3nbfHN/rb4e62rY=","6rueZEktdPrxLkoO8WfJXCckClsIUsg6sBnN1LTessM=","SZJz\u002B71xnWFevxgzVgPPCqih4KkGwhQhHvoh6BgiWFc=","u2aOXUOrTOrwIgVam12G9HzaU7QEbOQG66Q7IDjlMYY=","8DlE0XjBA/lhOGHaXiPZ5cQswwpo6NEUaebI9my2F4s=","1ldijbG/u6m3Wwq0OUgI3unhWdjWhqvOD\u002BI1PauI9GI=","WtqR0aLtM7t6m3NDyJiTfyz81jhBwyuQkg/iDou5f/k=","aNqGJzJ5xa0dNxSytzanVzqK6xNl85ZkIZfdb\u002BKhxHY=","TpcHV4OB3FaN8hILgTJGBWj6cGx2APNuu6cH90cA2Yw=","jUDUzGIKHCleWWpzHVl3AT4E4/\u002BiG6ks0UJVoC3TXgo=","XfkTfnoOOODr5Ke\u002BIvlGksb7y1tdjO9D3cio6nfgb6o=","sbScjs7uLbfBbWbJKERtvGeL8se13w0V5s0ufS/zDaQ=","9hC0wthPXB9k40lIbDKdWYtaw2axqBb91\u002BojeVYtTEY=","xLFIqNnTxWnQP99MmbgJqozQM9NzpZ0mMYZdGkZnBU4=","qOlED1ak4sYSTrFn1g6Y7mnsz3UFQEQ/RV3qKJGx0DQ=","foWeQlUvvndX4pfDJltcGaBo1koaw\u002BElLUUybC5gBsk=","KQensXLeeaWOn3V5Wpr7X3rpnnA8NBDaOZJpNCvEAKM=","kEPWaTEgcSvuVRYmq9OKVA\u002BlpOmTKkV3fpY5ByqOqFk=","87pLnLY3BRAM5qVJkJZ6NFQjQse85QaOsaRqbVei3f8=","gb5K/PglhYNjQ6udVditV5mmWe8pBL0bkbfqmDZJR3Q=","c//884XNSMx2fHCDDouqzztU4ZLBdyPK5IazFjEu3xg=","A5FwpPfGidgr2NgPt1ofZxg2nxXAcuozNEFd9BE7nsk="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"HQrK/c2YdUjsysKaYGSoybSEyDguxRws1HNGGkzNr68=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["wMWPZGfJtGeKkPw89r\u002BuOnYPKqx9sEcbqVKHPoYpTbg=","puDy0dzI5QvIsFKrWO6hrkZZcZnbTNSWaBqIyd5vS9E=","bNNyXhlBr3jQbNMkCOe8xcZdSkB7XoUpSNnehjUQlxA=","3Q171G9uNkjZ3lAgJDZDLi2eJw/8ixjkaHrw3rOC/vo=","TDAOXjznXPMZY6da8pxBF7r\u002BgikX9nuv6RoxA3r\u002BE1M=","HwFAFTSvCp26cdo1kx5ecfdA/\u002BXAkxgIq5fu6m8nIA0=","SHr5eqYzJxZNE5/PlzkQfEBMjakT5PcfDexn2iCZjyI=","rovhGZeu5lwGm9t06s1govZ9ZDUAyhGquT/zYxV9EMA=","n90/VXHLh5f/b\u002BenXJx5LvC2wVhxMsmGXsKTtLP1rGE=","M2F\u002BdirWJXRBR8xTEBUsBQq5ZBlMsGLrQuDu2Xoflo8=","QQfqB2d2lyRaoRCXHlFI1qDyAV8sb3YBC6sabNep4T8=","sCLTILGPMYZmM4Cq6VeXFDRKEU4zUeqi0zh34Zyl1\u002Bg=","KPtl\u002BIcYzJanv3TdGEjfu/58zjjSte7onQyK1z2UpSs=","UOD2algC0YxakRPAo\u002BdHBxw2nz\u002Bf3inCW8K/2sYv4hk=","2a4AqN7uSgiGGPijKrbGYp3zTiFaYviYMC4je9251Gg=","S1JDFpdG6oeT7HQg1q6p3OLFEq6MSuMk9DrbZZf85U0=","FcAp\u002BB\u002BMdtU4Jqt1qd8ZU0XGQCyIO1UaSwwwKyFcuRI=","KicT\u002BJLs/7POfopY2e6knubWrx25hvaxJ1zNKezbz9Y=","xL7/ma/CChAYqsGMi59uK6yIstcESmcirrh1RzpvMEw=","dnRdnpQc61NJ56ASQrUFLZkDTGNM0KNu\u002BtR3NDDE34A=","Grv4g6vNrL73s12N910v2w8Bfa5b3fgn3knYM4SPbTo=","biFvXP\u002Bh3VCB//g0WfQTKnZXpYAq5NNK8FOtNrSlluc=","JbXwwQIUN/GSNZKsNiMjv4ebWU2SviyhnVdlqdpCpmg=","nz\u002BZycBj/r0qxn/lLFHWJ8J6wFGlMsV/1mlRmZUo/4I=","aQycidQhGUbn4VCw/EJfF5iFRrN1xIgwHoIJjbOVZps=","qgUM6A/uKHiUkWc1/Ln9WXX1SAX8JoRvV74Ma6ZFmng=","iKkyE9MQsJaeQ\u002BwNmzP/yqlnE0DgDcGv\u002BmjdLoDxrRo=","uTVPNnHOvOCd/yTop9dVCWOMKn4tFTh\u002B\u002BvDB36ISZPs=","mfZpFq\u002BvCmodLP7zO9b0YsEWC/OcDyBoxhYqFD56fFk=","YWOs7JAKIsqIOVQG0w8okz7vUzx0CLjYsgFSeEvd8dY=","mhyeOUDBL5xq9Rlm12fZKRW\u002BewVdAloH3HpGO\u002B7GqeM=","dwYRUoBX6sjNOpgOukCSK6FYozMx5nQPuanV9jF0pug=","ozbr8RdoOPcWGZFTphPnXiPHqUXsUX48rNHT9DPxQQQ=","zNy/\u002Beenwd4rP3KmszLj/P9L4RfeJcIG51tiUMGKZUI=","JqnKg76tBTEDi4ygNmSbT8906THHzJuCJTZbK0K6Oe8=","JcACn0ymzW4JpJ5CgWCxT1NdaSHZxnxp\u002BAiJJM/kC6k=","k71DltJbtRqVXA3rGahMZgUq0B9sodbz2R43hsUcD1I=","aouiJcQV84ezpO9Cwpg\u002BId9XaiZVlGhgxGvxD6PaAGM=","b/Jk0Mr/B4BWzcJa6nZHbXC\u002BzU0I1a30M2AcH5fdjKY=","aK2OxKAVYxUxIEDqZnknDAW9qelpdYKLvlGPA3\u002B5OIE=","E4QT\u002B435PZZ\u002BRTzgvECRD1bOtElnkqeWREaoDzYrMdc=","FBxckgU98gb7vgTEM5V4Q\u002BEWV1Ztcp3Bssbx92n1keA=","gv3iSaKsj0CmcWFWMhUhYcA7l4\u002BnVTp1Jj85xAmbA8E=","mRQfJZfYrp6FVuPsI1970i6\u002Bg1zC7cMX1qaaf5X\u002BoCQ=","5BtfX2AAiOmDTGL34icHscY4eUpH3nbfHN/rb4e62rY=","6rueZEktdPrxLkoO8WfJXCckClsIUsg6sBnN1LTessM=","SZJz\u002B71xnWFevxgzVgPPCqih4KkGwhQhHvoh6BgiWFc=","u2aOXUOrTOrwIgVam12G9HzaU7QEbOQG66Q7IDjlMYY=","8DlE0XjBA/lhOGHaXiPZ5cQswwpo6NEUaebI9my2F4s=","1ldijbG/u6m3Wwq0OUgI3unhWdjWhqvOD\u002BI1PauI9GI=","WtqR0aLtM7t6m3NDyJiTfyz81jhBwyuQkg/iDou5f/k=","aNqGJzJ5xa0dNxSytzanVzqK6xNl85ZkIZfdb\u002BKhxHY=","TpcHV4OB3FaN8hILgTJGBWj6cGx2APNuu6cH90cA2Yw=","y2O\u002BMtvYW\u002BJsiXwnsSGokrtLoPU1BZKq/Rs6jBLWkBA=","XfkTfnoOOODr5Ke\u002BIvlGksb7y1tdjO9D3cio6nfgb6o=","sbScjs7uLbfBbWbJKERtvGeL8se13w0V5s0ufS/zDaQ=","9hC0wthPXB9k40lIbDKdWYtaw2axqBb91\u002BojeVYtTEY=","xLFIqNnTxWnQP99MmbgJqozQM9NzpZ0mMYZdGkZnBU4=","qOlED1ak4sYSTrFn1g6Y7mnsz3UFQEQ/RV3qKJGx0DQ=","Ijp03RBmTBHzhcCv1Sg/aWUghcNgib2sblPmYlOuDYk=","HCsDlEON4uTuZHQ/mLhoZSnOhDE/0YmD0\u002BPzbGk55jk=","DIlQgc8O3Rampq4\u002BuAU34qvAhOQ76ih6rEWZRuXbpGs=","87pLnLY3BRAM5qVJkJZ6NFQjQse85QaOsaRqbVei3f8=","gb5K/PglhYNjQ6udVditV5mmWe8pBL0bkbfqmDZJR3Q=","c//884XNSMx2fHCDDouqzztU4ZLBdyPK5IazFjEu3xg=","A5FwpPfGidgr2NgPt1ofZxg2nxXAcuozNEFd9BE7nsk="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"Q5kcht8XOSaXwErDHawVS9gd2nNuRy7EEG55Mop5u7E=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["wMWPZGfJtGeKkPw89r\u002BuOnYPKqx9sEcbqVKHPoYpTbg=","puDy0dzI5QvIsFKrWO6hrkZZcZnbTNSWaBqIyd5vS9E=","bNNyXhlBr3jQbNMkCOe8xcZdSkB7XoUpSNnehjUQlxA=","3Q171G9uNkjZ3lAgJDZDLi2eJw/8ixjkaHrw3rOC/vo=","TDAOXjznXPMZY6da8pxBF7r\u002BgikX9nuv6RoxA3r\u002BE1M=","HwFAFTSvCp26cdo1kx5ecfdA/\u002BXAkxgIq5fu6m8nIA0=","SHr5eqYzJxZNE5/PlzkQfEBMjakT5PcfDexn2iCZjyI=","rovhGZeu5lwGm9t06s1govZ9ZDUAyhGquT/zYxV9EMA=","n90/VXHLh5f/b\u002BenXJx5LvC2wVhxMsmGXsKTtLP1rGE=","M2F\u002BdirWJXRBR8xTEBUsBQq5ZBlMsGLrQuDu2Xoflo8=","QQfqB2d2lyRaoRCXHlFI1qDyAV8sb3YBC6sabNep4T8=","sCLTILGPMYZmM4Cq6VeXFDRKEU4zUeqi0zh34Zyl1\u002Bg=","KPtl\u002BIcYzJanv3TdGEjfu/58zjjSte7onQyK1z2UpSs=","UOD2algC0YxakRPAo\u002BdHBxw2nz\u002Bf3inCW8K/2sYv4hk=","2a4AqN7uSgiGGPijKrbGYp3zTiFaYviYMC4je9251Gg=","S1JDFpdG6oeT7HQg1q6p3OLFEq6MSuMk9DrbZZf85U0=","FcAp\u002BB\u002BMdtU4Jqt1qd8ZU0XGQCyIO1UaSwwwKyFcuRI=","KicT\u002BJLs/7POfopY2e6knubWrx25hvaxJ1zNKezbz9Y=","xL7/ma/CChAYqsGMi59uK6yIstcESmcirrh1RzpvMEw=","dnRdnpQc61NJ56ASQrUFLZkDTGNM0KNu\u002BtR3NDDE34A=","Grv4g6vNrL73s12N910v2w8Bfa5b3fgn3knYM4SPbTo=","biFvXP\u002Bh3VCB//g0WfQTKnZXpYAq5NNK8FOtNrSlluc=","JbXwwQIUN/GSNZKsNiMjv4ebWU2SviyhnVdlqdpCpmg=","nz\u002BZycBj/r0qxn/lLFHWJ8J6wFGlMsV/1mlRmZUo/4I=","aQycidQhGUbn4VCw/EJfF5iFRrN1xIgwHoIJjbOVZps=","qgUM6A/uKHiUkWc1/Ln9WXX1SAX8JoRvV74Ma6ZFmng=","iKkyE9MQsJaeQ\u002BwNmzP/yqlnE0DgDcGv\u002BmjdLoDxrRo=","uTVPNnHOvOCd/yTop9dVCWOMKn4tFTh\u002B\u002BvDB36ISZPs=","mfZpFq\u002BvCmodLP7zO9b0YsEWC/OcDyBoxhYqFD56fFk=","YWOs7JAKIsqIOVQG0w8okz7vUzx0CLjYsgFSeEvd8dY=","mhyeOUDBL5xq9Rlm12fZKRW\u002BewVdAloH3HpGO\u002B7GqeM=","dwYRUoBX6sjNOpgOukCSK6FYozMx5nQPuanV9jF0pug=","ozbr8RdoOPcWGZFTphPnXiPHqUXsUX48rNHT9DPxQQQ=","zNy/\u002Beenwd4rP3KmszLj/P9L4RfeJcIG51tiUMGKZUI=","JqnKg76tBTEDi4ygNmSbT8906THHzJuCJTZbK0K6Oe8=","JcACn0ymzW4JpJ5CgWCxT1NdaSHZxnxp\u002BAiJJM/kC6k=","k71DltJbtRqVXA3rGahMZgUq0B9sodbz2R43hsUcD1I=","aouiJcQV84ezpO9Cwpg\u002BId9XaiZVlGhgxGvxD6PaAGM=","b/Jk0Mr/B4BWzcJa6nZHbXC\u002BzU0I1a30M2AcH5fdjKY=","aK2OxKAVYxUxIEDqZnknDAW9qelpdYKLvlGPA3\u002B5OIE=","E4QT\u002B435PZZ\u002BRTzgvECRD1bOtElnkqeWREaoDzYrMdc=","FBxckgU98gb7vgTEM5V4Q\u002BEWV1Ztcp3Bssbx92n1keA=","gv3iSaKsj0CmcWFWMhUhYcA7l4\u002BnVTp1Jj85xAmbA8E=","mRQfJZfYrp6FVuPsI1970i6\u002Bg1zC7cMX1qaaf5X\u002BoCQ=","5BtfX2AAiOmDTGL34icHscY4eUpH3nbfHN/rb4e62rY=","6rueZEktdPrxLkoO8WfJXCckClsIUsg6sBnN1LTessM=","SZJz\u002B71xnWFevxgzVgPPCqih4KkGwhQhHvoh6BgiWFc=","u2aOXUOrTOrwIgVam12G9HzaU7QEbOQG66Q7IDjlMYY=","8DlE0XjBA/lhOGHaXiPZ5cQswwpo6NEUaebI9my2F4s=","1ldijbG/u6m3Wwq0OUgI3unhWdjWhqvOD\u002BI1PauI9GI=","WtqR0aLtM7t6m3NDyJiTfyz81jhBwyuQkg/iDou5f/k=","aNqGJzJ5xa0dNxSytzanVzqK6xNl85ZkIZfdb\u002BKhxHY=","TpcHV4OB3FaN8hILgTJGBWj6cGx2APNuu6cH90cA2Yw=","jUDUzGIKHCleWWpzHVl3AT4E4/\u002BiG6ks0UJVoC3TXgo=","XfkTfnoOOODr5Ke\u002BIvlGksb7y1tdjO9D3cio6nfgb6o=","sbScjs7uLbfBbWbJKERtvGeL8se13w0V5s0ufS/zDaQ=","9hC0wthPXB9k40lIbDKdWYtaw2axqBb91\u002BojeVYtTEY=","xLFIqNnTxWnQP99MmbgJqozQM9NzpZ0mMYZdGkZnBU4=","qOlED1ak4sYSTrFn1g6Y7mnsz3UFQEQ/RV3qKJGx0DQ=","foWeQlUvvndX4pfDJltcGaBo1koaw\u002BElLUUybC5gBsk=","KQensXLeeaWOn3V5Wpr7X3rpnnA8NBDaOZJpNCvEAKM=","kEPWaTEgcSvuVRYmq9OKVA\u002BlpOmTKkV3fpY5ByqOqFk=","87pLnLY3BRAM5qVJkJZ6NFQjQse85QaOsaRqbVei3f8=","gb5K/PglhYNjQ6udVditV5mmWe8pBL0bkbfqmDZJR3Q=","c//884XNSMx2fHCDDouqzztU4ZLBdyPK5IazFjEu3xg=","A5FwpPfGidgr2NgPt1ofZxg2nxXAcuozNEFd9BE7nsk="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"Q5kcht8XOSaXwErDHawVS9gd2nNuRy7EEG55Mop5u7E=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["wMWPZGfJtGeKkPw89r\u002BuOnYPKqx9sEcbqVKHPoYpTbg=","puDy0dzI5QvIsFKrWO6hrkZZcZnbTNSWaBqIyd5vS9E=","bNNyXhlBr3jQbNMkCOe8xcZdSkB7XoUpSNnehjUQlxA=","3Q171G9uNkjZ3lAgJDZDLi2eJw/8ixjkaHrw3rOC/vo=","TDAOXjznXPMZY6da8pxBF7r\u002BgikX9nuv6RoxA3r\u002BE1M=","HwFAFTSvCp26cdo1kx5ecfdA/\u002BXAkxgIq5fu6m8nIA0=","SHr5eqYzJxZNE5/PlzkQfEBMjakT5PcfDexn2iCZjyI=","rovhGZeu5lwGm9t06s1govZ9ZDUAyhGquT/zYxV9EMA=","n90/VXHLh5f/b\u002BenXJx5LvC2wVhxMsmGXsKTtLP1rGE=","M2F\u002BdirWJXRBR8xTEBUsBQq5ZBlMsGLrQuDu2Xoflo8=","QQfqB2d2lyRaoRCXHlFI1qDyAV8sb3YBC6sabNep4T8=","sCLTILGPMYZmM4Cq6VeXFDRKEU4zUeqi0zh34Zyl1\u002Bg=","KPtl\u002BIcYzJanv3TdGEjfu/58zjjSte7onQyK1z2UpSs=","UOD2algC0YxakRPAo\u002BdHBxw2nz\u002Bf3inCW8K/2sYv4hk=","2a4AqN7uSgiGGPijKrbGYp3zTiFaYviYMC4je9251Gg=","S1JDFpdG6oeT7HQg1q6p3OLFEq6MSuMk9DrbZZf85U0=","FcAp\u002BB\u002BMdtU4Jqt1qd8ZU0XGQCyIO1UaSwwwKyFcuRI=","KicT\u002BJLs/7POfopY2e6knubWrx25hvaxJ1zNKezbz9Y=","xL7/ma/CChAYqsGMi59uK6yIstcESmcirrh1RzpvMEw=","dnRdnpQc61NJ56ASQrUFLZkDTGNM0KNu\u002BtR3NDDE34A=","Grv4g6vNrL73s12N910v2w8Bfa5b3fgn3knYM4SPbTo=","biFvXP\u002Bh3VCB//g0WfQTKnZXpYAq5NNK8FOtNrSlluc=","JbXwwQIUN/GSNZKsNiMjv4ebWU2SviyhnVdlqdpCpmg=","nz\u002BZycBj/r0qxn/lLFHWJ8J6wFGlMsV/1mlRmZUo/4I=","aQycidQhGUbn4VCw/EJfF5iFRrN1xIgwHoIJjbOVZps=","qgUM6A/uKHiUkWc1/Ln9WXX1SAX8JoRvV74Ma6ZFmng=","iKkyE9MQsJaeQ\u002BwNmzP/yqlnE0DgDcGv\u002BmjdLoDxrRo=","uTVPNnHOvOCd/yTop9dVCWOMKn4tFTh\u002B\u002BvDB36ISZPs=","mfZpFq\u002BvCmodLP7zO9b0YsEWC/OcDyBoxhYqFD56fFk=","YWOs7JAKIsqIOVQG0w8okz7vUzx0CLjYsgFSeEvd8dY=","mhyeOUDBL5xq9Rlm12fZKRW\u002BewVdAloH3HpGO\u002B7GqeM=","dwYRUoBX6sjNOpgOukCSK6FYozMx5nQPuanV9jF0pug=","ozbr8RdoOPcWGZFTphPnXiPHqUXsUX48rNHT9DPxQQQ=","zNy/\u002Beenwd4rP3KmszLj/P9L4RfeJcIG51tiUMGKZUI=","JqnKg76tBTEDi4ygNmSbT8906THHzJuCJTZbK0K6Oe8=","JcACn0ymzW4JpJ5CgWCxT1NdaSHZxnxp\u002BAiJJM/kC6k=","k71DltJbtRqVXA3rGahMZgUq0B9sodbz2R43hsUcD1I=","aouiJcQV84ezpO9Cwpg\u002BId9XaiZVlGhgxGvxD6PaAGM=","b/Jk0Mr/B4BWzcJa6nZHbXC\u002BzU0I1a30M2AcH5fdjKY=","aK2OxKAVYxUxIEDqZnknDAW9qelpdYKLvlGPA3\u002B5OIE=","E4QT\u002B435PZZ\u002BRTzgvECRD1bOtElnkqeWREaoDzYrMdc=","FBxckgU98gb7vgTEM5V4Q\u002BEWV1Ztcp3Bssbx92n1keA=","gv3iSaKsj0CmcWFWMhUhYcA7l4\u002BnVTp1Jj85xAmbA8E=","mRQfJZfYrp6FVuPsI1970i6\u002Bg1zC7cMX1qaaf5X\u002BoCQ=","5BtfX2AAiOmDTGL34icHscY4eUpH3nbfHN/rb4e62rY=","6rueZEktdPrxLkoO8WfJXCckClsIUsg6sBnN1LTessM=","SZJz\u002B71xnWFevxgzVgPPCqih4KkGwhQhHvoh6BgiWFc=","u2aOXUOrTOrwIgVam12G9HzaU7QEbOQG66Q7IDjlMYY=","8DlE0XjBA/lhOGHaXiPZ5cQswwpo6NEUaebI9my2F4s=","1ldijbG/u6m3Wwq0OUgI3unhWdjWhqvOD\u002BI1PauI9GI=","WtqR0aLtM7t6m3NDyJiTfyz81jhBwyuQkg/iDou5f/k=","aNqGJzJ5xa0dNxSytzanVzqK6xNl85ZkIZfdb\u002BKhxHY=","TpcHV4OB3FaN8hILgTJGBWj6cGx2APNuu6cH90cA2Yw=","y2O\u002BMtvYW\u002BJsiXwnsSGokrtLoPU1BZKq/Rs6jBLWkBA=","XfkTfnoOOODr5Ke\u002BIvlGksb7y1tdjO9D3cio6nfgb6o=","sbScjs7uLbfBbWbJKERtvGeL8se13w0V5s0ufS/zDaQ=","9hC0wthPXB9k40lIbDKdWYtaw2axqBb91\u002BojeVYtTEY=","xLFIqNnTxWnQP99MmbgJqozQM9NzpZ0mMYZdGkZnBU4=","qOlED1ak4sYSTrFn1g6Y7mnsz3UFQEQ/RV3qKJGx0DQ=","Ijp03RBmTBHzhcCv1Sg/aWUghcNgib2sblPmYlOuDYk=","HCsDlEON4uTuZHQ/mLhoZSnOhDE/0YmD0\u002BPzbGk55jk=","DIlQgc8O3Rampq4\u002BuAU34qvAhOQ76ih6rEWZRuXbpGs=","87pLnLY3BRAM5qVJkJZ6NFQjQse85QaOsaRqbVei3f8=","gb5K/PglhYNjQ6udVditV5mmWe8pBL0bkbfqmDZJR3Q=","c//884XNSMx2fHCDDouqzztU4ZLBdyPK5IazFjEu3xg=","A5FwpPfGidgr2NgPt1ofZxg2nxXAcuozNEFd9BE7nsk="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
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
@ -1 +1 @@
|
||||
LQIR0vaCUe8ZURwOfXvPmxpSP8m1Mmgdc3YqN7XRVew=
|
||||
uItkRxd8HGmDpOGXSZUcgBl9qNJmoTF2VPg7ZNs3V00=
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
56
OnProfNext.Server/Controllers/OrderUsersController.cs
Normal file
56
OnProfNext.Server/Controllers/OrderUsersController.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using OnProfNext.Server.Data;
|
||||
using OnProfNext.Shared.Models;
|
||||
|
||||
namespace OnProfNext.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
public class OrderUsersController : ControllerBase
|
||||
{
|
||||
private readonly AppDbContext _context;
|
||||
|
||||
public OrderUsersController(AppDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
//GET: api/orderusers/{orderId}
|
||||
[HttpGet("{orderId}")]
|
||||
public async Task<ActionResult<IEnumerable<int>>> GetUsersForOrder(int orderId)
|
||||
{
|
||||
var userIds = await _context.OrderUsers.Where(ou => ou.OrderId == orderId).Select(ou => ou.UserId).ToListAsync();
|
||||
|
||||
return Ok(userIds);
|
||||
}
|
||||
|
||||
//POST: api/orderusers
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> SetUsersForOrder([FromBody] OrderUserAssignmentDto dto)
|
||||
{
|
||||
var existing = await _context.OrderUsers
|
||||
.Where(ou => ou.OrderId == dto.OrderId)
|
||||
.ToListAsync();
|
||||
|
||||
_context.OrderUsers.RemoveRange(existing);
|
||||
|
||||
var newRelations = dto.UserIds.Select(uid => new OrderUser
|
||||
{
|
||||
OrderId = dto.OrderId,
|
||||
UserId = uid
|
||||
});
|
||||
|
||||
_context.OrderUsers.AddRange(newRelations);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
public class OrderUserAssignmentDto
|
||||
{
|
||||
public int OrderId { get; set; }
|
||||
public List<int> UserIds { get; set; } = new();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -19,12 +19,14 @@ namespace OnProfNext.Server.Controllers
|
||||
_context = context;
|
||||
}
|
||||
|
||||
//Get: api/orders/byproject/5
|
||||
[HttpGet("byproject/{projectId}")]
|
||||
public async Task<ActionResult<IEnumerable<OrderDto>>> GetOrdersByProject(int projectId)
|
||||
{
|
||||
var orders = await _context.Orders
|
||||
.Include(o => o.OrderUsers)
|
||||
.ThenInclude(ou => ou.User)
|
||||
.Where(o => o.ProjectId == projectId)
|
||||
.AsNoTracking()
|
||||
.Select(o => new OrderDto
|
||||
{
|
||||
Id = o.Id,
|
||||
@ -34,10 +36,16 @@ namespace OnProfNext.Server.Controllers
|
||||
Status = o.Status,
|
||||
Planstunden = o.Planstunden,
|
||||
Iststunden = o.Iststunden,
|
||||
Projektcode = o.Projektcode,
|
||||
MandantId = o.MandantId,
|
||||
CreatedAt = o.CreatedAt,
|
||||
UpdatedAt = o.UpdatedAt
|
||||
Mitarbeiter = o.OrderUsers
|
||||
.Select(ou => new UserDto
|
||||
{
|
||||
Id = ou.User!.Id,
|
||||
Username = ou.User.Username,
|
||||
FirstName = ou.User.FirstName,
|
||||
LastName = ou.User.LastName,
|
||||
Email = ou.User.Email
|
||||
}).ToList()
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
@ -48,28 +56,45 @@ namespace OnProfNext.Server.Controllers
|
||||
[HttpGet("{id}")]
|
||||
public async Task<ActionResult<OrderDto>> GetOrder(int id)
|
||||
{
|
||||
var o = await _context.Orders.FindAsync(id);
|
||||
if (o == null) return NotFound();
|
||||
var order = await _context.Orders
|
||||
.Include(o => o.OrderUsers)
|
||||
.ThenInclude(ou => ou.User)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(o => o.Id == id);
|
||||
|
||||
return new OrderDto
|
||||
if (order == null)
|
||||
return NotFound();
|
||||
|
||||
var dto = new OrderDto
|
||||
{
|
||||
Id = o.Id,
|
||||
ProjectId = o.ProjectId,
|
||||
Auftragsnummer = o.Auftragsnummer,
|
||||
Titel = o.Titel,
|
||||
Status = o.Status,
|
||||
Planstunden = o.Planstunden,
|
||||
Iststunden = o.Iststunden,
|
||||
Projektcode = o.Projektcode,
|
||||
MandantId = o.MandantId,
|
||||
CreatedAt = o.CreatedAt,
|
||||
UpdatedAt = o.UpdatedAt
|
||||
Id = order.Id,
|
||||
ProjectId = order.ProjectId,
|
||||
Auftragsnummer = order.Auftragsnummer,
|
||||
Titel = order.Titel,
|
||||
Status = order.Status,
|
||||
Planstunden = order.Planstunden,
|
||||
Iststunden = order.Iststunden,
|
||||
Projektcode = order.Projektcode,
|
||||
MandantId = order.MandantId,
|
||||
CreatedAt = order.CreatedAt,
|
||||
UpdatedAt = order.UpdatedAt,
|
||||
Mitarbeiter = order.OrderUsers
|
||||
.Select(ou => new UserDto
|
||||
{
|
||||
Id = ou.User!.Id,
|
||||
Username = ou.User.Username,
|
||||
FirstName = ou.User.FirstName,
|
||||
LastName = ou.User.LastName,
|
||||
Email = ou.User.Email
|
||||
}).ToList()
|
||||
};
|
||||
|
||||
return Ok(dto);
|
||||
}
|
||||
|
||||
// POST: api/orders
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<OrderDto>> CreateOrder(OrderDto dto)
|
||||
public async Task<ActionResult<OrderDto>> CreateOrder(OrderCreateDto dto)
|
||||
{
|
||||
var order = new Order
|
||||
{
|
||||
@ -78,8 +103,7 @@ namespace OnProfNext.Server.Controllers
|
||||
Titel = dto.Titel,
|
||||
Status = dto.Status,
|
||||
Planstunden = dto.Planstunden,
|
||||
Iststunden = dto.Iststunden,
|
||||
Projektcode = dto.Projektcode,
|
||||
Iststunden = 0,
|
||||
MandantId = dto.MandantId,
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
UpdatedAt = DateTime.UtcNow
|
||||
@ -88,11 +112,35 @@ namespace OnProfNext.Server.Controllers
|
||||
_context.Orders.Add(order);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
dto.Id = order.Id;
|
||||
dto.CreatedAt = order.CreatedAt;
|
||||
dto.UpdatedAt = order.UpdatedAt;
|
||||
// Mitarbeiter zuordnen
|
||||
if (dto.UserIds != null && dto.UserIds.Any())
|
||||
{
|
||||
var relations = dto.UserIds.Select(uid => new OrderUser
|
||||
{
|
||||
OrderId = order.Id,
|
||||
UserId = uid
|
||||
});
|
||||
|
||||
return CreatedAtAction(nameof(GetOrder), new { id = order.Id }, dto);
|
||||
_context.OrderUsers.AddRange(relations);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
// Antwort zusammenbauen
|
||||
var createdDto = new OrderDto
|
||||
{
|
||||
Id = order.Id,
|
||||
ProjectId = order.ProjectId,
|
||||
Auftragsnummer = order.Auftragsnummer,
|
||||
Titel = order.Titel,
|
||||
Status = order.Status,
|
||||
Planstunden = order.Planstunden,
|
||||
Iststunden = order.Iststunden,
|
||||
MandantId = order.MandantId,
|
||||
CreatedAt = order.CreatedAt,
|
||||
UpdatedAt = order.UpdatedAt
|
||||
};
|
||||
|
||||
return CreatedAtAction(nameof(GetOrder), new { id = order.Id }, createdDto);
|
||||
}
|
||||
|
||||
//PUT: api/orders/5
|
||||
@ -117,13 +165,18 @@ namespace OnProfNext.Server.Controllers
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<IActionResult> DeleteOrder(int id)
|
||||
{
|
||||
var order = await _context.Orders.FindAsync(id);
|
||||
if (order == null) return NotFound();
|
||||
var order = await _context.Orders
|
||||
.Include(o => o.OrderUsers)
|
||||
.FirstOrDefaultAsync(o => o.Id == id);
|
||||
|
||||
if (order == null)
|
||||
return NotFound();
|
||||
|
||||
_context.OrderUsers.RemoveRange(order.OrderUsers);
|
||||
_context.Orders.Remove(order);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,11 +8,11 @@ namespace OnProfNext.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
public class ProjectController : ControllerBase
|
||||
public class ProjectsController : ControllerBase
|
||||
{
|
||||
private readonly AppDbContext _context;
|
||||
|
||||
public ProjectController(AppDbContext context)
|
||||
public ProjectsController(AppDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore;
|
||||
using OnProfNext.Server.Data;
|
||||
using OnProfNext.Server.Services;
|
||||
using OnProfNext.Shared.Models;
|
||||
using OnProfNext.Shared.Models.DTOs;
|
||||
|
||||
namespace OnProfNext.Server.Controllers
|
||||
{
|
||||
@ -22,21 +23,45 @@ namespace OnProfNext.Server.Controllers
|
||||
//GET: api/users
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<IEnumerable<User>>> GetUsers()
|
||||
public async Task<ActionResult<IEnumerable<UserDto>>> GetUsers()
|
||||
{
|
||||
return await _context.Users.AsNoTracking().ToListAsync();
|
||||
var users = await _context.Users.AsNoTracking().Select(u => new UserDto
|
||||
{
|
||||
Id = u.Id,
|
||||
Username = u.Username,
|
||||
Email = u.Email,
|
||||
FirstName = u.FirstName,
|
||||
LastName = u.LastName,
|
||||
MandantId = u.MandantId,
|
||||
IsActive = u.IsActive
|
||||
}).ToListAsync();
|
||||
|
||||
return Ok(users);
|
||||
}
|
||||
|
||||
//GET: api/users/5
|
||||
[HttpGet("{id}")]
|
||||
public async Task<ActionResult<User>> GetUser(int id)
|
||||
public async Task<ActionResult<UserDto>> GetUser(int id)
|
||||
{
|
||||
var user = await _context.Users.FindAsync(id);
|
||||
var user = await _context.Users
|
||||
.AsNoTracking()
|
||||
.Where(u => u.Id == id)
|
||||
.Select(u => new UserDto
|
||||
{
|
||||
Id = u.Id,
|
||||
Username = u.Username,
|
||||
Email = u.Email,
|
||||
FirstName = u.FirstName,
|
||||
LastName = u.LastName,
|
||||
MandantId = u.MandantId,
|
||||
IsActive = u.IsActive
|
||||
})
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
return user;
|
||||
|
||||
return Ok(user);
|
||||
}
|
||||
|
||||
//POST: api/users
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OnProfNext.Server")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+789d44a34459f0132cb03433abffa66c9ff48824")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+910ed8b8f84357d5f19f7be7f67be8f98b22e9c9")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OnProfNext.Server")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OnProfNext.Server")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
0112fdf05bcbbdf85e9b7a9cb66a9b7812c7b77cd789cf405fa10334aba74a96
|
||||
9c6fea68571aa14755a5757920f4a71a3ea78617a0cb2d16e4a85d871afee2d4
|
||||
|
||||
Binary file not shown.
@ -1 +1 @@
|
||||
1649fe5519326da7f926266c5793daba5ff377a06b40397fb607e486ec674434
|
||||
8805535874ac805970a5fc9ba19ba7716e78a205f536b46f85b434f940fcc2fa
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"FgKIeBZ9Ztoqric5Nb7d8Ix++iErS9q0YOlj6fkVIbM=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["PmzPzDLX5kem67gWwuODY2y/hyQd8nKfjwCe/ukzc7c=","LY\u002BzkbCH4BDCRNsN4e4hLpvYL/q343HA7aPqxLAnut4=","JcRKU2Zb4DUaR9Im1Nhj21bq9CS6zqrEyUlIptRQGPk=","oWGMgCB3vBEn8UDnk8gLGSmHUQp9nje0xZwa9jbcJds=","j4zvFombPCFDsE\u002BVLdnMhkrq8OLrHidrxFTLuLU5vMQ=","KJJmmS83E4AFqRDn5z9krFmkNtj5EIaWLgIS37POGr8=","xQg7Ozplq1cFDQPPrR5U6g5tfTz0Tx8zEGJriilBzbY=","xXIxgYvMtC9sEkafVNlrcH1Pv5l0FLdyBQPAp5BPAeY=","tf9mfbbiGyrn8DwXufw5UsDjSSX2bb4/v03tlENYAyQ=","HCEmdDnOaqxSVlCudFM7kXBMB\u002BTnSOIqCZaIDo2\u002BkmY=","OKkUjMjTxHumPV8kCwmKIe5EWTGXpicq5nPdBf1UjgU=","nGJ1y3WFrH56ZKC6r2VTpPKOcPajDLQnhXocDhcXmRg=","cGx77cv7nA0DdmaIS2X36NmMdiNb53a\u002BFYrSSYo5FuI=","FtlA9l0oAxySvxoKIT9fzLZajRC\u002Bb\u002B5TJipa9p57wiQ=","eFkUF78KbACBytwdzYneghMgzZWrsA02z0/ACTjf1LY=","YMmNzNRYlNUaY02cz66xLjTOWrv1loEdDwImShCe1jo=","PeS/S8mByULK0UONqH\u002ByZPgxm1uqX9tdeBSbGFZXR4s=","jKTJ7g0eCxEdDl05oVJEtlTpRXiB2qnvMi2PxRdZ9zc=","rzYf1UGwzK\u002Bt/dnYYqlMR7QuKGfkx/vU7t8YI/Qdey0=","Ww0AK17g0XIkjndgpYH6uveAS5QZvgE6TKFMPxHZgK8=","GA1u7GN8CpPjgtVF9p5meRcHD1sfLghHWP4j/Dqg1Lg=","SF9qmJCiNAHDHHnVc2cEt2z1mO82I0VggENUI8NSZqk=","qCDwNzaKuXnkV0G76t21N4pVOCPzJWmMDrEdjFbCXoc=","iMVw0eiXFIR8VogqY0SuhHCe3w\u002BRtCVecwImsxPMzTw=","HZFxsQaTWeyRUw50nxUt9gRfpEPRI3OFp6NOU5frds0=","2E2DXizaWyyz5hJGy5kQ608yc9QroQLLKm2qQtr4/kU=","GJfwFUk2fZZkZmk0TMk\u002BrB1iqzGaYrLg7MFHXI9oaQM=","XFwG7JLxXxSp7GJoSb8NffDaAy8YL0bpfxI4XZ0qH0s=","rpaQmELSXW5qZL9CsRJ8FOFKY1yeKUdSxG9xjxoX0is=","L8osGMPfA4plP8\u002BDGlloF818jpj8bQjUIRsSPqAmmLM="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"FgKIeBZ9Ztoqric5Nb7d8Ix++iErS9q0YOlj6fkVIbM=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["PmzPzDLX5kem67gWwuODY2y/hyQd8nKfjwCe/ukzc7c=","LY\u002BzkbCH4BDCRNsN4e4hLpvYL/q343HA7aPqxLAnut4=","JcRKU2Zb4DUaR9Im1Nhj21bq9CS6zqrEyUlIptRQGPk=","oWGMgCB3vBEn8UDnk8gLGSmHUQp9nje0xZwa9jbcJds=","j4zvFombPCFDsE\u002BVLdnMhkrq8OLrHidrxFTLuLU5vMQ=","KJJmmS83E4AFqRDn5z9krFmkNtj5EIaWLgIS37POGr8=","xQg7Ozplq1cFDQPPrR5U6g5tfTz0Tx8zEGJriilBzbY=","xXIxgYvMtC9sEkafVNlrcH1Pv5l0FLdyBQPAp5BPAeY=","tf9mfbbiGyrn8DwXufw5UsDjSSX2bb4/v03tlENYAyQ=","HCEmdDnOaqxSVlCudFM7kXBMB\u002BTnSOIqCZaIDo2\u002BkmY=","OKkUjMjTxHumPV8kCwmKIe5EWTGXpicq5nPdBf1UjgU=","nGJ1y3WFrH56ZKC6r2VTpPKOcPajDLQnhXocDhcXmRg=","cGx77cv7nA0DdmaIS2X36NmMdiNb53a\u002BFYrSSYo5FuI=","FtlA9l0oAxySvxoKIT9fzLZajRC\u002Bb\u002B5TJipa9p57wiQ=","eFkUF78KbACBytwdzYneghMgzZWrsA02z0/ACTjf1LY=","YMmNzNRYlNUaY02cz66xLjTOWrv1loEdDwImShCe1jo=","PeS/S8mByULK0UONqH\u002ByZPgxm1uqX9tdeBSbGFZXR4s=","jKTJ7g0eCxEdDl05oVJEtlTpRXiB2qnvMi2PxRdZ9zc=","rzYf1UGwzK\u002Bt/dnYYqlMR7QuKGfkx/vU7t8YI/Qdey0=","Ww0AK17g0XIkjndgpYH6uveAS5QZvgE6TKFMPxHZgK8=","GA1u7GN8CpPjgtVF9p5meRcHD1sfLghHWP4j/Dqg1Lg=","SF9qmJCiNAHDHHnVc2cEt2z1mO82I0VggENUI8NSZqk=","qCDwNzaKuXnkV0G76t21N4pVOCPzJWmMDrEdjFbCXoc=","iMVw0eiXFIR8VogqY0SuhHCe3w\u002BRtCVecwImsxPMzTw=","HZFxsQaTWeyRUw50nxUt9gRfpEPRI3OFp6NOU5frds0=","2E2DXizaWyyz5hJGy5kQ608yc9QroQLLKm2qQtr4/kU=","GJfwFUk2fZZkZmk0TMk\u002BrB1iqzGaYrLg7MFHXI9oaQM=","XFwG7JLxXxSp7GJoSb8NffDaAy8YL0bpfxI4XZ0qH0s=","rpaQmELSXW5qZL9CsRJ8FOFKY1yeKUdSxG9xjxoX0is=","M\u002BbooiExb8jG2y5dZyG\u002BDf0sAUlX/4mYxMHP4XWh2d4="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"TJ2LTRuPMY5dh+Ys0sp6meZCDAgoVVT755nQ9dkxJ+U=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["PmzPzDLX5kem67gWwuODY2y/hyQd8nKfjwCe/ukzc7c=","LY\u002BzkbCH4BDCRNsN4e4hLpvYL/q343HA7aPqxLAnut4=","JcRKU2Zb4DUaR9Im1Nhj21bq9CS6zqrEyUlIptRQGPk=","oWGMgCB3vBEn8UDnk8gLGSmHUQp9nje0xZwa9jbcJds=","j4zvFombPCFDsE\u002BVLdnMhkrq8OLrHidrxFTLuLU5vMQ=","KJJmmS83E4AFqRDn5z9krFmkNtj5EIaWLgIS37POGr8=","xQg7Ozplq1cFDQPPrR5U6g5tfTz0Tx8zEGJriilBzbY=","xXIxgYvMtC9sEkafVNlrcH1Pv5l0FLdyBQPAp5BPAeY=","tf9mfbbiGyrn8DwXufw5UsDjSSX2bb4/v03tlENYAyQ=","HCEmdDnOaqxSVlCudFM7kXBMB\u002BTnSOIqCZaIDo2\u002BkmY=","OKkUjMjTxHumPV8kCwmKIe5EWTGXpicq5nPdBf1UjgU=","nGJ1y3WFrH56ZKC6r2VTpPKOcPajDLQnhXocDhcXmRg=","cGx77cv7nA0DdmaIS2X36NmMdiNb53a\u002BFYrSSYo5FuI=","FtlA9l0oAxySvxoKIT9fzLZajRC\u002Bb\u002B5TJipa9p57wiQ=","eFkUF78KbACBytwdzYneghMgzZWrsA02z0/ACTjf1LY=","YMmNzNRYlNUaY02cz66xLjTOWrv1loEdDwImShCe1jo=","PeS/S8mByULK0UONqH\u002ByZPgxm1uqX9tdeBSbGFZXR4s=","jKTJ7g0eCxEdDl05oVJEtlTpRXiB2qnvMi2PxRdZ9zc=","rzYf1UGwzK\u002Bt/dnYYqlMR7QuKGfkx/vU7t8YI/Qdey0=","Ww0AK17g0XIkjndgpYH6uveAS5QZvgE6TKFMPxHZgK8=","GA1u7GN8CpPjgtVF9p5meRcHD1sfLghHWP4j/Dqg1Lg=","SF9qmJCiNAHDHHnVc2cEt2z1mO82I0VggENUI8NSZqk=","qCDwNzaKuXnkV0G76t21N4pVOCPzJWmMDrEdjFbCXoc=","iMVw0eiXFIR8VogqY0SuhHCe3w\u002BRtCVecwImsxPMzTw=","HZFxsQaTWeyRUw50nxUt9gRfpEPRI3OFp6NOU5frds0=","2E2DXizaWyyz5hJGy5kQ608yc9QroQLLKm2qQtr4/kU=","GJfwFUk2fZZkZmk0TMk\u002BrB1iqzGaYrLg7MFHXI9oaQM=","XFwG7JLxXxSp7GJoSb8NffDaAy8YL0bpfxI4XZ0qH0s=","rpaQmELSXW5qZL9CsRJ8FOFKY1yeKUdSxG9xjxoX0is=","L8osGMPfA4plP8\u002BDGlloF818jpj8bQjUIRsSPqAmmLM="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"TJ2LTRuPMY5dh+Ys0sp6meZCDAgoVVT755nQ9dkxJ+U=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["PmzPzDLX5kem67gWwuODY2y/hyQd8nKfjwCe/ukzc7c=","LY\u002BzkbCH4BDCRNsN4e4hLpvYL/q343HA7aPqxLAnut4=","JcRKU2Zb4DUaR9Im1Nhj21bq9CS6zqrEyUlIptRQGPk=","oWGMgCB3vBEn8UDnk8gLGSmHUQp9nje0xZwa9jbcJds=","j4zvFombPCFDsE\u002BVLdnMhkrq8OLrHidrxFTLuLU5vMQ=","KJJmmS83E4AFqRDn5z9krFmkNtj5EIaWLgIS37POGr8=","xQg7Ozplq1cFDQPPrR5U6g5tfTz0Tx8zEGJriilBzbY=","xXIxgYvMtC9sEkafVNlrcH1Pv5l0FLdyBQPAp5BPAeY=","tf9mfbbiGyrn8DwXufw5UsDjSSX2bb4/v03tlENYAyQ=","HCEmdDnOaqxSVlCudFM7kXBMB\u002BTnSOIqCZaIDo2\u002BkmY=","OKkUjMjTxHumPV8kCwmKIe5EWTGXpicq5nPdBf1UjgU=","nGJ1y3WFrH56ZKC6r2VTpPKOcPajDLQnhXocDhcXmRg=","cGx77cv7nA0DdmaIS2X36NmMdiNb53a\u002BFYrSSYo5FuI=","FtlA9l0oAxySvxoKIT9fzLZajRC\u002Bb\u002B5TJipa9p57wiQ=","eFkUF78KbACBytwdzYneghMgzZWrsA02z0/ACTjf1LY=","YMmNzNRYlNUaY02cz66xLjTOWrv1loEdDwImShCe1jo=","PeS/S8mByULK0UONqH\u002ByZPgxm1uqX9tdeBSbGFZXR4s=","jKTJ7g0eCxEdDl05oVJEtlTpRXiB2qnvMi2PxRdZ9zc=","rzYf1UGwzK\u002Bt/dnYYqlMR7QuKGfkx/vU7t8YI/Qdey0=","Ww0AK17g0XIkjndgpYH6uveAS5QZvgE6TKFMPxHZgK8=","GA1u7GN8CpPjgtVF9p5meRcHD1sfLghHWP4j/Dqg1Lg=","SF9qmJCiNAHDHHnVc2cEt2z1mO82I0VggENUI8NSZqk=","qCDwNzaKuXnkV0G76t21N4pVOCPzJWmMDrEdjFbCXoc=","iMVw0eiXFIR8VogqY0SuhHCe3w\u002BRtCVecwImsxPMzTw=","HZFxsQaTWeyRUw50nxUt9gRfpEPRI3OFp6NOU5frds0=","2E2DXizaWyyz5hJGy5kQ608yc9QroQLLKm2qQtr4/kU=","GJfwFUk2fZZkZmk0TMk\u002BrB1iqzGaYrLg7MFHXI9oaQM=","XFwG7JLxXxSp7GJoSb8NffDaAy8YL0bpfxI4XZ0qH0s=","rpaQmELSXW5qZL9CsRJ8FOFKY1yeKUdSxG9xjxoX0is=","M\u002BbooiExb8jG2y5dZyG\u002BDf0sAUlX/4mYxMHP4XWh2d4="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -9,14 +10,18 @@ namespace OnProfNext.Shared.Models.DTOs
|
||||
public class OrderCreateDto
|
||||
{
|
||||
public int ProjectId { get; set; }
|
||||
[Required]
|
||||
public string Auftragsnummer { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Titel { get; set; } = string.Empty;
|
||||
|
||||
public string Status { get; set; } = "Geplant";
|
||||
public decimal Planstunden { get; set; }
|
||||
public string? Projektcode { get; set; }
|
||||
public int MandantId { get; set; }
|
||||
|
||||
// User, die an dem Auftrag beteiligt sind
|
||||
public List<int> MitarbeiterIds { get; set; } = new();
|
||||
public List<int> UserIds { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,8 +11,13 @@ namespace OnProfNext.Shared.Models.DTOs
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int ProjectId { get; set; }
|
||||
[Required]
|
||||
public string Auftragsnummer { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Titel { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public string Status { get; set; } = "Geplant";
|
||||
public decimal Planstunden { get; set; }
|
||||
public decimal Iststunden { get; set; }
|
||||
@ -22,4 +28,5 @@ namespace OnProfNext.Shared.Models.DTOs
|
||||
|
||||
public List<UserDto> Mitarbeiter { get; set; } = new();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OnProfNext.Shared")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+789d44a34459f0132cb03433abffa66c9ff48824")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+910ed8b8f84357d5f19f7be7f67be8f98b22e9c9")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OnProfNext.Shared")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OnProfNext.Shared")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
cb328140769e1134df8dab5c31eb1d8f2b6b2ea4a2c253028a328aa88903a27f
|
||||
57cdff878469b70b9b012776a3c6832ee54e415f6e69489a92366cc8882adf20
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user