Started working on backend

This commit is contained in:
2025-02-28 16:56:48 +01:00
parent 1e5b17c4ef
commit 55be2f1e88
9 changed files with 101 additions and 1 deletions

View File

@@ -4,6 +4,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{25C5A6
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkTime.Api", "src\WorkTime.Api\WorkTime.Api.csproj", "{63F71A39-70D8-4F22-8006-C345E0CD4A5C}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkTime.Api", "src\WorkTime.Api\WorkTime.Api.csproj", "{63F71A39-70D8-4F22-8006-C345E0CD4A5C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkTime.Host", "src\WorkTime.Host\WorkTime.Host.csproj", "{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -11,11 +13,16 @@ Global
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution GlobalSection(NestedProjects) = preSolution
{63F71A39-70D8-4F22-8006-C345E0CD4A5C} = {25C5A6B2-A1F9-4244-9538-18E3FE76D382} {63F71A39-70D8-4F22-8006-C345E0CD4A5C} = {25C5A6B2-A1F9-4244-9538-18E3FE76D382}
{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68} = {25C5A6B2-A1F9-4244-9538-18E3FE76D382}
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Debug|Any CPU.Build.0 = Debug|Any CPU {63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Release|Any CPU.ActiveCfg = Release|Any CPU {63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Release|Any CPU.Build.0 = Release|Any CPU {63F71A39-70D8-4F22-8006-C345E0CD4A5C}.Release|Any CPU.Build.0 = Release|Any CPU
{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F5D4D47-1484-44EA-A5DD-D00AAD2F2F68}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@@ -0,0 +1,15 @@
namespace WorkTime.Api.Models;
public class TimeEntry {
public Guid Owner { get; set; }
public DateTime RegisteredAt { get; set; }
public EntryType Type { get; set; }
public bool IsMoba { get; set; }
}
public enum EntryType {
Login = 0,
Logout = 1,
StartDrive = 2,
EndDrive = 3
}

View File

@@ -0,0 +1,3 @@
var builder = DistributedApplication.CreateBuilder(args);
builder.Build().Run();

View File

@@ -0,0 +1,29 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:17121;http://localhost:15199",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21125",
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22099"
}
},
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:15199",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19218",
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20104"
}
}
}
}

View File

@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0"/>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsAspireHost>true</IsAspireHost>
<UserSecretsId>ba72af6f-0952-417d-bef6-ab77ed6fa624</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.0.0"/>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"Aspire.Hosting.Dcp": "Warning"
}
}
}

View File

@@ -154,10 +154,17 @@ export class TimePage implements ViewDidEnter {
} }
private updateCurrentAction(): void { private updateCurrentAction(): void {
console.log(this.data);
if (this.data.length == 0) { if (this.data.length == 0) {
this.currentAction = 'login'; this.currentAction = 'login';
}else { }else {
const lastEntry = this.data[this.data.length - 1] const lastEntry = this.data[this.data.length - 1];
if (!this.timeService.isToday(lastEntry.registeredAt)) {
this.currentAction = 'login';
this.currentlyMoba = false;
return;
}
switch (lastEntry.type) { switch (lastEntry.type) {
case "start-drive": case "start-drive":

View File

@@ -4,4 +4,8 @@ export interface TimeEntry {
isMoba: boolean; isMoba: boolean;
} }
export interface BackendTimeEntry extends TimeEntry {
owner: string;
}
export type TimeType = 'login' | 'logout' | 'start-drive' | 'end-drive'; export type TimeType = 'login' | 'logout' | 'start-drive' | 'end-drive';