Files
android/src/iOS.Extension/Models/LoginViewModel.cs
2017-01-03 00:25:17 -05:00

83 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Bit.App.Models;
namespace Bit.iOS.Extension.Models
{
public class LoginViewModel
{
private string _uri;
private DomainName _domain = null;
private bool _domainParsed = false;
public LoginViewModel(Login login)
{
Id = login.Id;
Name = login.Name?.Decrypt();
Username = login.Username?.Decrypt();
Password = login.Password?.Decrypt();
Uri = login.Uri?.Decrypt();
}
public string Id { get; set; }
public string Name { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Uri
{
get { return _uri; }
set
{
_domainParsed = false;
_uri = value;
}
}
public string HostName
{
get
{
if(string.IsNullOrWhiteSpace(Uri))
{
return null;
}
try
{
return new Uri(Uri)?.Host;
}
catch
{
return null;
};
}
}
public DomainName Domain
{
get
{
if(string.IsNullOrWhiteSpace(Uri))
{
return null;
}
if(_domainParsed)
{
return _domain;
}
_domainParsed = true;
DomainName domain;
if(DomainName.TryParse(HostName, out domain))
{
_domain = domain;
}
return _domain;
}
}
}
}