using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Web.Profile; using System.Web.Security; using System.Web; namespace Yavsc.Model.RolesAndMembers { /// /// Profile. /// public class Profile { /// /// Gets or sets the name. /// /// The name. [DisplayName ("Nom complet")] [StringLength (1024)] public string Name { get; set; } /// /// Gets or sets the avatar. /// /// The avatar. [DisplayName("Avatar")] public string avatar { get; set; } /// /// Gets or sets the address. /// /// The address. [DisplayName ("Adresse")] [StringLength (2047)] public string Address { get; set; } /// /// Gets or sets the state of the city and. /// /// The state of the city and. [DisplayName ("Ville")] [StringLength (255)] public string CityAndState { get; set; } /// /// Gets or sets the zip code. /// /// The zip code. [DisplayName ("Code Postal")] [StringLength (9)] public string ZipCode { get; set; } /// /// Gets or sets the country. /// /// The country. [DisplayName ("Pays")] [StringLength (99)] public string Country { get; set; } /// /// Gets or sets the web site. /// /// The web site. [DisplayName ("Site Web")] [StringLength (255)] public string WebSite { get; set; } /// /// Gets or sets a value indicating whether this blog visible. /// /// true if blog visible; otherwise, false. [DisplayName ("Blog visible")] public bool BlogVisible { get; set; } private string blogTitle; /// /// Gets or sets the blog title. /// /// The blog title. [DisplayName ("Titre du blog")] [StringLength (255)] public string BlogTitle { get { return blogTitle==null? Name+"'s blog":blogTitle; } set { blogTitle = value; } } /// /// Gets or sets the phone number. /// /// The phone. [DisplayName ("Téléphone fixe")] [StringLength (15)] public string Phone { get; set; } /// /// Gets or sets the mobile. /// /// The mobile. [DisplayName ("Portable")] [StringLength (15)] public string Mobile { get; set; } /// /// Gets or sets the email. /// /// The email. [DisplayName ("E-mail")] [StringLength (1024)] public string Email { get; set; } /// /// Gets or sets the BI. /// /// The BI. [DisplayName ("Code BIC")] [StringLength (15)] public string BIC { get; set; } /// /// Gets or sets the IBA. /// /// The IBA. [DisplayName ("Code IBAN")] [StringLength (33)] public string IBAN { get; set; } /// /// Gets or sets the bank code. /// /// The bank code. [DisplayName ("Code Banque")] [StringLength (5)] public string BankCode { get; set; } /// /// Gets or sets the wicket code. /// /// The wicket code. [DisplayName ("Code Guichet")] [StringLength (5)] public string WicketCode { get; set; } /// /// Gets or sets the account number. /// /// The account number. [DisplayName ("Numéro de compte")] [StringLength (15)] public string AccountNumber { get; set; } /// /// Gets or sets the banked key. /// /// The banked key. [DisplayName ("Clé RIB")] public int BankedKey { get; set; } /// /// Gets or sets the google calendar. /// /// The google calendar. [Display(Name="Google_calendar",ResourceType=typeof(LocalizedText))] public string GoogleCalendar { get; set; } /// /// Gets a value indicating whether this instance has bank account. /// /// true if this instance has bank account; otherwise, false. public bool HasBankAccount { get { return !( ( string.IsNullOrWhiteSpace (BankCode) || string.IsNullOrWhiteSpace (WicketCode) || string.IsNullOrWhiteSpace (AccountNumber) || BankedKey == 0 ) && ( string.IsNullOrWhiteSpace (BIC) || string.IsNullOrWhiteSpace (IBAN)) ); } } /// /// Gets a value indicating whether this instance is billable. /// Returns true when /// Name is not null and all of /// Address, CityAndState and ZipCode are not null, /// or one of Email or Phone or Mobile is not null /// /// /// true if this instance is billable; otherwise, false. public bool IsBillable { get { // true if // Name is not null and // ( // (Address and CityAndState and ZipCode) // or Email or Phone or Mobile // ) return !string.IsNullOrWhiteSpace (Name) && !( ( string.IsNullOrWhiteSpace (Address) || string.IsNullOrWhiteSpace (CityAndState) || string.IsNullOrWhiteSpace (ZipCode)) && string.IsNullOrWhiteSpace (Email) && string.IsNullOrWhiteSpace (Phone) && string.IsNullOrWhiteSpace (Mobile)); } } public Profile () : base () { } /// /// Gets or sets a value indicating whether this remember me. /// /// true if remember me; otherwise, false. public bool RememberMe { get; set; } /// /// Initializes a new instance of the class. /// /// Profile. public Profile (ProfileBase profile) { object b = profile.GetPropertyValue ("BlogVisible"); BlogVisible = (b == null) ? true : (b is DBNull)? true : (bool)b; object s = profile.GetPropertyValue ("BlogTitle"); BlogTitle = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("avatar"); avatar = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("Address"); Address = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("CityAndState"); CityAndState = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("Country"); Country = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("ZipCode"); ZipCode = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("WebSite"); WebSite = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("Name"); Name = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("Phone"); Phone = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("Mobile"); Mobile = (s is DBNull) ? null : (string)s; MembershipUser u = Membership.GetUser (profile.UserName); Email = u.Email; s = profile.GetPropertyValue ("BankCode"); BankCode = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("IBAN"); IBAN = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("BIC"); BIC = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("WicketCode"); WicketCode = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("AccountNumber"); this.AccountNumber = (s is DBNull) ? null : (string)s; s = profile.GetPropertyValue ("BankedKey"); BankedKey = (s == null) ? 0 : (s is DBNull)? 0 : (int)s; s = profile.GetPropertyValue ("gcalid"); GoogleCalendar = (s is DBNull)? null : (string) s; } } }