annotate Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs @ 284:79942e030118

#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author juanjose.montesdeocaarbos
date Wed, 28 Dec 2011 09:35:27 -0300
parents 5ddc574deeea
children
rev   line source
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
1 using System;
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
2 using System.Collections.Generic;
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
3 //using System.ComponentModel.DataAnnotations;
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
4 using System.ComponentModel.DataAnnotations;
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
5 using System.Web.Mvc;
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
6 using DataAnnotationsExtensions;
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
7
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
8
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
9 namespace AltNetHispano.Agendas.Web.Models
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
10 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
11 public class PersonaIndexModel{
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
12 public IEnumerable<PersonaDto> Items { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
13 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
14
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
15 public class PersonaNewModel
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
16 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
17 [Required]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
18 public string Nombre { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
19
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
20 [Required]
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
21 [Twitter]
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
22 public string Twitter { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
23
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
24 [Required]
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
25 [Email]
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
26 public string EMail { get; set; }
157
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 144
diff changeset
27
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
28 [Url]
157
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 144
diff changeset
29 public string Blog { get; set; }
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 157
diff changeset
30
222362c29416 UI para asignación de roles
nelopauselli
parents: 157
diff changeset
31 public string[] Roles { get; set; }
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
32 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
33
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
34 public class PersonaEditModel
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
35 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
36 [Required]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
37 [HiddenInput(DisplayValue = false)]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
38 public string Id { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
39
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
40 [Required]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
41 public string Nombre { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
42
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
43 [Required]
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
44 [Twitter]
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
45 public string Twitter { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
46
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
47 [Required]
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
48 [Email]
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
49 public string EMail { get; set; }
157
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 144
diff changeset
50
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
51 [Url]
157
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 144
diff changeset
52 public string Blog { get; set; }
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 157
diff changeset
53
222362c29416 UI para asignación de roles
nelopauselli
parents: 157
diff changeset
54 public string[] Roles { get; set; }
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
55 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
56
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
57 public class PersonaDto
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
58 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
59 public Guid Id { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
60 public string Nombre { get; set; }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
61 }
257
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
62
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
63 public class PersonaViewModel
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
64 {
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
65 [HiddenInput(DisplayValue = false)]
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
66 public string Id { get; set; }
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
67
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
68 [HiddenInput]
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
69 public string Nombre { get; set; }
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
70
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
71 [HiddenInput]
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
72 public string Twitter { get; set; }
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
73
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
74 [HiddenInput]
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
75 public string EMail { get; set; }
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
76
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
77 [HiddenInput]
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
78 public string Blog { get; set; }
730b80afa70d Ticket #191: Perfil de Usuarios
juanjose.montesdeocaarbos
parents: 180
diff changeset
79 }
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
80
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
81 [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
82 public class TwitterAttribute: DataTypeAttribute
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
83 {
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
84 public TwitterAttribute()
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
85 : base(DataType.Text)
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
86 {
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
87 }
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
88
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
89 public override string FormatErrorMessage(string name)
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
90 {
265
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
91
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
92 if (ErrorMessage == null && ErrorMessageResourceName == null)
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
93 {
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
94 //TODO: Esto debe estar en el archivo de Recursos.
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
95 const string TwitterAttribute_Invalid = "No debe ingresar el arroba al escribir la cuenta de twitter."; ;
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
96 ErrorMessage = TwitterAttribute_Invalid;
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
97 }
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
98 return base.FormatErrorMessage(name);
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
99 }
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
100
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
101 public override bool IsValid(object value)
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
102 {
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
103 if (value == null)
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
104 {
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
105 return false;
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
106 }
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
107
5ddc574deeea Remplazamos la clase PersonaValidation por TwitterAttribute
juanjose.montesdeocaarbos
parents: 260
diff changeset
108 return !((string)value).StartsWith("@");
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
109 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 257
diff changeset
110 }
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
111 }