changeset 79:8df9db937434

Url de invitación en la UI: validación y persistencia
author nelopauselli
date Tue, 24 May 2011 18:08:59 -0300
parents 2adf55ea9199
children c2d98fd6593f
files Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Domain/Evento.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs Agendas/trunk/src/Agendas.Web/Models/PropuestaModel.cs Agendas/trunk/src/Agendas.Web/packages.config
diffstat 9 files changed, 24 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue May 24 18:08:59 2011 -0300
@@ -51,8 +51,8 @@
 
 			if (evento.Fecha == null && fecha != null)
 				evento.Agendar(ponente, fecha, urlInvitacion);
-			else if (evento.Fecha != fecha || evento.Ponente != ponente)
-				evento.Actualizar(ponente, fecha);
+			else if (evento.Fecha != fecha || evento.Ponente != ponente || evento.UrlInvitacion != urlInvitacion)
+				evento.Actualizar(ponente, fecha, urlInvitacion);
 
 			if (_publicador != null)
 				_publicador.Publicar(evento);
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Tue May 24 18:08:59 2011 -0300
@@ -112,10 +112,11 @@
 			AddTracks(new Track(Accion.Agendar));
 		}
 
-		public virtual void Actualizar(Ponente ponente, DateTime? fecha)
+		public virtual void Actualizar(Ponente ponente, DateTime? fecha, string urlInvitacion)
 		{
 			Ponente = ponente;
 			Fecha = fecha;
+			UrlInvitacion = urlInvitacion;
 
 			AddTracks(new Track(Accion.Modificar));
 		}
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs	Tue May 24 18:08:59 2011 -0300
@@ -69,7 +69,7 @@
 				var otroPonente = new Ponente("José");
 				_ponenteRepository.Save(otroPonente);
 
-				van.Actualizar(otroPonente, new DateTime(2010, 04, 17));
+				van.Actualizar(otroPonente, new DateTime(2010, 04, 17), null);
 
 				_eventoRepository.Update(van);
 			}
--- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Tue May 24 18:08:59 2011 -0300
@@ -80,7 +80,7 @@
 				var van = agenda.GetEventosPropuestos().FirstOrDefault();
 				Assert.IsNotNull(van);
 
-				van.Actualizar(null, DateTime.Today.AddDays(5));
+				van.Actualizar(null, DateTime.Today.AddDays(5), urlInvitacion);
 				var r = agenda.Agendar(van.Titulo, string.Empty, van.Fecha,
 					urlInvitacion);
 				Assert.IsFalse(r.Succeful);
--- a/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj	Tue May 24 18:08:59 2011 -0300
@@ -34,6 +34,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="DataAnnotationsExtensions">
+      <HintPath>..\packages\DataAnnotationsExtensions.0.6.0.0\lib\NETFramework40\DataAnnotationsExtensions.dll</HintPath>
+    </Reference>
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
     <Reference Include="System.Web.WebPages" />
@@ -157,6 +160,9 @@
   <ItemGroup>
     <Content Include="Views\Shared\_Menu.cshtml" />
   </ItemGroup>
+  <ItemGroup>
+    <Content Include="packages.config" />
+  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
--- a/Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs	Tue May 24 18:08:59 2011 -0300
@@ -60,7 +60,8 @@
 				            	{
 				            		Id = id,
 				            		Titulo = propuesta.Titulo,
-				            		Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty
+				            		Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty,
+									UrlInvitacion = propuesta.UrlInvitacion
 				            	};
 				return View(model);
 			}
--- a/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Tue May 24 18:08:59 2011 -0300
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.Web.Mvc;
+using DataAnnotationsExtensions;
 
 namespace AltNetHispano.Agendas.Web.Models
 {
@@ -21,6 +22,7 @@
         [Required(ErrorMessage = "debe ingresar la fecha del evento")]
         public DateTime Fecha { get; set; }
 
+		[Url]
         public string UrlInvitacion { get; set; }
     }
 
@@ -38,6 +40,7 @@
         [Required(ErrorMessage = "debe ingresar la fecha del evento")]
         public DateTime? Fecha { get; set; }
 
+		[Url]
 		public string UrlInvitacion { get; set; }
 	}
     
--- a/Agendas/trunk/src/Agendas.Web/Models/PropuestaModel.cs	Tue May 24 17:56:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Models/PropuestaModel.cs	Tue May 24 18:08:59 2011 -0300
@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.Web.Mvc;
+using DataAnnotationsExtensions;
 
 namespace AltNetHispano.Agendas.Web.Models
 {
@@ -16,6 +17,7 @@
 
         public string Ponente { get; set; }
 
+		[Url]
 		public string UrlInvitacion { get; set; }
 	}
 
@@ -29,6 +31,7 @@
 
         public string Ponente { get; set; }
 
+		[Url(ErrorMessage = "La url ingresada no es válida")]
 		public string UrlInvitacion { get; set; }
 	}
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Web/packages.config	Tue May 24 18:08:59 2011 -0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="DataAnnotationsExtensions" version="0.6.0.0" />
+</packages>
\ No newline at end of file