using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using AutoMapper;

namespace MileageTraker.Web.ViewModels.Account
{
	public class ChangePasswordViewModel
	{
		[HiddenInput(DisplayValue = false)]
		public string Username { get; set; }

		[HiddenInput(DisplayValue = false)]
		public string FullName { get; set; }

		[HiddenInput(DisplayValue = false)]
		public string Email { get; set; }

		[Required]
		[DataType(DataType.Password)]
		[Display(Name = "Current password")]
		public string OldPassword { get; set; }

		[Required]
		[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
		[DataType(DataType.Password)]
		[Display(Name = "New password")]
		public string NewPassword { get; set; }

		[DataType(DataType.Password)]
		[Display(Name = "Confirm new password")]
		[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
		public string ConfirmPassword { get; set; }

		static ChangePasswordViewModel()
		{
			Mapper.CreateMap<Models.User, ChangePasswordViewModel>();
		}

		public ChangePasswordViewModel(){}
		
		public ChangePasswordViewModel(Models.User user)
		{
			Mapper.Map(user, this);
		}

		public void SetProperties(Models.User user)
		{
			Mapper.Map(user, this);
		}
	}
}
