Files
BeWoPlaner/Shared/DataContracts/ClientPartials/VertretungsItemDC.cs
Christian 9fd84c7f62 cb SBD
2020-04-15 18:22:10 +02:00

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;
}
}
}