Exemplo n.º 1
0
        public JsonResult Guardar(string evento)
        {
            try
            {
                //Convcertimos el objeto json a Album
                var eventobo = Newtonsoft.Json.JsonConvert.DeserializeObject <Evento>(evento, new IsoDateTimeConverter {
                    DateTimeFormat = "dd/MM/yyyy"
                });
                //  Get all files from Request object
                HttpFileCollectionBase files = Request.Files;
                //Si files tiene al menos un archivo
                //siempre se guarden las imagenes por si se presenta que el usuario sube otra imagen pero con el mismo nombre.
                if (files.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        var file = files[i];

                        var fileName = Path.GetFileName(file.FileName);

                        var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
                        file.SaveAs(path);
                        eventobo.Imagen = fileName;
                    }
                }
                else
                {
                    //validamos si hay algo en sessionevento
                    //si hay algo significa que es una modificacion de lo contrario en una ccreacion
                    // si hay algo solo pasamos la misma url de la imagen de lo contrario ponemos la que esta por defecto.
                    var eventosesion = (Evento)Session["sessionEvento"];
                    if (eventosesion != null)
                    {
                        eventobo.Imagen = eventosesion.Imagen;
                    }
                    else
                    {
                        //si no tiene imagenes asignamos uno como por defecto
                        eventobo.Imagen = "~/Images/Album/album.jpg";
                    }
                    //if (string.IsNullOrEmpty(eventobo.Imagen))
                }
                //Valida(albumbo);
                ValidaEvento(eventobo);

                //ahora seteamos a texto en blanco los campos no obligatorios y que vengan en null
                eventobo.Promocion          = (String.IsNullOrEmpty(eventobo.Promocion)) ? "" : eventobo.Promocion;
                eventobo.Preventa           = (String.IsNullOrEmpty(eventobo.Preventa.ToString())) ? 0 : eventobo.Preventa;
                eventobo.LinkEventoFacebook = (String.IsNullOrEmpty(eventobo.LinkEventoFacebook)) ? "" : eventobo.LinkEventoFacebook;
                eventobo.LinkComprarBoleto  = (String.IsNullOrEmpty(eventobo.LinkComprarBoleto)) ? "" : eventobo.LinkComprarBoleto;

                // por que viene null este? no es correcto debe poderse popular al objeto
                eventobo.Perfil.PerfilId = 3;
                EventoDAO.Save(eventobo);
                //si fue exitoso entonces se elimina el archivo que teniamos guardado.

                var EventoEliminar = (Evento)Session["sessionEvento"];
                if (EventoEliminar != null)
                {
                    System.IO.File.Delete(EventoEliminar.Imagen);
                }
                return(new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new { Mensaje = "¡Proceso realizado correctamente!" }
                });
            }
            catch (Exception ex)
            {
                return(new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new { Mensaje = "Error al guardar: " + ex.Message.ToString() }
                });
            }
        }