using System; using TINK.Model.State; using TINK.MultilingualResources; using TINK.ViewModel.Bikes.Bike; namespace TINK.ViewModel { public class BikeAtStationInUseStateInfoProvider : IInUseStateInfoProvider { /// Gets reserved into display text. /// Log unexpeced states. /// Display text public string GetReservedInfo( TimeSpan? remainingTime, int? station = null, string code = null) { if (remainingTime == null) { // Remaining time not available. if (string.IsNullOrEmpty(code)) { // Reservation code not available return string.Format(AppResources.StatusTextReservationExpiredMaximumReservationTime, StateRequestedInfo.MaximumReserveTime.Minutes); } return string.Format(AppResources.StatusTextReservationExpiredCodeMaxReservationTime, code, StateRequestedInfo.MaximumReserveTime.Minutes); } if (!string.IsNullOrEmpty(code)) { return string.Format(AppResources.StatusTextReservationExpiredCodeRemaining, code, remainingTime.Value.Minutes); } return string.Format(AppResources.StatusTextReservationExpiredRemaining, remainingTime.Value.Minutes); } /// Gets booked into display text. /// Log unexpeced states. /// Display text public string GetBookedInfo( DateTime? from, int? station = null, string code = null) { if (from == null) { return AppResources.StatusTextBooked; } if (!string.IsNullOrEmpty(code)) { return string.Format(AppResources.StatusTextBookedCodeSince, code, from.Value.ToString(BikeViewModelBase.TIMEFORMAT)); } return string.Format(AppResources.StatusTextBookedSince, from.Value.ToString(BikeViewModelBase.TIMEFORMAT)); } } }