Files
MileageTraker/Web/ViewModels/User/CreateUserViewModel.cs
T
2012-12-27 22:04:21 -05:00

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;
}
}
}