diff Agendas/trunk/src/Agendas.Repositories.Tests/TestsHelper.cs @ 282:bc8dfbde0523

#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author juanjose.montesdeocaarbos
date Mon, 26 Dec 2011 14:21:44 -0300
parents 51faeabfb9d9
children 48ab8788bd19
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/TestsHelper.cs	Mon Dec 26 13:48:21 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/TestsHelper.cs	Mon Dec 26 14:21:44 2011 -0300
@@ -7,26 +7,41 @@
 {
 	public class TestsHelper
 	{
-		private readonly IPersonaRepository _repository;
+		private readonly IPersonaRepository _repositoryPersona;
+		private readonly IPatrocinadorRepository _repositoryPatrocinador;
 		
-		public TestsHelper(IPersonaRepository repository)
+		public TestsHelper(IPersonaRepository repositoryPersona, IPatrocinadorRepository repositoryPatrocinador)
 		{
-			_repository = repository;
+			_repositoryPersona = repositoryPersona;
+			_repositoryPatrocinador = repositoryPatrocinador;
 		}
 
 		public Guid GetOrCreatePonente(string nombre)
 		{
-			var persona = _repository.GetByNombre(nombre);
+			var persona = _repositoryPersona.GetByNombre(nombre);
 			if (persona == null)
 			{
 				persona = new Persona(nombre) { Twitter = nombre.Replace(" ", string.Empty).ToLower() };
-				_repository.Save(persona);
+				_repositoryPersona.Save(persona);
 
-				if (_repository is AltNetHispano.Agendas.Repositories.NHibernate.PersonaRepository)
+				if (_repositoryPersona is AltNetHispano.Agendas.Repositories.NHibernate.PersonaRepository)
 					NhHelper.GetSessionFactory().GetCurrentSession().Flush();
 			}
 			return persona.Id;
 		}
 
+		public Guid GetOrCreatePatrocinador(string nombre)
+		{
+			var patrocinador = _repositoryPatrocinador.GetByNombre(nombre);
+			if (patrocinador == null)
+			{
+				patrocinador = new Patrocinador(nombre);
+				_repositoryPatrocinador.Save(patrocinador);
+
+				if (_repositoryPatrocinador is AltNetHispano.Agendas.Repositories.NHibernate.PatrocinadorRepository)
+					NhHelper.GetSessionFactory().GetCurrentSession().Flush();
+			}
+			return patrocinador.Id;
+		}
 	}
 }
\ No newline at end of file