view Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents 24e9488ac152
children 2434c2323f3d
line wrap: on
line source

using System;
using System.Linq;
using System.Web.Mvc;
using AltNetHispano.Agendas.Factories;
using AltNetHispano.Agendas.Web.Models;

namespace AltNetHispano.Agendas.Web.Controllers
{
    public class EventoController : Controller
    {
        public ActionResult Index()
        {
			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 }
			};
			
            return View(model);
        }

		[Authorize]
		public ActionResult New()
        {
            return View();
        }

        [HttpPost]
		[Authorize]
		public ActionResult New(EventoNewModel model)
        {
            if (ModelState.IsValid)
            {
                var agenda = AgendaFactory.GetAgenda();

                var r = agenda.Agendar(model.Titulo, model.Ponente, model.Fecha, 
                  model.UrlInvitacion);
				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 evento = agenda.GetEvento(new Guid(id));
			
			var model = new EventoEditModel
			            	{
			            		Id = id,
			            		Titulo = evento.Titulo,
			            		Ponente = evento.Persona != null ? evento.Persona.Nombre : string.Empty,
			            		Fecha = evento.Fecha,
                      UrlInvitacion = evento.UrlInvitacion
			            	};
			return View(model);
		}

    	[HttpPost]
		[Authorize]
		public ActionResult Edit(EventoEditModel 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)
					return RedirectToAction("Index");
				ModelState.AddModelError("error", r.ToString());
			}
			return View(model);
		}
    }
}