Example #1
0
        public ActionResult Create([Bind(Include = "id_evento,id_categoria,nombre,descripcion,fecha_evento,hora_desde,hora_hasta,duracion,precio,invitados,estado,fecha_creado")] EventoModels evento_)
        {
            DateTime hd       = DateTime.Parse(evento_.hora_desde);
            DateTime hh       = DateTime.Parse(evento_.hora_hasta);
            int      duracion = int.Parse((hh - hd).TotalHours.ToString());

            if (ModelState.IsValid)
            {
                Evento ev = new Evento();
                ev.id_evento    = Guid.NewGuid();
                ev.id_categoria = evento_.id_categoria;
                ev.nombre       = evento_.nombre;
                ev.descripcion  = evento_.descripcion;
                ev.fecha_evento = evento_.fecha_evento;
                ev.hora_desde   = evento_.hora_desde;
                ev.hora_hasta   = evento_.hora_hasta;
                ev.precio       = evento_.precio;
                ev.duracion     = duracion;
                ev.invitados    = evento_.invitados;

                ev.fecha_creado = DateTime.Now;
                db.Evento.Add(ev);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.id_categoria = new SelectList(db.CategoriaCurso, "id_categoria", "nombre", evento_.id_categoria);
            return(View(evento_));
        }
        // GET: Evento/Create
        public ActionResult Create()
        {
            EventoModels ev = new EventoModels();

            ev.fecha_evento      = DateTime.Today;
            ev.hora_desde_string = "8:00 a. m.";
            ev.hora_hasta_string = "8:00 a. m.";
            ViewBag.id_categoria = new SelectList(db.CategoriaCurso, "id_categoria", "nombre").OrderBy(o => o.Text);
            return(View(ev));
        }
        public ActionResult AddInvitado(EventoModels evento_)
        {
            if (!string.IsNullOrEmpty(evento_.invitados))
            {
                //validamos los emails
                bool emailerror = false;
                foreach (var i in evento_.invitados.Split(','))
                {
                    if (!IsValidEmail(i.Trim()))
                    {
                        emailerror = true;
                        break;
                    }
                }
                if (emailerror != true)
                {
                    List <Invitado> liv = new List <Invitado>();
                    Evento          ev  = db.Evento.Where(r => r.id_evento == evento_.id_evento).SingleOrDefault();
                    foreach (var i in evento_.invitados.Split(','))
                    {
                        Invitado iv = new Invitado();
                        iv.id_invitado       = Guid.NewGuid();
                        iv.email             = i;
                        iv.id_evento         = evento_.id_evento;
                        iv.asistio           = false;
                        iv.codigo_asistencia = Guid.NewGuid();
                        iv.ip = string.Empty;

                        liv.Add(iv);
                    }
                    if (liv.Count() != 0)
                    {
                        db.Invitado.AddRange(liv);

                        db.SaveChanges();
                    }

                    foreach (var e in liv)
                    {
                        //DESPUES DE CREAR EL EVENTO SE ENVIAN LAS INVITACIONES
                        SendInvitation(e.email, ev.nombre, ev.fecha_evento, ev.descripcion, ev.id_evento.ToString(), ev.hora_desde.ToShortTimeString(), ev.hora_hasta.ToShortTimeString(), e);
                    }
                }
                else
                {
                    //si algun email esta mal formateado
                    evento_.ShowError    = true;
                    evento_.Clean        = false;
                    evento_.type         = TypeError.warning;
                    evento_.title        = Titles.Atención;
                    evento_.ErrorMessage = rm.GetString("mail_error");
                }
            }
            return(RedirectToAction("Edit", new { id = evento_.id_evento }));
        }
        // GET: Evento/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Evento evento = db.Evento.Find(id);

            EventoModels em = new EventoModels();

            em.id_evento    = id.Value;
            em.id_categoria = evento.id_categoria;
            em.nombre       = evento.nombre;
            em.descripcion  = evento.descripcion;
            em.fecha_evento = evento.fecha_evento;
            em.hora_desde   = evento.hora_desde;
            em.hora_hasta   = evento.hora_hasta;
            //em.invitados = evento.invitados;
            em.estado            = evento.estado;
            em.precio            = evento.precio.ToString();
            em.hora_desde_string = evento.hora_desde.ToShortTimeString();
            em.hora_hasta_string = evento.hora_hasta.ToShortTimeString();

            em.lista_invitados = evento.Invitado.Select(i => new BasicModel
            {
                id    = i.id_invitado,
                value = i.email
            }).ToList();

            if (evento == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id_categoria = new SelectList(db.CategoriaCurso, "id_categoria", "nombre", evento.id_categoria);
            return(View(em));
        }
 public EdificiosController(ApplicationDbContext context)
 {
     _context         = context;
     claseEdificio    = new EdificioModels(context);
     claselistaevento = new EventoModels(context);
 }
        public ActionResult Create([Bind(Include = "id_evento,id_categoria,nombre,descripcion,fecha_evento,hora_desde,hora_hasta,duracion,precio,invitados,estado,fecha_creado")] EventoModels evento_)
        {
            try
            {
                DateTime hd       = evento_.hora_desde;
                DateTime hh       = evento_.hora_hasta;
                decimal  duracion = decimal.Parse((hh - hd).TotalHours.ToString());

                evento_.hora_desde_string = evento_.hora_desde.ToShortTimeString();
                evento_.hora_hasta_string = evento_.hora_hasta.ToShortTimeString();

                if (ModelState.IsValid)
                {
                    //validamos los emails
                    bool emailerror = false;
                    foreach (var i in evento_.invitados.Split(','))
                    {
                        if (!IsValidEmail(i.Trim()))
                        {
                            emailerror = true;
                            break;
                        }
                    }


                    if (hh > hd)
                    {
                        evento_.fecha_evento = evento_.fecha_evento.AddHours(1);

                        List <Evento> lev = db.Evento.Where(e => e.fecha_evento == evento_.fecha_evento && e.estado == true &&
                                                            ((e.hora_desde.Hour <hd.Hour && e.hora_hasta.Hour> hd.Hour) ||
                                                             (e.hora_desde.Hour <hh.Hour && e.hora_hasta.Hour> hh.Hour) ||
                                                             (e.hora_desde.Hour >= hd.Hour && e.hora_hasta.Hour <= hh.Hour))
                                                            ).ToList();
                        if (lev.Count() == 0)
                        {
                            if (emailerror != true)
                            {
                                if ((duracion % 1) == 0)
                                {
                                    //si llega hasta aqui es que no hay validaciones fallidas
                                    Evento ev = new Evento();
                                    ev.id_evento    = Guid.NewGuid();
                                    ev.id_categoria = evento_.id_categoria;
                                    ev.nombre       = evento_.nombre;
                                    ev.descripcion  = evento_.descripcion;
                                    ev.fecha_evento = evento_.fecha_evento;
                                    ev.hora_desde   = hd;
                                    ev.hora_hasta   = hh;
                                    ev.precio       = double.Parse(evento_.precio);
                                    ev.duracion     = int.Parse(duracion.ToString());
                                    ev.invitados    = evento_.invitados;
                                    ev.estado       = evento_.estado;

                                    ev.fecha_creado = DateTime.Now;
                                    db.Evento.Add(ev);

                                    List <Invitado> liv = new List <Invitado>();
                                    foreach (var i in evento_.invitados.Split(','))
                                    {
                                        Invitado iv = new Invitado();
                                        iv.id_invitado       = Guid.NewGuid();
                                        iv.email             = i;
                                        iv.id_evento         = ev.id_evento;
                                        iv.asistio           = false;
                                        iv.codigo_asistencia = Guid.NewGuid();
                                        iv.ip = string.Empty;

                                        liv.Add(iv);
                                    }
                                    if (liv.Count() != 0)
                                    {
                                        db.Invitado.AddRange(liv);
                                    }

                                    db.SaveChanges();

                                    foreach (var e in liv)
                                    {
                                        //DESPUES DE CREAR EL EVENTO SE ENVIAN LAS INVITACIONES
                                        SendInvitation(e.email, ev.nombre, ev.fecha_evento, ev.descripcion, ev.id_evento.ToString(), ev.hora_desde.ToShortTimeString(), ev.hora_hasta.ToShortTimeString(), e);
                                    }

                                    evento_.hora_desde_string = "8:00 a. m.";
                                    evento_.hora_hasta_string = "8:00 a. m.";

                                    ev.fecha_evento      = DateTime.Today;
                                    evento_.ShowError    = true;
                                    evento_.Clean        = true;
                                    evento_.type         = TypeError.success;
                                    evento_.title        = Titles.Exito;
                                    evento_.ErrorMessage = rm.GetString("save");
                                }
                                else
                                {
                                    //si algun email esta mal formateado
                                    evento_.ShowError    = true;
                                    evento_.Clean        = false;
                                    evento_.type         = TypeError.warning;
                                    evento_.title        = Titles.Atención;
                                    evento_.ErrorMessage = rm.GetString("horas_Completas");
                                }
                            }
                            else
                            {
                                //si algun email esta mal formateado
                                evento_.ShowError    = true;
                                evento_.Clean        = false;
                                evento_.type         = TypeError.warning;
                                evento_.title        = Titles.Atención;
                                evento_.ErrorMessage = rm.GetString("mail_error");
                            }
                        }
                        else
                        {
                            //si no coincide ninguna fecha con horas
                            evento_.ShowError    = true;
                            evento_.Clean        = false;
                            evento_.type         = TypeError.error;
                            evento_.title        = Titles.Error;
                            evento_.ErrorMessage = rm.GetString("horario_error");
                        }
                    }
                    else
                    {
                        //si las horas son iguales o la hora desde es mayor que la hora hasta
                        evento_.ShowError    = true;
                        evento_.Clean        = false;
                        evento_.type         = TypeError.error;
                        evento_.title        = Titles.Error;
                        evento_.ErrorMessage = rm.GetString("hora_error");
                    }
                }
            }
            catch (Exception ex)
            {
                evento_.ShowError    = true;
                evento_.type         = TypeError.error;
                evento_.ErrorMessage = ex.Message;
            }
            ViewBag.id_categoria = new SelectList(db.CategoriaCurso, "id_categoria", "nombre", evento_.id_categoria);

            return(View(evento_));
        }
        public ActionResult Edit([Bind(Include = "id_evento,id_categoria,nombre,descripcion,fecha_evento,hora_desde,hora_hasta,duracion,precio,estado,fecha_creado")] EventoModels evento_)
        {
            try
            {
                DateTime hd       = evento_.hora_desde;
                DateTime hh       = evento_.hora_hasta;
                decimal  duracion = decimal.Parse((hh - hd).TotalHours.ToString());

                evento_.hora_desde_string = evento_.hora_desde.ToShortTimeString();
                evento_.hora_hasta_string = evento_.hora_hasta.ToShortTimeString();
                //evento_.invitados = "*****@*****.**";

                if (ModelState.IsValid)
                {
                    if (hh > hd)
                    {
                        evento_.fecha_evento = evento_.fecha_evento.AddHours(1);

                        List <Evento> lev = db.Evento.Where(e => e.id_evento != evento_.id_evento &&
                                                            e.fecha_evento == evento_.fecha_evento &&
                                                            e.estado == true &&
                                                            ((e.hora_desde.Hour <hd.Hour && e.hora_hasta.Hour> hd.Hour) ||
                                                             (e.hora_desde.Hour <hh.Hour && e.hora_hasta.Hour> hh.Hour) ||
                                                             (e.hora_desde.Hour >= hd.Hour && e.hora_hasta.Hour <= hh.Hour))
                                                            ).ToList();
                        if (lev.Count() == 0)
                        {
                            if ((duracion % 1) == 0)
                            {
                                //si llega hasta aqui es que no hay validaciones fallidas
                                Evento ev = db.Evento.Where(t => t.id_evento == evento_.id_evento).SingleOrDefault();
                                ev.id_categoria = evento_.id_categoria;
                                ev.nombre       = evento_.nombre;
                                ev.descripcion  = evento_.descripcion;
                                ev.fecha_evento = evento_.fecha_evento;
                                ev.hora_desde   = hd;
                                ev.hora_hasta   = hh;
                                ev.precio       = double.Parse(evento_.precio);
                                ev.duracion     = int.Parse(duracion.ToString());
                                ev.estado       = evento_.estado;

                                db.SaveChanges();

                                //evento_.hora_desde_string = "";
                                //evento_.hora_hasta_string = "";

                                evento_.ShowError    = true;
                                evento_.Clean        = false;
                                evento_.type         = TypeError.success;
                                evento_.title        = Titles.Exito;
                                evento_.ErrorMessage = rm.GetString("edit");
                            }
                            else
                            {
                                //si algun email esta mal formateado
                                evento_.ShowError    = true;
                                evento_.Clean        = false;
                                evento_.type         = TypeError.warning;
                                evento_.title        = Titles.Atención;
                                evento_.ErrorMessage = rm.GetString("horas_Completas");
                            }
                        }
                        else
                        {
                            //si no coincide ninguna fecha con horas
                            evento_.ShowError    = true;
                            evento_.Clean        = false;
                            evento_.type         = TypeError.error;
                            evento_.title        = Titles.Error;
                            evento_.ErrorMessage = rm.GetString("horario_error");
                        }
                    }
                    else
                    {
                        //si las horas son iguales o la hora desde es mayor que la hora hasta
                        evento_.ShowError    = true;
                        evento_.Clean        = false;
                        evento_.type         = TypeError.error;
                        evento_.title        = Titles.Error;
                        evento_.ErrorMessage = rm.GetString("hora_error");
                    }
                }
            }
            catch (Exception ex)
            {
                evento_.ShowError    = true;
                evento_.type         = TypeError.error;
                evento_.ErrorMessage = ex.Message;
            }
            ViewBag.id_categoria = new SelectList(db.CategoriaCurso, "id_categoria", "nombre", evento_.id_categoria);

            evento_.lista_invitados = db.Invitado.Where(t => t.id_evento == evento_.id_evento).Select(i => new BasicModel
            {
                id    = i.id_invitado,
                value = i.email
            }).ToList();

            return(View(evento_));
        }
Example #8
0
 public EventosController(ApplicationDbContext context)
 {
     _context    = context;
     claseEvento = new EventoModels(context);
 }