91 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Domain.Base;
namespace gehGassiApp.Domain.Walkers
{
/// <summary>
/// Repräsentiert eine Zeiteinstellung für einen Walker.
/// Verfügbarkeit je Tag uns Start-Endzeit
/// Ist nicht für Sittung geeigent
/// </summary>
public class WalkingTime : SyncEntity
{
/// <summary>
/// Id des DogWalkers
/// </summary>
[Required]
[MaxLength(128)]
public string DogWalkerId { get; set; }
/// <summary>
/// Tag in der Woche (So - Mo)
/// </summary>
[Required]
public DayOfWeek Day { get; set; }
/// <summary>
/// Startzeit
/// </summary>
[Required]
public TimeSpan Start { get; set; }
/// <summary>
/// Endzeit
/// </summary>
[Required]
public TimeSpan End { get; set; }
/// <summary>
/// Ist die Einstellung aktiv?
/// </summary>
[Required]
public bool Enabled { get; set; }
}
/// <summary>
/// Hilfsklasse für das Darstellen der verfügbaren Zeiten in der Walker-Ansicht
/// </summary>
public class WalkingTimeGroup
{
/// <summary>
/// Tag in der Woche (So - Mo)
/// </summary>
public DayOfWeek Day { get; set; }
/// <summary>
/// Gibt an ob es Zeiten für den Tag gibt
/// </summary>
public bool HasTimes
{
get
{
return WalkingTimes.Count(c => c.Enabled) > 0;
}
}
/// <summary>
/// Liste der Zeiten für den Tag
/// </summary>
public List<WalkingTime> WalkingTimes { get; set; }
/// <summary>
/// Hilfsvariable ob noch ein Eintrag folgt
/// </summary>
public bool HasNext { get; set; }
/// <summary>
/// Erstellt eine Instanz
/// </summary>
public WalkingTimeGroup()
{
HasNext = true;
WalkingTimes = new List<WalkingTime>();
}
}
}