Bitwarden-app-android-iphon.../src/Core/Models/View/IdentityView.cs

174 lines
6.6 KiB
C#

using System.Collections.Generic;
using Bit.Core.Enums;
using Bit.Core.Models.Domain;
namespace Bit.Core.Models.View
{
public class IdentityView : ItemView
{
private string _firstName;
private string _lastName;
private string _subTitle;
public IdentityView() { }
public IdentityView(Identity i) { }
public string Title { get; set; }
public string FirstName
{
get => _firstName;
set
{
_firstName = value;
_subTitle = null;
}
}
public string MiddleName { get; set; }
public string LastName
{
get => _lastName;
set
{
_lastName = value;
_subTitle = null;
}
}
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public string Company { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string SSN { get; set; }
public string Username { get; set; }
public string PassportNumber { get; set; }
public string LicenseNumber { get; set; }
public override string SubTitle
{
get
{
if (_subTitle == null && (FirstName != null || LastName != null))
{
_subTitle = string.Empty;
if (FirstName != null)
{
_subTitle = FirstName;
}
if (LastName != null)
{
if (_subTitle != string.Empty)
{
_subTitle += " ";
}
_subTitle += LastName;
}
}
return _subTitle;
}
}
public string FullName
{
get
{
if (!string.IsNullOrWhiteSpace(Title) || !string.IsNullOrWhiteSpace(FirstName) ||
!string.IsNullOrWhiteSpace(MiddleName) || !string.IsNullOrWhiteSpace(LastName))
{
var name = string.Empty;
if (!string.IsNullOrWhiteSpace(Title))
{
name = string.Concat(name, Title, " ");
}
if (!string.IsNullOrWhiteSpace(FirstName))
{
name = string.Concat(name, FirstName, " ");
}
if (!string.IsNullOrWhiteSpace(MiddleName))
{
name = string.Concat(name, MiddleName, " ");
}
if (!string.IsNullOrWhiteSpace(LastName))
{
name = string.Concat(name, LastName);
}
return name.Trim();
}
return null;
}
}
public string FullAddress
{
get
{
var address = Address1;
if (!string.IsNullOrWhiteSpace(Address2))
{
if (!string.IsNullOrWhiteSpace(address))
{
address += ", ";
}
address += Address2;
}
if (!string.IsNullOrWhiteSpace(Address3))
{
if (!string.IsNullOrWhiteSpace(address))
{
address += ", ";
}
address += Address3;
}
return address;
}
}
public string FullAddressPart2
{
get
{
if (string.IsNullOrWhiteSpace(City) && string.IsNullOrWhiteSpace(State) &&
string.IsNullOrWhiteSpace(PostalCode))
{
return null;
}
var city = string.IsNullOrWhiteSpace(City) ? "-" : City;
var state = string.IsNullOrWhiteSpace(State) ? "-" : State;
var postalCode = string.IsNullOrWhiteSpace(PostalCode) ? "-" : PostalCode;
return string.Format("{0}, {1}, {2}", city, state, postalCode);
}
}
public override List<KeyValuePair<string, LinkedIdType>> LinkedFieldOptions
{
get => new List<KeyValuePair<string, LinkedIdType>>()
{
new KeyValuePair<string, LinkedIdType>("Title", LinkedIdType.Identity_Title),
new KeyValuePair<string, LinkedIdType>("MiddleName", LinkedIdType.Identity_MiddleName),
new KeyValuePair<string, LinkedIdType>("Address1", LinkedIdType.Identity_Address1),
new KeyValuePair<string, LinkedIdType>("Address2", LinkedIdType.Identity_Address2),
new KeyValuePair<string, LinkedIdType>("Address3", LinkedIdType.Identity_Address3),
new KeyValuePair<string, LinkedIdType>("CityTown", LinkedIdType.Identity_City),
new KeyValuePair<string, LinkedIdType>("StateProvince", LinkedIdType.Identity_State),
new KeyValuePair<string, LinkedIdType>("ZipPostalCode", LinkedIdType.Identity_PostalCode),
new KeyValuePair<string, LinkedIdType>("Country", LinkedIdType.Identity_Country),
new KeyValuePair<string, LinkedIdType>("Company", LinkedIdType.Identity_Company),
new KeyValuePair<string, LinkedIdType>("Email", LinkedIdType.Identity_Email),
new KeyValuePair<string, LinkedIdType>("Phone", LinkedIdType.Identity_Phone),
new KeyValuePair<string, LinkedIdType>("SSN", LinkedIdType.Identity_Ssn),
new KeyValuePair<string, LinkedIdType>("Username", LinkedIdType.Identity_Username),
new KeyValuePair<string, LinkedIdType>("PassportNumber", LinkedIdType.Identity_PassportNumber),
new KeyValuePair<string, LinkedIdType>("LicenseNumber", LinkedIdType.Identity_LicenseNumber),
new KeyValuePair<string, LinkedIdType>("FirstName", LinkedIdType.Identity_FirstName),
new KeyValuePair<string, LinkedIdType>("LastName", LinkedIdType.Identity_LastName),
new KeyValuePair<string, LinkedIdType>("FullName", LinkedIdType.Identity_FullName),
};
}
}
}