private static void ConfigMetadata(IModelRegistrar reg, IWindsorContainer container) { reg.ModelNamespacePattern("Centros.Model.{0}, Centros.Model"); reg.RegisterPatterApplier(new IdPatternApplier { IdPropertyName = "Id" }); reg.RegisterPatterApplier(new ReferencePatternApplier { ExcludeReferenceTypes = new[] { typeof(Horario) } }); reg.DomainAccessorAccessor(modelType => { var providerType = typeof (IDomainAccessor<>).MakeGenericType(modelType); return (IDomainAccessor<object>) container.Resolve(providerType); }). DomainMutatorAccessor(modelType => { var providerType = typeof (IDomainMutator<>).MakeGenericType(modelType); return (IDomainMutator<object>) container.Resolve(providerType); }); reg.ForType<Centro>(); reg.ForType<Educador>(); reg.ForType<Horario>(); reg.ForType<Institucion>(md => md.Description("Institución")); reg.ForType<Jurisdiccion>(md => md.Description("Jurisdicción")); reg.ForType<Organizacion>(md => md.Description("Organización")); reg.ForType<Participacion>(); reg.ForType<Participante>(); reg.ForType<Registro>(); reg.ForType<Taller>(); }
private static void ConfigValidators(IModelRegistrar reg) { reg.ForType<Centro>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Horario, md => md.Required()). ForProperty(m => m.EducadorACargo, md => md.Required()). ForProperty(m => m.Institucion, md => md.Required()); reg.ForType<Educador>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Apellido, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Telefono, md => md.StringLength(50)). ForProperty(m => m.Direccion, md => md.StringLength(200)). ForProperty(m => m.EMail, md => md.DataType(DataType.EmailAddress)). ForProperty(m => m.NombreCompleto, md => md.ShowForEdit(false)); reg.ForType<Horario>(). ForProperty(m => m.Hora, md => { md.Required(); md.StringLength(50, 1); }); reg.ForType<Institucion>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Telefono, md => md.StringLength(50)). ForProperty(m => m.Direccion, md => md.StringLength(200)). ForProperty(m => m.EMail, md => md.DataType(DataType.EmailAddress)). ForProperty(m => m.Jurisdiccion, md => md.Required()); reg.ForType<Jurisdiccion>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }); reg.ForType<Organizacion>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Telefono, md => md.StringLength(50)). ForProperty(m => m.Direccion, md => md.StringLength(200)). ForProperty(m => m.EMail, md => md.DataType(DataType.EmailAddress)); reg.ForType<Participacion>(); reg.ForType<Participante>(); reg.ForType<Registro>(); reg.ForType<Taller>(). ForProperty(m => m.Nombre, md => { md.Required(); md.StringLength(50, 1); }). ForProperty(m => m.Inicio, md => { md.Required(); md.DisplayFormat(null, "{0:d}", false, true, true); }). ForProperty(m => m.Fin, md => { md.Required(); md.DisplayFormat(null, "{0:d}", false, true, true); }). ForProperty(m => m.Centro, md => md.Required()); }