using FluentValidation;
using GreenTree.Nachtragsmanagement.Web.Models.Admin.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GreenTree.Nachtragsmanagement.Web.Validation.Admin.User
{
    public class UserDataModelValidator : AbstractValidator<UserDataModel>
    {
        public UserDataModelValidator()
        {
            RuleFor(m => m.Forename)
                .NotEmpty()
                    .WithMessage("Vorname wird benötigt")
                .MaximumLength(50)
                    .WithMessage("Muss unter 50 Zeichen sein");

            RuleFor(m => m.Lastname)
                .NotEmpty()
                    .WithMessage("Nachname wird benötigt")
                .MaximumLength(50)
                    .WithMessage("Muss unter 50 Zeichen sein");

            RuleFor(m => m.MailAddress)
                .NotEmpty()
                    .WithMessage("Mail-Adresse wird benötigt")
                .EmailAddress()
                    .WithMessage("Keine gültige E-Mail-Adresse");

            RuleFor(m => m.RoleValues)
                .Must(r => r.Count > 0)
                    .WithMessage("Eine Rolle muss ausgewählt werden");

            RuleFor(m => m.Password)
                .NotEmpty()
                .When(p => p.Id == -1)
                    .WithMessage("Passwort wird benötigt");
        }
    }
}