using Serilog;
using ShareeBike.Repository.Request;
namespace ShareeBike.ViewModel.Login
{
/// Manages the copri web view when user is logged in.
public class ManageAccountViewModel
{
/// Holds the auth cookie of the user logged in.
private string SessionCookie { get; }
/// Holds the merchant id.
private string MerchantId { get; }
///
/// Holds the current ui two letter ISO language name.
///
private string UiIsoLanguageName { get; }
/// Holds the name of the host.
private string HostName { get; }
/// Two letter ISO language name.
public ManageAccountViewModel(
string sessionCookie,
string merchantId,
string uiIsoLangugageName,
string hostName)
{
SessionCookie = sessionCookie;
MerchantId = merchantId;
UiIsoLanguageName = uiIsoLangugageName;
HostName = hostName;
}
/// Get Uri of web view managing user account.
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().Debug($"Request to open url {GetUriText()} to get privacy info.");
return GetUriText();
}
}
}
}