mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-25 00:26:27 +01:00
49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace TINK.Model.Stations.StationNS.Operator
|
|
{
|
|
public class BikeGroupCol : List<BikeGroupCol.Entry> , IBikeGroupCol
|
|
{
|
|
/// <summary>
|
|
/// Holds a group of bikes at a station.
|
|
/// </summary>
|
|
public class Entry
|
|
{
|
|
/// <summary>
|
|
/// Bike group entry.
|
|
/// </summary>
|
|
/// <param name="name">Name of the group, either "Citybikes" or "Cargobikes".</param>
|
|
/// <param name="availableCount"></param>
|
|
/// <param name="group"></param>
|
|
public Entry(string name, int? availableCount = null, string group = null)
|
|
{
|
|
Name = name;
|
|
AvailableCount = availableCount ?? 0;
|
|
Group = group ?? string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Name of the group, either "Citybikes" or "Cargobikes".
|
|
/// </summary>
|
|
public string Name { get; }
|
|
|
|
/// <summary> Holds the count of bikes available of given type at station. </summary>
|
|
public int AvailableCount { get; }
|
|
|
|
/// <summary>
|
|
/// Holds the group of the bikes. Konrad separates cargo and city bikes by group.
|
|
/// </summary>
|
|
public string Group { get; }
|
|
}
|
|
|
|
public BikeGroupCol() : base() { }
|
|
|
|
public BikeGroupCol(IEnumerable<Entry> source) : base(source) { }
|
|
|
|
/// <summary> Holds the count of bikes available of any type at station. </summary>
|
|
public int AvailableCount => this.Select(x => x.AvailableCount).Sum();
|
|
|
|
}
|
|
}
|