using Autofac; using FluentValidation; using GreenTree.Nachtragsmanagement.Core; using GreenTree.Nachtragsmanagement.Services.Appendix; using GreenTree.Nachtragsmanagement.Services.Site; using GreenTree.Nachtragsmanagement.Web.Models.Appendix; using GreenTree.Nachtragsmanagement.Web.Models.Deviation; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace GreenTree.Nachtragsmanagement.Web.Validation.Appendix { public class AppendixDataModelValidator : AbstractValidator { public AppendixDataModelValidator() { var siteService = Singleton.Instance.Resolve(); RuleFor(m => m.CustomNumber) .NotEmpty() .WithMessage("Nummer wird benötigt") .MaximumLength(10) .WithMessage("Muss unter 10 Zeichen sein"); RuleFor(m => m) .Must(a1 => a1.SiteId.HasValue && !siteService.GetSiteById(a1.SiteId.Value).Appendices .Select(a2 => a2.CustomNumber) .Contains(a1.CustomNumber)) .WithMessage("Nachtragsnummer in Baustelle bereits vorhanden."); RuleFor(m => m.Description) .NotEmpty() .WithMessage("Beschreibung wird benötigt"); RuleFor(m => m.OfferingDate) .NotEmpty() .WithMessage("Einreichdatum wird benötigt"); RuleFor(m => m.OfferingValue) .NotEmpty() .WithMessage("Eine Angebotssumme wird benötigt"); } } }