using System; using TINK.Model.State; using TINK.MultilingualResources; using TINK.ViewModel.Bikes.Bike; namespace TINK.ViewModel { public class MyBikeInUseStateInfoProvider : IInUseStateInfoProvider { /// Gets reserved into display text. /// Log unexpeced states. /// Display text public string GetReservedInfo( TimeSpan? remainingTime, string stationId = null, string code = null) { if (remainingTime == null) { // Reamining time is not available. if (stationId == null) { if (string.IsNullOrEmpty(code)) { // Code is not avilable 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.StatusTextReservationExpiredLocationMaxReservationTime, stationId, StateRequestedInfo.MaximumReserveTime.Minutes); } return string.Format(AppResources.StatusTextReservationExpiredCodeLocationMaxReservationTime, code, stationId, StateRequestedInfo.MaximumReserveTime.Minutes); } if (!string.IsNullOrEmpty(stationId)) { if (!string.IsNullOrEmpty(code)) { return string.Format( AppResources.StatusTextReservationExpiredCodeLocationReservationTime, code, ViewModelHelper.GetStationName(stationId), remainingTime.Value.Minutes); } return string.Format( AppResources.StatusTextReservationExpiredLocationReservationTime, ViewModelHelper.GetStationName(stationId), 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, string stationId = null, string code = null) { if (from == null) { return AppResources.StatusTextBooked; } if (!string.IsNullOrEmpty(code)) { if(!string.IsNullOrEmpty(stationId)) { return string.Format( AppResources.StatusTextBookedCodeLocationSince, code, ViewModelHelper.GetStationName(stationId), from.Value.ToString(BikeViewModelBase.TIMEFORMAT)); } return string.Format(AppResources.StatusTextBookedCodeSince, code, from.Value.ToString(BikeViewModelBase.TIMEFORMAT)); } return string.Format(AppResources.StatusTextBookedSince, from.Value.ToString(BikeViewModelBase.TIMEFORMAT)); } } }