121 lines
4.3 KiB
C#
121 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using EnVisage.Code;
|
|
using System.Web.Mvc;
|
|
|
|
namespace EnVisage.Models
|
|
{
|
|
[Bind(Include = "Id,UserName,FirstName,LastName,Email,Phone,PreferredResourceAllocation,Discriminator")]
|
|
public class UserModel :IBaseModel<AspNetUser>
|
|
{
|
|
public UserModel()
|
|
{
|
|
|
|
this.PasswordResetRequests = new HashSet<PasswordResetRequest>();
|
|
this.User2Team = new HashSet<User2Team>();
|
|
this.AspNetRoles = new HashSet<AspNetRole>();
|
|
}
|
|
|
|
public UserModel(AspNetUser dbObj)
|
|
{
|
|
if (dbObj == null)
|
|
{
|
|
Id = Guid.Empty;
|
|
|
|
return;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(dbObj.Id))
|
|
{
|
|
Id = Guid.Parse(dbObj.Id);
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
Id = Guid.Empty;
|
|
}
|
|
UserName = dbObj.UserName;
|
|
FirstName = dbObj.FirstName;
|
|
LastName = dbObj.LastName;
|
|
Email = dbObj.Email;
|
|
PasswordHash = dbObj.PasswordHash;
|
|
Phone = dbObj.Phone;
|
|
PreferredResourceAllocation = dbObj.PreferredResourceAllocation;
|
|
AspNetRoles = dbObj.AspNetRoles;
|
|
Discriminator = dbObj.Discriminator;
|
|
PasswordResetRequests = dbObj.PasswordResetRequests;
|
|
PreferredTotalsDisplaying = dbObj.PreferredTotalsDisplaying;
|
|
SecurityStamp = dbObj.SecurityStamp;
|
|
Type = dbObj.Type;
|
|
User2Team = dbObj.User2Team;
|
|
|
|
}
|
|
[Display(Name = "User Name")]
|
|
[Required]
|
|
[Remote("IsUnique", "User", HttpMethod = "POST", AdditionalFields = "Id", ErrorMessage = "The user name entered is already in use please try a different user name")]
|
|
[RegularExpression(@"^[0-9a-zA-Z]+$",
|
|
ErrorMessage = "Please use alphanumeric characters only.")]
|
|
public string UserName { get; set; }
|
|
public Guid Id { get; set; }
|
|
public string PasswordHash { get; set; }
|
|
public string SecurityStamp { get; set; }
|
|
public string Discriminator { get; set; }
|
|
[Required]
|
|
[Display(Name = "Email Address")]
|
|
[EmailAddress(ErrorMessage = "Invalid Email Address")]
|
|
public string Email { get; set; }
|
|
[Display(Name = "Phone Number")]
|
|
public string Phone { get; set; }
|
|
public short Type { get; set; }
|
|
public bool PreferredResourceAllocation { get; set; }
|
|
public bool PreferredTotalsDisplaying { get; set; }
|
|
[Required]
|
|
[Display(Name = "First Name")]
|
|
public string FirstName { get; set; }
|
|
[Required]
|
|
[Display(Name = "Last Name")]
|
|
public string LastName { get; set; }
|
|
|
|
|
|
|
|
public virtual ICollection<PasswordResetRequest> PasswordResetRequests { get; set; }
|
|
public virtual ICollection<User2Team> User2Team { get; set; }
|
|
public virtual ICollection<AspNetRole> AspNetRoles { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// Copies data from model to DAL object.
|
|
/// </summary>
|
|
/// <param name="dbObj">A target DAL object.</param>
|
|
public void CopyTo(AspNetUser dbObj)
|
|
{
|
|
if (dbObj == null)
|
|
throw new ArgumentNullException();
|
|
string _ID = Id.ToString();
|
|
if (Id == Guid.Empty)
|
|
_ID = null;
|
|
if (string.IsNullOrEmpty(dbObj.Id) && !string.IsNullOrEmpty(_ID))
|
|
dbObj.Id = Id.ToString();
|
|
dbObj.UserName = UserName;
|
|
dbObj.FirstName = FirstName;
|
|
dbObj.LastName = LastName;
|
|
dbObj.Email = Email;
|
|
dbObj.PasswordHash = PasswordHash;
|
|
dbObj.Phone = Phone;
|
|
dbObj.PreferredResourceAllocation = PreferredResourceAllocation;
|
|
dbObj.AspNetRoles = AspNetRoles;
|
|
dbObj.Discriminator = Discriminator;
|
|
dbObj.PasswordResetRequests = PasswordResetRequests;
|
|
dbObj.PreferredTotalsDisplaying = PreferredTotalsDisplaying;
|
|
dbObj.SecurityStamp = SecurityStamp;
|
|
dbObj.Type = Type;
|
|
dbObj.User2Team = User2Team;
|
|
|
|
}
|
|
|
|
}
|
|
} |