using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data.Objects.DataClasses; using System.Linq; using System.ServiceModel.DomainServices.Server; using System.ServiceModel.DomainServices.Hosting; using System.ServiceModel.DomainServices.Server.ApplicationServices; using System.Runtime.Serialization; namespace IssueVision.Data.Web { /// <summary> /// LoginUser class derives from User class and implements IUser interface, /// it only exposes the following three data members to the client: /// Name, Password, ProfileResetFlag, and Roles /// </summary> [DataContractAttribute(IsReference = true)] [MetadataTypeAttribute(typeof(LoginUser.LoginUserMetadata))] public sealed class LoginUser : User, IUser { // This class allows you to attach custom attributes to properties // of the LoginUser class. // // For example, the following marks the Xyz property as a // required field and specifies the format for valid values: // [Required] // [RegularExpression("[A-Z][A-Za-z0-9]*")] // [StringLength(32)] // public string Xyz; internal sealed class LoginUserMetadata : UserMetadata { // Metadata classes are not meant to be instantiated. private LoginUserMetadata() { } [Key] [Display(Name = "UserNameLabel", ResourceType = typeof(IssueVisionResources))] [Required(ErrorMessageResourceName = "ValidationErrorRequiredField", ErrorMessageResourceType = typeof(ErrorResources))] [RegularExpression("^[a-zA-Z0-9_]*$", ErrorMessageResourceName = "ValidationErrorInvalidUserName", ErrorMessageResourceType = typeof(ErrorResources))] public new string Name { get; set; } [Exclude] public new string Email { get; set; } [Exclude] public string FirstName { get; set; } [Exclude] public string LastName { get; set; } [Exclude] public string NewPassword { get; set; } [Exclude] public string PasswordQuestion { get; set; } [Exclude] public string PasswordAnswer { get; set; } [Exclude] public string UserType { get; set; } [Exclude] public bool IsUserMaintenance { get; set; } } [DataMember] public IEnumerable<string> Roles { get { if (this.UserType == "A") { // Admin User return new List<string> { IssueVisionServiceConstant.UserTypeUser, IssueVisionServiceConstant.UserTypeAdmin }; } else if (this.UserType == "U") { // Normal User return new List<string> { "User" }; } else return new List<string>(); } set { if (value.Contains(IssueVisionServiceConstant.UserTypeAdmin)) { // Admin User this.UserType = "A"; } else if (value.Contains(IssueVisionServiceConstant.UserTypeUser)) { // Normal User this.UserType = "U"; } else this.UserType = String.Empty; } } } }
By viewing downloads associated with this article you agree to the Terms of use and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
Skills that self-taught computer programmers lack