Finished Settings page
This commit is contained in:
6
WorkTime.Models/Repositories/ISettingsRepository.cs
Normal file
6
WorkTime.Models/Repositories/ISettingsRepository.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace WorkTime.Models.Repositories;
|
||||
|
||||
public interface ISettingsRepository {
|
||||
Task<Settings> LoadSettings();
|
||||
Task SaveSettings(Settings settings);
|
||||
}
|
||||
9
WorkTime.Models/Repositories/ITimeEntryRepository.cs
Normal file
9
WorkTime.Models/Repositories/ITimeEntryRepository.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace WorkTime.Models.Repositories;
|
||||
|
||||
public interface ITimeEntryRepository {
|
||||
Task<IEnumerable<TimeEntry>> GetTimeEntries();
|
||||
Task<IEnumerable<TimeEntry>> GetTimeEntries(DateOnly date);
|
||||
|
||||
Task AddTimeEntry(TimeEntry entry);
|
||||
Task DeleteTimeEntry(Guid id);
|
||||
}
|
||||
13
WorkTime.Models/Settings.cs
Normal file
13
WorkTime.Models/Settings.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace WorkTime.Models;
|
||||
|
||||
public sealed class Settings {
|
||||
public TimeSpan WorkTime { get; set; } = TimeSpan.FromHours(7);
|
||||
|
||||
public TimeSpan BreakAfter0 { get; set; } = TimeSpan.Zero;
|
||||
public TimeSpan BreakAfter6 { get; set; } = TimeSpan.FromMinutes(30);
|
||||
public TimeSpan BreakAfter9 { get; set; } = TimeSpan.FromMinutes(45);
|
||||
public TimeSpan DontTrackBreakAfter { get; set; } = TimeSpan.FromHours(14);
|
||||
|
||||
public TimeSpan IdealOvertime { get; set; } = TimeSpan.FromMinutes(30);
|
||||
public TimeSpan MaxOvertime { get; set; } = TimeSpan.FromMinutes(60);
|
||||
}
|
||||
21
WorkTime.Models/TimeEntry.cs
Normal file
21
WorkTime.Models/TimeEntry.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace WorkTime.Models;
|
||||
|
||||
public sealed class TimeEntry {
|
||||
[Key]
|
||||
public Guid Id { get; init; } = Guid.CreateVersion7();
|
||||
|
||||
public required EntryType Type { get; init; }
|
||||
|
||||
public required DateTime Timestamp { get; set; }
|
||||
}
|
||||
|
||||
public enum EntryType {
|
||||
Login,
|
||||
LoginTrip,
|
||||
LoginHome,
|
||||
Logout,
|
||||
LogoutTrip,
|
||||
LogoutHome
|
||||
}
|
||||
9
WorkTime.Models/WorkTime.Models.csproj
Normal file
9
WorkTime.Models/WorkTime.Models.csproj
Normal file
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user