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