view 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 source

using System;
using Agendas.NHibernate;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Domain.Repositories;

namespace Agendas.Repositories.Tests
{
	public class TestsHelper
	{
		private readonly IPersonaRepository _repositoryPersona;
		private readonly IPatrocinadorRepository _repositoryPatrocinador;
		
		public TestsHelper(IPersonaRepository repositoryPersona, IPatrocinadorRepository repositoryPatrocinador)
		{
			_repositoryPersona = repositoryPersona;
			_repositoryPatrocinador = repositoryPatrocinador;
		}

		public Guid GetOrCreatePonente(string nombre)
		{
			var persona = _repositoryPersona.GetByNombre(nombre);
			if (persona == null)
			{
				persona = new Persona(nombre) { Twitter = nombre.Replace(" ", string.Empty).ToLower() };
				_repositoryPersona.Save(persona);

				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;
		}
	}
}