using System; using System.Collections.Generic; using System.ComponentModel; using TINK.Model.Bike; using TINK.Model.State; namespace TINK.Model.Bikes.Bike.BC { public interface IBikeInfoMutable { /// <summary> /// Holds the unique id of the bike; /// </summary> int Id { get; } /// <summary> True if bike is a demo bike. </summary> bool IsDemo { get; } /// <summary> Returns the group (TINK, Konrad, ...). </summary> IEnumerable<string> Group { get; } /// <summary> /// Holds the count of wheels. /// </summary> WheelType? WheelType { get; } /// <summary> /// Holds the type of bike. /// </summary> TypeOfBike? TypeOfBike { get; } /// <summary> Holds the description of the bike. </summary> string Description { get; } /// <summary> /// Station a which bike is located, null otherwise. /// </summary> int? CurrentStation { get; } /// <summary> /// Holds the rent state of the bike. /// </summary> IStateInfoMutable State { get; } /// <summary> /// Uri of the operator or null, in case of single operator setup. /// </summary> Uri OperatorUri { get; } event PropertyChangedEventHandler PropertyChanged; } public enum NotifyPropertyChangedLevel { /// <summary> Notify about all property changes.</summary> All, /// <summary> Notify about no property changes.</summary> None } }