sharee.bike-App/TINKLib/ViewModel/BikesAtStation/BikeAtStationInUseStateInfoProvider.cs
Anja Müller-Meißner 0468955d49 Version 3.0.338
2022-09-08 09:55:14 +02:00

59 lines
1.8 KiB
C#

using System;
using TINK.Model.State;
using TINK.MultilingualResources;
using TINK.ViewModel.Bikes.Bike;
namespace TINK.ViewModel
{
public class BikeAtStationInUseStateInfoProvider : IInUseStateInfoProvider
{
/// <summary> Gets reserved into display text. </summary>
/// <todo>Log unexpeced states.</todo>
/// <returns>Display text</returns>
public string GetReservedInfo(
TimeSpan? remainingTime,
string 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);
}
/// <summary> Gets booked into display text. </summary>
/// <todo>Log unexpeced states.</todo>
/// <returns>Display text</returns>
public string GetBookedInfo(
DateTime? from,
string 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));
}
}
}