Files
point_of_sale_v2/PointOfSale/Pos.Service/EmployeeService.cs
2026-08-03 11:01:37 +02:00

68 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using Database.Models;
using Database.Repository;
namespace Pos.Service
{
public class EmployeeService
{
private readonly EmployeeRepository _employeeRepository =
new EmployeeRepository();
public List<EmployeeEntity> GetEmployees()
{
return _employeeRepository.GetAll();
}
public void AddEmployee(string name)
{
_employeeRepository.Add(ValidateName(name));
CacheService.Invalidate();
}
public void RenameEmployee(int employeeId, string name)
{
ValidateId(employeeId);
_employeeRepository.Edit(employeeId, ValidateName(name));
CacheService.Invalidate();
}
public void ArchiveEmployee(int employeeId)
{
ValidateId(employeeId);
_employeeRepository.Delete(employeeId);
CacheService.Invalidate();
}
private static string ValidateName(string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentException(
"Medarbejderens navn skal være udfyldt.",
nameof(name));
return name.Trim();
}
private static void ValidateId(int employeeId)
{
if (employeeId <= 0)
throw new ArgumentOutOfRangeException(nameof(employeeId));
}
public async Task<List<EmployeeEntity>> GetEmployeesAsync()
{
return await _employeeRepository.GetAllAsync();
}
public async Task<EmployeeEntity> AddEmployeeAsync(string name)
{
EmployeeEntity employee =
await _employeeRepository.AddAsync(ValidateName(name));
CacheService.Invalidate();
return employee;
}
}
}