view Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents b7621309524f
children 5cc7bc973ffc
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using DataAnnotationsExtensions;

namespace AltNetHispano.Agendas.Web.Models
{
    public class EventoIndexModel
	{
		public IEnumerable<EventoDto> ProximosEventos { get; set; }
	}

	public class EventoNewModel
	{
		[Required]
		public int TipoEvento { get; set; }

		[Required]
		public string Titulo { get; set; }

		[Required]
        public Guid Ponente { get; set; }

		[Required]
		public DateTime Fecha { get; set; }

        [Required]
	    public TimeSpan Hora { get; set; }

        [Required]
        public TimeSpan Duracion { get; set; }

	    [Url]
		public string UrlInvitacion { get; set; }
	}

	public class EventoEditModel
	{
		[HiddenInput(DisplayValue = false)]
		public string Id { get; set; }

		[Required]
		public string Titulo { get; set; }

		[Required]
        public Guid Ponente { get; set; }

		[Required]
		public DateTime? Fecha { get; set; }

        [Required]
        public TimeSpan? Hora { get; set; }

        [Required]
        public TimeSpan? Duracion { get; set; }

		[Url]
		public string UrlInvitacion { get; set; }
	}

	public class EventoAgendarModel
	{
		[HiddenInput(DisplayValue = false)]
		public string Id { get; set; }

		[Required]
		public string Titulo { get; set; }

		[Required]
        public Guid Ponente { get; set; }

		[Required]
		public DateTime? Fecha { get; set; }

        [Required]
        public TimeSpan? Hora { get; set; }

        [Required]
        public TimeSpan? Duracion { get; set; }

		[Url]
		public string UrlInvitacion { get; set; }
	}

	public class EventoPublicarModel
	{
		[HiddenInput(DisplayValue = false)]
		public string Id { get; set; }

		[Required]
		[HiddenInput]
		public string Titulo { get; set; }

		[Required]
		[Range(1, short.MaxValue)]
		public short NroOrden { get; set; }

		[Required]
		[Url]
		public string UrlWiki { get; set; }

		[Required]
		public TimeSpan DuracionReal { get; set; }
	}

	public class EventoDto
	{
		public string Id { get; set; }
		public string Titulo { get; set; }
		public string Estado { get; set; }
		public string Fecha { get; set; }
        public string Duracion { get; set; }

	    public bool PuedeAgendar { get; set; }
		public bool PuedeModificar { get; set; }
		public bool PuedeConfirmar { get; set; }
		public bool PuedePublicar { get; set; }
        public bool PuedeCancelar { get; set; }
        public bool PuedeDescartar { get; set; }
        public bool PuedeReAgendar { get; set; }
        public bool PuedeReProponer { get; set; }
	}
}