107 lines
3.6 KiB
C#
107 lines
3.6 KiB
C#
using System.Linq;
|
|
using BS.Shared.Extensions;
|
|
|
|
namespace BS.Shared.DataContracts
|
|
{
|
|
public partial class VertretungsItemDC
|
|
{
|
|
public override bool Equals(object obj)
|
|
{
|
|
if(obj is VertretungsItemDC item2)
|
|
{
|
|
var areCustomersEqual = Customer?.Equals(item2.Customer) ?? false; // Klientenabwesenheit
|
|
var areEmployeesEqual = Employee?.Equals(item2.Employee) ?? false; // Mitarbeiterabwesenheit
|
|
|
|
var areTheSameSubstitution = Vertretung?.Equals(item2.Vertretung) ?? false;
|
|
var haveTheSameAbsenceTimes = Absencetime?.Equals(item2.Absencetime) ?? false;
|
|
|
|
return (areCustomersEqual || areEmployeesEqual) && areTheSameSubstitution && haveTheSameAbsenceTimes && Equals(Id, item2.Id);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public string AssistanceTimeString
|
|
{
|
|
get
|
|
{
|
|
var assistanceTimes = string.Empty;
|
|
if (Arbeitszeiten != null)
|
|
{
|
|
for (var i = 0; i < Arbeitszeiten.Count; i++)
|
|
{
|
|
var at = Arbeitszeiten[i];
|
|
|
|
assistanceTimes += $"\t\t{at.UhrzeitVon} - {at.UhrzeitBis}";
|
|
|
|
if (i < Arbeitszeiten.Count - 1)
|
|
{
|
|
assistanceTimes += ",\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
return assistanceTimes;
|
|
}
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
var absenceTime = "";
|
|
|
|
if (Absencetime.Start.HasValue)
|
|
{
|
|
var start = Absencetime.Start.Value;
|
|
var startStr = string.Empty;
|
|
|
|
if (Absencetime.End == null)
|
|
{
|
|
if (start.Hour == 0 && start.Minute == 0)
|
|
{
|
|
startStr = start.ToShortDateString();
|
|
}
|
|
else
|
|
{
|
|
startStr = start.ToLongDateString();
|
|
}
|
|
|
|
absenceTime = $"Ab dem {startStr}";
|
|
}
|
|
else
|
|
{
|
|
var end = Absencetime.End.Value;
|
|
|
|
if (end.Date.Equals(start.Date))
|
|
{
|
|
if (start.Hour == 0 && start.Minute == 0 && end.Hour == 0 && end.Minute == 0)
|
|
{
|
|
absenceTime = $"{start:dd.MM.yyyy}";
|
|
}
|
|
else
|
|
{
|
|
absenceTime = $"{start:dd.MM.yyyy HH:mm} - {end:HH:mm}";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (end.Hour == 0 && end.Minute == 0)
|
|
{
|
|
absenceTime = $"{start:dd.MM.yyyy HH:mm} - {end:dd.MM.yyyy}";
|
|
}
|
|
else
|
|
{
|
|
absenceTime = $"{start:dd.MM.yyyy HH:mm} - {end:dd.MM.yyyy HH:mm}";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var info =
|
|
$"{Id} {Datum:dd.MM.yyyy}:\n\t{(VertretungsStatus == VertretungsStatus.KlientKrank ? "Klientenabwesenheit" : "Mitarbeiterabwesenheit")} " +
|
|
$"\n\tEmployee: {Employee}\n\tCustomer: {Customer} \n\t{absenceTime} \n\t Betreuungszeiten:\n {AssistanceTimeString}\n\n";
|
|
|
|
return info;
|
|
}
|
|
}
|
|
}
|