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