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() } }); } }