59 lines
1.4 KiB
C#
59 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using AutoMapper;
|
|
using MileageTraker.Web.Attributes;
|
|
using MileageTraker.Web.DAL;
|
|
using MileageTraker.Web.Models;
|
|
|
|
namespace MileageTraker.Web.ViewModels.User
|
|
{
|
|
public class CreateUserViewModel
|
|
{
|
|
[Required]
|
|
[StringLength(64)]
|
|
[InputSize("small")]
|
|
public string Username { get; set; }
|
|
|
|
[Required]
|
|
[DataType(DataType.EmailAddress)]
|
|
[RegularExpression(@"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}", ErrorMessage = "Must be an email address")]
|
|
[InputSize("large")]
|
|
public string Email { get; set; }
|
|
|
|
[Required]
|
|
[StringLength(128)]
|
|
[RegularExpression(@"[A-Za-z().]+(\s+[A-Za-z().]+)+", ErrorMessage = "Need complete name")]
|
|
[InputSize("medium")]
|
|
public string FullName { get; set; }
|
|
|
|
[Required, DataType(DataType.Password)]
|
|
[StringLength(16, MinimumLength = 6)]
|
|
public string Password { get; set; }
|
|
|
|
public string[] Roles { get; set; }
|
|
|
|
public IList<string> AvailableRoles { get; set; }
|
|
public IList<string> SelectedRoles { get; set; }
|
|
|
|
static CreateUserViewModel()
|
|
{
|
|
Mapper.CreateMap<CreateUserViewModel, Models.User>();
|
|
Mapper.CreateMap<string, Role>()
|
|
.ConvertUsing(
|
|
roleName =>
|
|
{
|
|
using (var ds = new DataService())
|
|
{
|
|
return ds.GetRoleByName(roleName);
|
|
}
|
|
});
|
|
}
|
|
|
|
public Models.User ToUser()
|
|
{
|
|
var user = new Models.User();
|
|
Mapper.Map(this, user);
|
|
return user;
|
|
}
|
|
}
|
|
} |