Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs @ 285:c8f378272407
#123: Patrocinadores de las vans.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 31 Dec 2011 14:45:55 -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 | 30 |
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 | 53 |
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 | 62 |
63 public class PersonaViewModel | |
64 { | |
65 [HiddenInput(DisplayValue = false)] | |
66 public string Id { get; set; } | |
67 | |
68 [HiddenInput] | |
69 public string Nombre { get; set; } | |
70 | |
71 [HiddenInput] | |
72 public string Twitter { get; set; } | |
73 | |
74 [HiddenInput] | |
75 public string EMail { get; set; } | |
76 | |
77 [HiddenInput] | |
78 public string Blog { get; set; } | |
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 } |