view Agendas/trunk/src/Agendas.Repositories.Tests/TestsHelper.cs @ 291:5f1e3d35e113

Patrocinadores: Correcciones en Vistas.
author juanjose.montesdeocaarbos
date Thu, 09 Feb 2012 00:12:00 -0300
parents bc8dfbde0523
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;
		}
	}
}