sharee.bike-App/SharedBusinessLogic/ViewModel/BikesAtStation/BikeAtStationInUseStateInfoProvider.cs

59 lines
1.6 KiB
C#
Raw Normal View History

2023-06-06 12:00:24 +02:00
using System;
2024-04-09 12:53:23 +02:00
using ShareeBike.MultilingualResources;
using ShareeBike.ViewModel.Bikes.Bike;
2021-05-13 20:03:07 +02:00
2024-04-09 12:53:23 +02:00
namespace ShareeBike.ViewModel
2021-05-13 20:03:07 +02:00
{
2022-09-06 16:08:19 +02:00
public class BikeAtStationInUseStateInfoProvider : IInUseStateInfoProvider
{
/// <summary> Gets reserved into display text. </summary>
2023-06-06 12:00:24 +02:00
/// <todo>Log unexpected states.</todo>
2022-09-06 16:08:19 +02:00
/// <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
2023-06-06 12:00:24 +02:00
return AppResources.StatusTextReservationExpiredMaximumReservationTime;
2022-09-06 16:08:19 +02:00
}
2021-05-13 20:03:07 +02:00
2023-06-06 12:00:24 +02:00
return string.Format(AppResources.StatusTextReservationExpiredCodeMaxReservationTime, code);
2022-09-06 16:08:19 +02:00
}
2021-05-13 20:03:07 +02:00
2022-09-06 16:08:19 +02:00
if (!string.IsNullOrEmpty(code))
{
return string.Format(AppResources.StatusTextReservationExpiredCodeRemaining, code, remainingTime.Value.Minutes);
}
2021-05-13 20:03:07 +02:00
2022-09-06 16:08:19 +02:00
return string.Format(AppResources.StatusTextReservationExpiredRemaining, remainingTime.Value.Minutes);
}
2021-05-13 20:03:07 +02:00
2022-09-06 16:08:19 +02:00
/// <summary> Gets booked into display text. </summary>
2023-06-06 12:00:24 +02:00
/// <todo>Log unexpected states.</todo>
2022-09-06 16:08:19 +02:00
/// <returns>Display text</returns>
public string GetBookedInfo(
DateTime? from,
string station = null,
string code = null)
{
if (from == null)
{
return AppResources.StatusTextBooked;
}
2021-05-13 20:03:07 +02:00
2022-09-06 16:08:19 +02:00
if (!string.IsNullOrEmpty(code))
{
return string.Format(AppResources.StatusTextBookedCodeSince, code, from.Value.ToString(BikeViewModelBase.TIMEFORMAT));
}
2021-05-13 20:03:07 +02:00
2022-09-06 16:08:19 +02:00
return string.Format(AppResources.StatusTextBookedSince, from.Value.ToString(BikeViewModelBase.TIMEFORMAT));
}
}
2021-05-13 20:03:07 +02:00
}