mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-11-12 13:36:26 +01:00
54 lines
1.7 KiB
C#
54 lines
1.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using BikeInfo = TINK.Model.Bikes.BikeInfoNS.BC.BikeInfo;
|
|
|
|
namespace TINK.Model.Bikes
|
|
{
|
|
public class BikeCollection : IBikeDictionary<BikeInfo>
|
|
{
|
|
/// <summary> Holds the bike dictionary object.</summary>
|
|
private Dictionary<string, BikeInfo> BikeDictionary { get; }
|
|
|
|
/// <summary>Constructs an empty bike info dictionary object.</summary>
|
|
public BikeCollection()
|
|
{
|
|
BikeDictionary = new Dictionary<string, BikeInfo>();
|
|
}
|
|
|
|
/// <summary> Constructs a bike collection object.</summary>
|
|
/// <param name="bikeDictionary"></param>
|
|
public BikeCollection(Dictionary<string, BikeInfo> bikeDictionary)
|
|
{
|
|
BikeDictionary = bikeDictionary ??
|
|
throw new ArgumentNullException(nameof(bikeDictionary), "Can not construct BikeCollection object.");
|
|
}
|
|
|
|
/// <summary> Gets a bike by its id.</summary>
|
|
/// <param name="id">Id of the bike to get.</param>
|
|
/// <returns></returns>
|
|
public BikeInfo GetById(string id)
|
|
{
|
|
return BikeDictionary.FirstOrDefault(x => x.Key == id).Value;
|
|
}
|
|
|
|
/// <summary> Gets the count of bikes. </summary>
|
|
public int Count => BikeDictionary.Count;
|
|
|
|
/// <summary> Gets if a bike with given id exists.</summary>
|
|
/// <param name="id">Id of bike.</param>
|
|
/// <returns>True if bike is contained, false otherwise.</returns>
|
|
public bool ContainsKey(string id) => BikeDictionary.Keys.Contains(id);
|
|
|
|
/// <summary> Gets the enumerator. </summary>
|
|
/// <returns>Enumerator object.</returns>
|
|
public IEnumerator<BikeInfo> GetEnumerator() => BikeDictionary.Values.GetEnumerator();
|
|
|
|
/// <summary> Gets the enumerator. </summary>
|
|
/// <returns>Enumerator object.</returns>
|
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
|
}
|
|
}
|