sharee.bike-App/SharedBusinessLogic/ViewModel/CopriWebView/ManageAccountViewModel.cs
2024-04-09 12:53:23 +02:00

56 lines
1.5 KiB
C#

using Serilog;
using ShareeBike.Repository.Request;
namespace ShareeBike.ViewModel.Login
{
/// <summary> Manages the copri web view when user is logged in. </summary>
public class ManageAccountViewModel
{
/// <summary> Holds the auth cookie of the user logged in.</summary>
private string SessionCookie { get; }
/// <summary> Holds the merchant id.</summary>
private string MerchantId { get; }
/// <summary>
/// Holds the current ui two letter ISO language name.
/// </summary>
private string UiIsoLanguageName { get; }
/// <summary> Holds the name of the host.</summary>
private string HostName { get; }
/// <param name="uiIsoLangugageName">Two letter ISO language name.</param>
public ManageAccountViewModel(
string sessionCookie,
string merchantId,
string uiIsoLangugageName,
string hostName)
{
SessionCookie = sessionCookie;
MerchantId = merchantId;
UiIsoLanguageName = uiIsoLangugageName;
HostName = hostName;
}
/// <summary> Get Uri of web view managing user account. </summary>
public string Uri
{
get
{
var sessionIdQueryElement = QueryBuilderHelper.GetSessionIdQueryElement("?", MerchantId, SessionCookie);
string GetUriText()
=> !string.IsNullOrEmpty(sessionIdQueryElement)
? $"https://{HostName}{sessionIdQueryElement}{QueryBuilderHelper.GetLanguageQueryElement("&", UiIsoLanguageName)}"
: $"https://{HostName}";
Log.ForContext<ManageAccountViewModel>().Debug($"Request to open url {GetUriText()} to get privacy info.");
return GetUriText();
}
}
}
}