changeset 116:53bcd338542b

acciones de confirmar y publicar desde la UI
author Nelo@Kenia.neluz.int
date Sun, 19 Jun 2011 13:00:02 -0300
parents 7a2eeb9e9bf9
children 7ef7e4bb71f6
files Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs Agendas/trunk/src/Agendas.Domain/EventoConfirmadoState.cs Agendas/trunk/src/Agendas.Domain/EventoNullState.cs Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs Agendas/trunk/src/Agendas.Domain/EventoPublicadoState.cs Agendas/trunk/src/Agendas.Domain/EventoState.cs Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs Agendas/trunk/src/Agendas.Web/Views/Evento/Index.cshtml
diffstat 9 files changed, 83 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain.Exceptions;
+using System;
+using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -33,5 +34,10 @@
     {
       return Descripcion;
     }
+
+  	public override bool PuedePromover(Accion accion)
+  	{
+		return accion == Accion.Confirmar;
+  	}
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/EventoConfirmadoState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoConfirmadoState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain.Exceptions;
+using System;
+using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -33,5 +34,10 @@
     {
       return Descripcion;
     }
+
+  	public override bool PuedePromover(Accion accion)
+  	{
+  		return accion == Accion.Publicar;
+  	}
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/EventoNullState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoNullState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain.Exceptions;
+using System;
+using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -37,5 +38,10 @@
     {
       return Descripcion;
     }
+
+  	public override bool PuedePromover(Accion accion)
+  	{
+  		return accion == Accion.Proponer || accion == Accion.Agendar;
+  	}
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain.Exceptions;
+using System;
+using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -33,5 +34,10 @@
     {
       return Descripcion;
     }
+
+  	public override bool PuedePromover(Accion accion)
+  	{
+  		return accion == Accion.Agendar;
+  	}
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/EventoPublicadoState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoPublicadoState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain.Exceptions;
+using System;
+using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -25,5 +26,10 @@
     {
       return Descripcion;
     }
+
+  	public override bool PuedePromover(Accion accion)
+  	{
+  		return false;
+  	}
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/EventoState.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/EventoState.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -10,5 +10,7 @@
     public abstract void Promover(Evento evento, Accion accion);
 
     public abstract string GetDescripcion();
+
+  	public abstract bool PuedePromover(Accion accion);
   }
 }
--- a/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -13,12 +13,20 @@
     {
       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 }
-      };
+	  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)
+							}
+	  };
 
       return View(model);
     }
@@ -63,6 +71,22 @@
       return View(model);
     }
 
+	[Authorize]
+	public ActionResult Confirm(string id)
+	{
+		var agenda = AgendaFactory.GetAgenda();
+		agenda.Confirmar(new Guid(id));
+		return RedirectToAction("Index");
+	}
+
+	[Authorize]
+	public ActionResult Publish(string id)
+	{
+		var agenda = AgendaFactory.GetAgenda();
+		agenda.Publicar(new Guid(id), 0, string.Empty);
+		return RedirectToAction("Index");
+	}
+
     [HttpPost]
     [Authorize]
     public ActionResult Edit(EventoEditModel model)
--- a/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Sun Jun 19 13:00:02 2011 -0300
@@ -66,5 +66,9 @@
     public string Id { get; set; }
     public string Titulo { get; set; }
     public DateTime Fecha { get; set; }
+
+	public bool PuedeModificar { get; set; }
+	public bool PuedeConfirmar { get; set; }
+	public bool PuedePublicar { get; set; }
   }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Views/Evento/Index.cshtml	Sun Jun 12 01:40:09 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Index.cshtml	Sun Jun 19 13:00:02 2011 -0300
@@ -18,8 +18,18 @@
             <td>@item.Fecha.ToShortDateString()</td>
             <td>@item.Titulo</td>
             <td>
-				@Html.ActionLink("Modificar", "Edit", new { id = item.Id })
-				@Html.ActionLink("Confirmar", "Confirm", new { id = item.Id })
+				@if (item.PuedeModificar)
+				{
+					@Html.ActionLink("Modificar", "Edit", new { id = item.Id })
+				}
+				@if (item.PuedeConfirmar)
+				{
+					@Html.ActionLink("Confirmar", "Confirm", new { id = item.Id })
+				}
+				@if (item.PuedePublicar)
+				{
+					@Html.ActionLink("Publicar", "Publish", new { id = item.Id })
+				}
 			</td>
         </tr>
 		}