public JsonResult GuardarDatosPrincipales(String NombreEvento, String LugarEvento, int Monto, DateTime FechaInicio, DateTime FechaTermino, int IdResponsable, String TipoEvento) { try { Solicitud solicitud = new Solicitud() { NombreEvento = NombreEvento, LugarEvento = LugarEvento, Monto = Monto, FechaInicioEvento = FechaInicio, FechaTerminoEvento = FechaTermino, TipoEvento = TipoEvento, FechaCreacion = DateTime.Now, FechaFinPdf = DateTime.Now, FechaModificacion = DateTime.Now }; Proceso proceso = HttpContext.Session.GetComplexData <Proceso>("Proceso"); Solicitud solExistente = null; if (proceso != null) { solExistente = proceso.Solicitud; } if (solExistente == null) { //Usuario usuario = HttpContext.Session.GetComplexData<Usuario>("DatosUsuario"); String tipoUsuario = HttpContext.Session.GetString("TipoUsuario"); /*Se asume que el usuario es un representante*/ Usuario usuario = HttpContext.Session.GetComplexData <Usuario>("DatosUsuario"); List <Organizacion> organizaciones = ConsultaUsuario.LeerOrganizacion(usuario.Id, tipoUsuario); Organizacion organizacion = organizaciones[0]; solicitud.Id = ConsultaSolicitud.CrearSolicitud(solicitud); //Creacion de la solicitud int idOrganizacion = organizacion.Id; int estado = 1; /*Representa que la solicitud esta en estado de edicion*/ solicitud.RefProceso = ConsultaSolicitud.CrearProcesoFondo(idOrganizacion, solicitud.Id, estado, IdResponsable); //Agrega el estado en que se encuentra la solicitud ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(IdResponsable, "Deshabilitado"); proceso = new Proceso() { Responsable = ConsultaUsuario.LeerRepresentante(IdResponsable), Solicitud = solicitud }; HttpContext.Session.SetComplexData("Proceso", proceso); return(Json(new { validacion = true, mensaje = "Se han guardado los datos satisfactoriamente.", solicitud = proceso.Solicitud })); } else { Boolean DatosModificados = VerificarCambiosSolicitud(solExistente, solicitud); if (DatosModificados) { solicitud.Id = solExistente.Id; ConsultaSolicitud.ModificarSolicitud(solicitud); ConsultaSolicitud.ModificarResponsableFondo(solicitud.Id, IdResponsable); if (proceso.Responsable.Id != IdResponsable) { ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(proceso.Responsable.Id, "Habilitado"); ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(IdResponsable, "Desabilitado"); proceso.Responsable = ConsultaUsuario.LeerRepresentante(IdResponsable); } proceso.Solicitud = solicitud; HttpContext.Session.SetComplexData("Proceso", proceso); return(Json(new { validacion = true, mensaje = "Se han guardado los datos satisfactoriamente.", solicitud = proceso.Solicitud })); } else if (!DatosModificados) { return(Json(new { validacion = true, mensaje = "No existen cambios en la solicitud.", solicitud = proceso.Solicitud })); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(Json(new { validacion = false, mensaje = "No se han guardado los datos. Verifique los campos y vuelva a intentarlo nuevamente." })); }