mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-23 15:46:29 +01:00
75 lines
2.8 KiB
C#
75 lines
2.8 KiB
C#
using System;
|
|
using TINK.Model.Bikes.Bike;
|
|
using TINK.MultilingualResources;
|
|
|
|
namespace TINK.ViewModel.Bikes.Bike
|
|
{
|
|
/// <summary>
|
|
/// View model for displaying tariff info.
|
|
/// </summary>
|
|
public class TariffDescriptionViewModel
|
|
{
|
|
private TariffDescription Tariff { get; }
|
|
|
|
public TariffDescriptionViewModel(TariffDescription tariff)
|
|
{
|
|
Tariff = tariff;
|
|
}
|
|
|
|
public string Header
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(FeeEuroPerHour)
|
|
&& string.IsNullOrEmpty(AboEuroPerMonth)
|
|
&& string.IsNullOrEmpty(FreeTimePerSession)
|
|
&& string.IsNullOrEmpty(MaxFeeEuroPerDay))
|
|
// No tariff description details available.
|
|
return string.Empty;
|
|
|
|
#if USCSHARP9
|
|
return string.Format(AppResources.MessageBikesManagementTariffDescriptionTariffHeader, Tariff?.Name ?? "-", Tariff?.Number != null ? Tariff.Number : "-");
|
|
#else
|
|
return string.Format(AppResources.MessageBikesManagementTariffDescriptionTariffHeader, Tariff?.Name ?? "-", Tariff?.Number != null ? Tariff.Number.ToString() : "-");
|
|
#endif
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costs per hour in euro.
|
|
/// </summary>
|
|
public string FeeEuroPerHour
|
|
=> !double.IsNaN(Tariff.FeeEuroPerHour)
|
|
? string.Format("{0} {1}", Tariff.FeeEuroPerHour.ToString("0.00"), AppResources.MessageBikesManagementTariffDescriptionEuroPerHour)
|
|
: string.Empty;
|
|
|
|
/// <summary>
|
|
/// Costs of the abo per month.
|
|
/// </summary>
|
|
public string AboEuroPerMonth
|
|
=> !double.IsNaN(Tariff.AboEuroPerMonth)
|
|
? string.Format("{0} {1}", Tariff.AboEuroPerMonth.ToString("0.00"), AppResources.MessageBikesManagementTariffDescriptionEuroPerHour)
|
|
: string.Empty;
|
|
|
|
/// <summary>
|
|
/// Free use time.
|
|
/// </summary>
|
|
public string FreeTimePerSession
|
|
=> Tariff.FreeTimePerSession != TimeSpan.Zero
|
|
? string.Format("{0} {1}", Tariff.FreeTimePerSession.TotalHours, AppResources.MessageBikesManagementTariffDescriptionHour)
|
|
: string.Empty;
|
|
|
|
/// <summary>
|
|
/// Max costs per day in euro.
|
|
/// </summary>
|
|
public string MaxFeeEuroPerDay
|
|
=> !double.IsNaN(Tariff.FeeEuroPerHour)
|
|
? string.Format("{0} {1}", Tariff.MaxFeeEuroPerDay.ToString("0.00"), AppResources.MessageBikesManagementMaxFeeEuroPerDay)
|
|
: string.Empty;
|
|
|
|
/// <summary> Info about operator agb as HTML (i.g. text and hyperlink). </summary>
|
|
public string OperatorAgb => !string.IsNullOrEmpty(Tariff?.OperatorAgb)
|
|
? Tariff.OperatorAgb
|
|
: string.Empty;
|
|
}
|
|
}
|