Mercurial > altnet-hispano
changeset 118:b74734a1a755
Manejo de eventos por estado
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Wed Jun 22 09:32:59 2011 -0300 @@ -27,14 +27,14 @@ return evento; } - public IList<Evento> GetEventosPropuestos() + public IList<Evento> GetEventosActivos(EventoState state) { - return _eventosRepository.GetEventosSinFecha() ?? new List<Evento>(); + return _eventosRepository.GetByState(state) ?? new List<Evento>(); } - public IList<Evento> GetEventosAgendados() + public IList<Evento> GetEventosActivos() { - return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); + return _eventosRepository.GetActivos() ?? new List<Evento>(); } public Resultado ModificarEvento(Guid eventoId, string titulo, string ponenteNombre, DateTime? fecha, string urlInvitacion)
--- a/Agendas/trunk/src/Agendas.Domain/Repositories/IEventoRepository.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Repositories/IEventoRepository.cs Wed Jun 22 09:32:59 2011 -0300 @@ -7,8 +7,8 @@ { void Delete(Evento evento); Evento Get(Guid vanId); - IList<Evento> GetEventosConFecha(); - IList<Evento> GetEventosSinFecha(); + IList<Evento> GetByState(EventoState state); + IList<Evento> GetActivos(); Evento GetPropuestaByTitulo(string titulo); void Save(Evento evento); void Update(Evento evento);
--- a/Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs Wed Jun 22 09:32:59 2011 -0300 @@ -13,6 +13,11 @@ //nada que hacer en este método para este repositorio } + public IList<Evento> GetByState(EventoState state) + { + return Objects.Values.Where(e => e.Estado == state.GetDescripcion()).ToList(); + } + public void Delete(Evento evento) { Objects.Remove(evento.Id); @@ -24,14 +29,12 @@ return Objects.TryGetValue(vanId, out evento) ? evento : null; } - public IList<Evento> GetEventosSinFecha() + public IList<Evento> GetActivos() { - return Objects.Values.Where(e => e.Fecha == null).ToList(); - } - - public IList<Evento> GetEventosConFecha() - { - return Objects.Values.Where(e => e.Fecha != null).ToList(); + return + Objects.Values.Where( + e => + e.Estado != EventoPublicadoState.GetInstance().GetDescripcion()).ToList(); } public Evento GetPropuestaByTitulo(string titulo)
--- a/Agendas/trunk/src/Agendas.Repositories.NHibernate/EventoRepository.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Repositories.NHibernate/EventoRepository.cs Wed Jun 22 09:32:59 2011 -0300 @@ -22,14 +22,12 @@ return Session.Get<Evento>(vanId); } - public IList<Evento> GetEventosConFecha() + public IList<Evento> GetActivos() { - return Session.QueryOver<Evento>().Where(e => e.Fecha != null).List(); - } - - public IList<Evento> GetEventosSinFecha() - { - return Session.QueryOver<Evento>().Where(e => e.Fecha == null).List(); + return + Session.QueryOver<Evento>().Where( + e => + e.Estado != EventoPublicadoState.GetInstance().GetDescripcion()).List(); } public Evento GetPropuestaByTitulo(string titulo) @@ -41,5 +39,10 @@ { //No es necesario implementarlo } + + public IList<Evento> GetByState(EventoState state) + { + return Session.QueryOver<Evento>().Where(e => e.Estado == state.GetDescripcion()).List(); + } } }
--- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Wed Jun 22 09:32:59 2011 -0300 @@ -32,7 +32,7 @@ var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van)); - Assert.AreEqual(0, agenda.GetEventosAgendados().Count); + Assert.AreEqual(0, agenda.GetEventosActivos().Count); publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); @@ -111,9 +111,9 @@ agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); - Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); + Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); - var eventos = agenda.GetEventosAgendados(); + var eventos = agenda.GetEventosActivos(); Assert.AreEqual(1, eventos.Count); publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); @@ -136,7 +136,7 @@ publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); - var evento = repository.GetEventosConFecha().First(); + var evento = repository.GetActivos().First(); Assert.AreNotEqual(Guid.Empty, evento.Id); Assert.IsNotNull(evento.Fecha); @@ -145,7 +145,7 @@ publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); - evento = repository.GetEventosConFecha().First(); + evento = repository.GetActivos().First(); Assert.AreEqual("otro titulo", evento.Titulo); Assert.AreEqual("otro ponente", evento.Ponente.Nombre); Assert.AreEqual(fecha, evento.Fecha); @@ -167,7 +167,7 @@ agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); - var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar"); + var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar"); //agenda.Recordar(van.Id); publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); @@ -184,18 +184,19 @@ var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), DefaultEventoRepository, DefaultPersonaRepository); - agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); - Assert.AreEqual(1, agenda.GetEventosPropuestos().Count); - Assert.AreEqual(0, agenda.GetEventosAgendados().Count); + agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); + Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); + Assert.AreEqual(1, agenda.GetEventosActivos().Count); - var publicado = agenda.GetEventosPropuestos().First(); + var publicado = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).First(); Assert.AreEqual(1, publicado.Tracks.Count()); agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion); - Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); - Assert.AreEqual(1, agenda.GetEventosAgendados().Count); + Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); + Assert.AreEqual(1, agenda.GetEventosActivos(EventoAgendadoState.GetInstance()).Count); + Assert.AreEqual(1, agenda.GetEventosActivos().Count); - var agendado = agenda.GetEventosAgendados().First(); + var agendado = agenda.GetEventosActivos().First(); Assert.AreSame(publicado, agendado); Assert.AreEqual(2, agendado.Tracks.Count()); @@ -211,7 +212,8 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); + var evento = + DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado()); Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1); @@ -225,7 +227,7 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1); @@ -239,7 +241,7 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); agenda.Confirmar(evento.Id); @@ -255,7 +257,7 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); agenda.Confirmar(evento.Id); agenda.Publicar(evento.Id, 0, string.Empty); @@ -272,7 +274,7 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); agenda.Confirmar(evento.Id); const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; @@ -291,7 +293,8 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); + var evento = + DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState)); @@ -307,7 +310,8 @@ var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); - var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); + var evento = + DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
--- a/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Wed Jun 22 09:32:59 2011 -0300 @@ -25,7 +25,7 @@ agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), urlInvitacion, TipoEvento.Van); - var eventos = agenda.GetEventosAgendados(); + var eventos = agenda.GetEventosActivos(); Assert.AreEqual(2, eventos.Count); publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); @@ -51,7 +51,7 @@ agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); - Assert.AreEqual(1, agenda.GetEventosAgendados().Count); + Assert.AreEqual(1, agenda.GetEventosActivos().Count); publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); @@ -75,7 +75,7 @@ agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); - Assert.AreEqual(1, agenda.GetEventosAgendados().Count); + Assert.AreEqual(1, agenda.GetEventosActivos().Count); publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); @@ -95,7 +95,7 @@ agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); Persona persona; { - var eventos = agenda.GetEventosPropuestos(); + var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.AreEqual(1, eventos.Count); Evento evento = eventos[0]; @@ -107,7 +107,7 @@ agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion); { - var eventos = agenda.GetEventosPropuestos(); + var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.AreEqual(1, eventos.Count); Evento evento = eventos[0]; @@ -125,7 +125,7 @@ agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); { - var eventos = agenda.GetEventosPropuestos(); + var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.AreEqual(1, eventos.Count); Evento evento = eventos[0]; @@ -136,7 +136,7 @@ agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion); { - var eventos = agenda.GetEventosPropuestos(); + var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.AreEqual(1, eventos.Count); Evento evento = eventos[0];
--- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Wed Jun 22 09:32:59 2011 -0300 @@ -19,18 +19,18 @@ { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); - agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van); + agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van); { - IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); - IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); + IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); + IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); Assert.AreEqual(1, eventosPropuestos.Count); - Assert.AreEqual(0, eventosPublicados.Count); + Assert.AreEqual(0, eventosAgendados.Count); var evento = eventosPropuestos.FirstOrDefault(); agenda.ModificarPropuesta(evento.Id, "Van 2", "otro ponente", urlInvitacion); - eventosPropuestos = agenda.GetEventosPropuestos(); + eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.AreEqual(1, eventosPropuestos.Count); evento = eventosPropuestos.FirstOrDefault(); @@ -38,14 +38,14 @@ Assert.AreEqual("otro ponente", evento.Ponente.Nombre); } - var r = agenda.Agendar("Van 2", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); + var r = agenda.Agendar("Van 2", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); Assert.IsTrue(r.Succeful); { - IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); - IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); + IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); + IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); Assert.AreEqual(0, eventosPropuestos.Count); - Assert.AreEqual(1, eventosPublicados.Count); + Assert.AreEqual(1, eventosAgendados.Count); } } @@ -55,14 +55,14 @@ var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); { - agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); + agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); } { - var van = agenda.GetEventosPropuestos().FirstOrDefault(); + var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); Assert.IsNotNull(van); var r = agenda.Agendar(van.Titulo, "Ponente", null, - urlInvitacion, TipoEvento.Van); + urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); } } @@ -73,16 +73,16 @@ var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); { - agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); + agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); } { - var van = agenda.GetEventosPropuestos().FirstOrDefault(); + var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); Assert.IsNotNull(van); van.Actualizar(null, DateTime.Today.AddDays(5), urlInvitacion); var r = agenda.Agendar(van.Titulo, string.Empty, van.Fecha, - urlInvitacion, TipoEvento.Van); + urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); } } @@ -104,7 +104,7 @@ var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository); - var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); + var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); @@ -117,16 +117,16 @@ SetCurrentUser(null, null); - Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null, urlInvitacion, TipoEvento.Van)); + Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null, urlInvitacion, TipoEvento.Van)); } [Test] public void Proponer_evento_correctamente() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); - agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); + agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); - IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); + IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); Assert.IsNotNull(eventosPropuestos); Assert.AreEqual(1, eventosPropuestos.Count); Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); @@ -137,16 +137,16 @@ { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); - agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); + agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); var r = agenda.Agendar("Van publicada", "jjmontes", DateTime.Now, - urlInvitacion, TipoEvento.Van); + urlInvitacion, TipoEvento.Van); Assert.IsTrue(r.Succeful); - IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); - IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); + IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); + IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); Assert.AreEqual(1, eventosPropuestos.Count); - Assert.AreEqual(1, eventosPublicados.Count); + Assert.AreEqual(1, eventosAgendados.Count); } } } \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Wed Jun 22 09:32:59 2011 -0300 @@ -19,7 +19,7 @@ var fecha = DateTime.Now.AddDays(5); agenda.Agendar("Html 5", "jjmontes", fecha, urlInvitacion, TipoEvento.Van); - var evento = repository.GetEventosConFecha().First(); + var evento = repository.GetActivos().First(); Assert.AreEqual(1, evento.Tracks.Count()); var ultimo = evento.Tracks.Last(); @@ -54,7 +54,7 @@ agenda.Agendar("Html 5", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); - var evento = repository.GetEventosConFecha().First(); + var evento = repository.GetActivos().First(); Assert.AreEqual(1, evento.Tracks.Count()); Assert.AreEqual(Accion.Agendar, evento.Tracks.Last().Accion);
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Wed Jun 22 09:32:59 2011 -0300 @@ -43,7 +43,7 @@ _workflow.Agendar(); - var evento = DefaultEventoRepository.GetEventosConFecha().SingleOrDefault(); + var evento = DefaultEventoRepository.GetActivos().SingleOrDefault(); Assert.IsNotNull(evento); _workflow.Confirmar(evento.Id); @@ -58,7 +58,7 @@ _workflow.Agendar(); - var evento = DefaultEventoRepository.GetEventosConFecha().SingleOrDefault(); + var evento = DefaultEventoRepository.GetActivos().SingleOrDefault(); Assert.IsNotNull(evento); _workflow.Confirmar(evento.Id);
--- a/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Wed Jun 22 09:32:59 2011 -0300 @@ -66,7 +66,6 @@ <Compile Include="Controllers\EventoController.cs" /> <Compile Include="Controllers\HomeController.cs" /> <Compile Include="Controllers\PerfilController.cs" /> - <Compile Include="Controllers\PropuestaController.cs" /> <Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> </Compile> @@ -156,14 +155,12 @@ <Folder Include="App_Data\" /> </ItemGroup> <ItemGroup> - <Content Include="Views\Evento\Edit.cshtml" /> + <Content Include="Views\Evento\Modificar.cshtml" /> <Content Include="Views\Evento\Index.cshtml" /> - <Content Include="Views\Evento\New.cshtml" /> + <Content Include="Views\Evento\Nuevo.cshtml" /> </ItemGroup> <ItemGroup> - <Content Include="Views\Propuesta\New.cshtml" /> - <Content Include="Views\Propuesta\Edit.cshtml" /> - <Content Include="Views\Propuesta\Index.cshtml" /> + <Content Include="Views\Evento\Proponer.cshtml" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\Agendas.Domain\Agendas.Domain.csproj"> @@ -204,6 +201,9 @@ <ItemGroup> <Content Include="Views\Shared\_Messages.cshtml" /> </ItemGroup> + <ItemGroup> + <Content Include="Views\Evento\Agendar.cshtml" /> + </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/EventoController.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs Wed Jun 22 09:32:59 2011 -0300 @@ -14,31 +14,33 @@ var agenda = AgendaFactory.GetAgenda(); var model = new EventoIndexModel - { - ProximosEventos = from e in agenda.GetEventosAgendados() - orderby e.Fecha - select new EventoDto - { - Id = e.Id.ToString(), - Titulo = e.Titulo, - Fecha = e.Fecha.Value, - PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), - PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), - PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) - } - }; + { + ProximosEventos = from e in agenda.GetEventosActivos() + orderby e.Fecha + select new EventoDto + { + Id = e.Id.ToString(), + Titulo = e.Titulo, + Fecha = e.Fecha.HasValue ? e.Fecha.Value.ToShortDateString() : string.Empty, + Estado = e.Estado, + PuedeAgendar = e.GetEstado().PuedePromover(Accion.Agendar), + PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), + PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), + PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) + } + }; return View(model); } [Authorize] - public ActionResult New() + public ActionResult Nuevo() { return View(new EventoNewModel()); } [HttpPost] [Authorize] - public ActionResult New(EventoNewModel model) + public ActionResult Nuevo(EventoNewModel model) { if (ModelState.IsValid) { @@ -57,24 +59,7 @@ } [Authorize] - public ActionResult Edit(string id) - { - var agenda = AgendaFactory.GetAgenda(); - var evento = agenda.GetEvento(new Guid(id)); - - var model = new EventoEditModel - { - Id = id, - Titulo = evento.Titulo, - Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty, - Fecha = evento.Fecha, - UrlInvitacion = evento.UrlInvitacion - }; - return View(model); - } - - [Authorize] - public ActionResult Confirm(string id) + public ActionResult Confirmar(string id) { var agenda = AgendaFactory.GetAgenda(); agenda.Confirmar(new Guid(id)); @@ -84,7 +69,7 @@ } [Authorize] - public ActionResult Publish(string id) + public ActionResult Publicar(string id) { var agenda = AgendaFactory.GetAgenda(); agenda.Publicar(new Guid(id), 0, string.Empty); @@ -93,9 +78,26 @@ return RedirectToAction("Index"); } + [Authorize] + public ActionResult Modificar(string id) + { + var agenda = AgendaFactory.GetAgenda(); + var evento = agenda.GetEvento(new Guid(id)); + + var model = new EventoEditModel + { + Id = id, + Titulo = evento.Titulo, + Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty, + Fecha = evento.Fecha, + UrlInvitacion = evento.UrlInvitacion + }; + return View(model); + } + [HttpPost] [Authorize] - public ActionResult Edit(EventoEditModel model) + public ActionResult Modificar(EventoEditModel model) { if (ModelState.IsValid) { @@ -111,5 +113,64 @@ } return View(model); } + + [Authorize] + public ActionResult Agendar(string id) + { + var agenda = AgendaFactory.GetAgenda(); + var evento = agenda.GetEvento(new Guid(id)); + + var model = new EventoAgendarModel + { + Id = id, + Titulo = evento.Titulo, + Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty, + Fecha = evento.Fecha, + UrlInvitacion = evento.UrlInvitacion + }; + return View(model); + } + + [HttpPost] + [Authorize] + public ActionResult Agendar(EventoAgendarModel model) + { + if (ModelState.IsValid) + { + var agenda = AgendaFactory.GetAgenda(); + + var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); + if (r.Succeful) + { + this.AddNotification("evento agendado"); + return RedirectToAction("Index"); + } + ModelState.AddModelError("error", r.ToString()); + } + return View(model); + } + + [Authorize] + public ActionResult Proponer() + { + return View(new PropuestaNewModel()); + } + + [HttpPost] + [Authorize] + public ActionResult Proponer(PropuestaNewModel model) + { + if (ModelState.IsValid) + { + var agenda = AgendaFactory.GetAgenda(); + + var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion, (TipoEvento)model.Tipo); + if (r.Succeful) + return RedirectToAction("Index"); + ModelState.AddModelError("error", r.ToString()); + } + return View(model); + } + } }
--- a/Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -using System; -using System.Linq; -using System.Web.Mvc; -using AltNetHispano.Agendas.Domain; -using AltNetHispano.Agendas.Factories; -using AltNetHispano.Agendas.Web.Models; - -namespace AltNetHispano.Agendas.Web.Controllers -{ - public class PropuestaController : Controller - { - public ActionResult Index() - { - var agenda = AgendaFactory.GetAgenda(); - - var model = new PropuestaIndexModel - { - Propuestas = from e in agenda.GetEventosPropuestos() - select - new PropuestaDto - { - Id = e.Id.ToString(), - Titulo = e.Titulo, - Ponente = e.Ponente != null ? e.Ponente.Nombre : string.Empty - } - }; - - return View(model); - } - - [Authorize] - public ActionResult New() - { - return View(new PropuestaNewModel()); - } - - [HttpPost] - [Authorize] - public ActionResult New(PropuestaNewModel model) - { - if (ModelState.IsValid) - { - var agenda = AgendaFactory.GetAgenda(); - - var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion, (TipoEvento)model.Tipo); - if (r.Succeful) - return RedirectToAction("Index"); - ModelState.AddModelError("error", r.ToString()); - } - return View(model); - } - - [Authorize] - public ActionResult Edit(string id) - { - var agenda = AgendaFactory.GetAgenda(); - var propuesta = agenda.GetEvento(new Guid(id)); - - var model = new PropuestaEditModel - { - Id = id, - Titulo = propuesta.Titulo, - Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty, - UrlInvitacion = propuesta.UrlInvitacion - }; - return View(model); - } - - [HttpPost] - [Authorize] - public ActionResult Edit(PropuestaEditModel model) - { - if (ModelState.IsValid) - { - var agenda = AgendaFactory.GetAgenda(); - - var r = agenda.ModificarPropuesta(new Guid(model.Id), model.Titulo, model.Ponente, model.UrlInvitacion); - if (r.Succeful) - return RedirectToAction("Index"); - ModelState.AddModelError("error", r.ToString()); - } - return View(model); - } - } -} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs Wed Jun 22 09:32:59 2011 -0300 @@ -60,13 +60,32 @@ public string UrlInvitacion { get; set; } } + public class EventoAgendarModel + { + [HiddenInput(DisplayValue = false)] + public string Id { get; set; } + + [Required] + public string Titulo { get; set; } + + [Required] + public string Ponente { get; set; } + + [Required] + public DateTime? Fecha { get; set; } + + [Url] + public string UrlInvitacion { get; set; } + } public class EventoDto { public string Id { get; set; } - public string Titulo { get; set; } - public DateTime Fecha { get; set; } + public string Titulo { get; set; } + public string Estado { get; set; } + public string Fecha { get; set; } + public bool PuedeAgendar { get; set; } public bool PuedeModificar { get; set; } public bool PuedeConfirmar { get; set; } public bool PuedePublicar { get; set; }
--- a/Agendas/trunk/src/Agendas.Web/Models/PropuestaModel.cs Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Models/PropuestaModel.cs Wed Jun 22 09:32:59 2011 -0300 @@ -5,51 +5,24 @@ namespace AltNetHispano.Agendas.Web.Models { - public class PropuestaIndexModel - { - public IEnumerable<PropuestaDto> Propuestas { get; set; } - } + public class PropuestaNewModel + { + public PropuestaNewModel() + { + Tipos = EventoModelHelper.GetTiposEventos(); + } - public class PropuestaNewModel - { - public PropuestaNewModel() - { - Tipos = EventoModelHelper.GetTiposEventos(); - } - - [Required] - public int Tipo { get; set; } - - [Required] - public string Titulo { get; set; } - - public string Ponente { get; set; } - - [Url] - public string UrlInvitacion { get; set; } + [Required] + public int Tipo { get; set; } - public IEnumerable<TipoEventoModel> Tipos { get; private set; } - } + [Required] + public string Titulo { get; set; } - public class PropuestaEditModel - { - [HiddenInput(DisplayValue = false)] - public string Id { get; set; } - - [Required] - public string Titulo { get; set; } - - public string Ponente { get; set; } + public string Ponente { get; set; } - [Url] - public string UrlInvitacion { get; set; } - } - + [Url] + public string UrlInvitacion { get; set; } - public class PropuestaDto - { - public string Id { get; set; } - public string Titulo { get; set; } - public string Ponente { get; set; } - } + public IEnumerable<TipoEventoModel> Tipos { get; private set; } + } } \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Agendar.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -0,0 +1,28 @@ +@model AltNetHispano.Agendas.Web.Models.EventoAgendarModel +<h2>Agenda</h2> +<p> + Modifique los datos que desea corregir y presione guardar +</p> + +<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> +<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> + +<script type="text/javascript"> + $(document).ready(function () { + $("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' }); + }); +</script> + +@using (Html.BeginForm()) +{ + @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") + <div> + <fieldset> + <legend>Datos del evento:</legend> + @Html.EditorForModel() + <p> + <input type="submit" value="Guardar" /> + </p> + </fieldset> + </div> +} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Evento/Edit.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -@model AltNetHispano.Agendas.Web.Models.EventoEditModel -<h2>Agenda</h2> -<p> - Modifique los datos que desea corregir y presione guardar -</p> - -<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> -<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> - -<script type="text/javascript"> - $(document).ready(function () { - $("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' }); - }); -</script> - -@using (Html.BeginForm()) -{ - @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") - <div> - <fieldset> - <legend>Datos del evento:</legend> - @Html.EditorForModel() - <p> - <input type="submit" value="Guardar" /> - </p> - </fieldset> - </div> -} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Evento/Index.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Index.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -8,6 +8,7 @@ <tr> <th>Fecha</th> <th>Evento</th> + <th>Estado</th> <th>Acciones</th> </tr> </thead> @@ -15,21 +16,26 @@ @foreach (var item in Model.ProximosEventos) { <tr> - <td>@item.Fecha.ToShortDateString()</td> + <td>@item.Fecha</td> <td>@item.Titulo</td> + <td>@item.Estado</td> <td> + @if (item.PuedeAgendar) + { + @Html.ActionLink("Agendar", "Agendar", "Evento", new { id = item.Id }, null) + } @if (item.PuedeModificar) - { - @Html.ActionLink("Modificar", "Edit", new { id = item.Id }) - } + { + @Html.ActionLink("Modificar", "Modificar", new { id = item.Id }) + } @if (item.PuedeConfirmar) - { - @Html.ActionLink("Confirmar", "Confirm", new { id = item.Id }) - } + { + @Html.ActionLink("Confirmar", "Confirmar", new { id = item.Id }) + } @if (item.PuedePublicar) - { - @Html.ActionLink("Publicar", "Publish", new { id = item.Id }) - } + { + @Html.ActionLink("Publicar", "Publicar", new { id = item.Id }) + } </td> </tr> } @@ -37,5 +43,6 @@ </table> <p> -@Html.ActionLink("Nuevo", "New") +@Html.ActionLink("Nuevo", "Nuevo") +@Html.ActionLink("Proponer", "Proponer") </p>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Modificar.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -0,0 +1,28 @@ +@model AltNetHispano.Agendas.Web.Models.EventoEditModel +<h2>Agenda</h2> +<p> + Modifique los datos que desea corregir y presione guardar +</p> + +<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> +<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> + +<script type="text/javascript"> + $(document).ready(function () { + $("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' }); + }); +</script> + +@using (Html.BeginForm()) +{ + @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") + <div> + <fieldset> + <legend>Datos del evento:</legend> + @Html.EditorForModel() + <p> + <input type="submit" value="Guardar" /> + </p> + </fieldset> + </div> +} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Evento/New.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -@model AltNetHispano.Agendas.Web.Models.EventoNewModel -<h2>Agenda</h2> -<p> - Complete los siguiente datos para agendar un nuevo evento -</p> - -<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" /> -<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script> - -<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> -<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> - -<script type="text/javascript"> - $(document).ready(function () { - $("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' }); - }); -</script> - -@using (Html.BeginForm()) -{ - @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") - <div> - <fieldset> - <legend>Datos del evento:</legend> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Tipo) - </div> - <div class="editor-field"> - @Html.DropDownListFor(model => model.Tipo, new SelectList(Model.Tipos, "TipoEvento", "TipoEventoStr")) - @Html.ValidationMessageFor(model => model.Tipo) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Titulo) - </div> - <div class="editor-field"> - @Html.EditorFor(model=>model.Titulo) - @Html.ValidationMessageFor(model => model.Titulo) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Ponente) - </div> - <div class="editor-field"> - @Html.EditorFor(model=>model.Ponente) - @Html.ValidationMessageFor(model => model.Ponente) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Fecha) - </div> - <div class="editor-field"> - @Html.EditorFor(model=>model.Fecha) - @Html.ValidationMessageFor(model => model.Fecha) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.UrlInvitacion) - </div> - <div class="editor-field"> - @Html.EditorFor(model => model.UrlInvitacion) - @Html.ValidationMessageFor(model => model.UrlInvitacion) - </div> - - <p> - <input type="submit" value="Guardar" /> - </p> - </fieldset> - </div> -} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Nuevo.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -0,0 +1,71 @@ +@model AltNetHispano.Agendas.Web.Models.EventoNewModel +<h2>Agenda</h2> +<p> + Complete los siguiente datos para agendar un nuevo evento +</p> + +<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" /> +<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script> + +<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> +<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> + +<script type="text/javascript"> + $(document).ready(function () { + $("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' }); + }); +</script> + +@using (Html.BeginForm()) +{ + @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") + <div> + <fieldset> + <legend>Datos del evento:</legend> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Tipo) + </div> + <div class="editor-field"> + @Html.DropDownListFor(model => model.Tipo, new SelectList(Model.Tipos, "TipoEvento", "TipoEventoStr")) + @Html.ValidationMessageFor(model => model.Tipo) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Titulo) + </div> + <div class="editor-field"> + @Html.EditorFor(model=>model.Titulo) + @Html.ValidationMessageFor(model => model.Titulo) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Ponente) + </div> + <div class="editor-field"> + @Html.EditorFor(model=>model.Ponente) + @Html.ValidationMessageFor(model => model.Ponente) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Fecha) + </div> + <div class="editor-field"> + @Html.EditorFor(model=>model.Fecha) + @Html.ValidationMessageFor(model => model.Fecha) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.UrlInvitacion) + </div> + <div class="editor-field"> + @Html.EditorFor(model => model.UrlInvitacion) + @Html.ValidationMessageFor(model => model.UrlInvitacion) + </div> + + <p> + <input type="submit" value="Guardar" /> + </p> + </fieldset> + </div> +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Proponer.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -0,0 +1,54 @@ +@model AltNetHispano.Agendas.Web.Models.PropuestaNewModel +<h2>Agenda</h2> +<p> + Complete los siguiente datos para proponer un nuevo tema +</p> + +<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> +<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> + +@using (Html.BeginForm()) +{ + @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") + <div> + <fieldset> + <legend>Datos de la propuesta:</legend> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Tipo) + </div> + <div class="editor-field"> + @Html.DropDownListFor(model => model.Tipo, new SelectList(Model.Tipos, "TipoEvento", "TipoEventoStr")) + @Html.ValidationMessageFor(model => model.Tipo) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Titulo) + </div> + <div class="editor-field"> + @Html.EditorFor(model=>model.Titulo) + @Html.ValidationMessageFor(model => model.Titulo) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.Ponente) + </div> + <div class="editor-field"> + @Html.EditorFor(model=>model.Ponente) + @Html.ValidationMessageFor(model => model.Ponente) + </div> + + <div class="editor-label"> + @Html.LabelFor(model=>model.UrlInvitacion) + </div> + <div class="editor-field"> + @Html.EditorFor(model => model.UrlInvitacion) + @Html.ValidationMessageFor(model => model.UrlInvitacion) + </div> + + <p> + <input type="submit" value="Guardar" /> + </p> + </fieldset> + </div> +} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Propuesta/Edit.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -@model AltNetHispano.Agendas.Web.Models.PropuestaEditModel -<h2>Propuestas</h2> -<p> - Modifique los datos que desea corregir y presione guardar -</p> - -<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> -<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> - -@using (Html.BeginForm()) -{ - @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") - <div> - <fieldset> - <legend>Datos de la propuesta:</legend> - @Html.EditorForModel() - <p> - <input type="submit" value="Guardar" /> - </p> - </fieldset> - </div> -} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Propuesta/Index.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -@model AltNetHispano.Agendas.Web.Models.PropuestaIndexModel -<h2>Propuestas</h2> -<p> - Temas propuestos aun no agendados -</p> -<table> - <thead> - <tr> - <th>Propuesta</th> - <th>Ponente</th> - <th>Acciones</th> - </tr> - </thead> - <tbody> - @foreach (var item in Model.Propuestas) - { - <tr> - <td>@item.Titulo</td> - <td>@item.Ponente</td> - <td> - @Html.ActionLink("Modificar", "Edit", new { id = item.Id }) - @Html.ActionLink("Agendar", "Edit", "Evento", new { id = item.Id }, null) - </td> - </tr> - } - </tbody> -</table> - -<p> -@Html.ActionLink("Nueva", "New") -</p>
--- a/Agendas/trunk/src/Agendas.Web/Views/Propuesta/New.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -@model AltNetHispano.Agendas.Web.Models.PropuestaNewModel -<h2>Agenda</h2> -<p> - Complete los siguiente datos para proponer un nuevo tema -</p> - -<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> -<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> - -@using (Html.BeginForm()) -{ - @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos") - <div> - <fieldset> - <legend>Datos de la propuesta:</legend> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Tipo) - </div> - <div class="editor-field"> - @Html.DropDownListFor(model => model.Tipo, new SelectList(Model.Tipos, "TipoEvento", "TipoEventoStr")) - @Html.ValidationMessageFor(model => model.Tipo) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Titulo) - </div> - <div class="editor-field"> - @Html.EditorFor(model=>model.Titulo) - @Html.ValidationMessageFor(model => model.Titulo) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.Ponente) - </div> - <div class="editor-field"> - @Html.EditorFor(model=>model.Ponente) - @Html.ValidationMessageFor(model => model.Ponente) - </div> - - <div class="editor-label"> - @Html.LabelFor(model=>model.UrlInvitacion) - </div> - <div class="editor-field"> - @Html.EditorFor(model => model.UrlInvitacion) - @Html.ValidationMessageFor(model => model.UrlInvitacion) - </div> - - <p> - <input type="submit" value="Guardar" /> - </p> - </fieldset> - </div> -} \ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Shared/_Menu.cshtml Sun Jun 19 13:35:34 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Views/Shared/_Menu.cshtml Wed Jun 22 09:32:59 2011 -0300 @@ -1,6 +1,5 @@ <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li> - <li>@Html.ActionLink("Propuestas", "Index", "Propuesta")</li> <li>@Html.ActionLink("Eventos", "Index", "Evento")</li> <li>@Html.ActionLink("Histórico", "Index", "Histórico")</li> @if (Request.IsAuthenticated)