public Mensaje editConferencista([FromBody] UtilsJson.APersona conferencista)
        {
            Mensaje mensaje = null;

            try
            {
                if (conferencista != null)
                {
                    if (!string.IsNullOrWhiteSpace(conferencista.token))
                    {
                        if (AutenticacionToken.validateToken(conferencista.token) == 1)
                        {
                            long          id_institucion_c = (!string.IsNullOrWhiteSpace(conferencista.Ainstitucion)) ? long.Parse(conferencista.Ainstitucion) : 0;
                            Institucion   institucion      = _repositorio.Get <Institucion>(id_institucion_c);
                            Conferencista conferencistaDB  = _repositorio.Get <Conferencista>(conferencista.id);
                            if (institucion != null && conferencistaDB != null)
                            {
                                if (AutenticacionToken.validateUserToken(conferencista.token, institucion.logueo.correo_electronico))
                                {
                                    //datos personales
                                    string tipo_identificacion = validarTipoIdentificacion(conferencista.tipo_identificacion);
                                    string identificacion      = conferencista.identificacion;
                                    string nombre_persona      = conferencista.nombre;
                                    string apellido_persona    = conferencista.apellido;
                                    string correo_persona      = conferencista.correo_electronico;
                                    string urlCvlac            = conferencista.urlCvlac;
                                    string perfil = conferencista.perfil_profesional;
                                    string foto   = conferencista.foto;

                                    if (tipo_identificacion != null)
                                    {
                                        Imagen newImagen = null;
                                        if (!string.IsNullOrWhiteSpace(foto))
                                        {
                                            if (conferencistaDB.persona.foto != null)
                                            {
                                                conferencistaDB.persona.foto.imagenBase64 = foto;
                                            }
                                            else
                                            {
                                                newImagen = new Imagen {
                                                    imagenBase64 = foto
                                                };
                                                conferencistaDB.persona.foto = newImagen;
                                            }
                                        }
                                        conferencistaDB.persona.tipo_identificacion = tipo_identificacion;
                                        conferencistaDB.persona.identificacion      = identificacion;
                                        conferencistaDB.persona.nombre             = nombre_persona;
                                        conferencistaDB.persona.apellido           = apellido_persona;
                                        conferencistaDB.persona.correo_electronico = correo_persona;
                                        conferencistaDB.persona.urlCvlac           = urlCvlac;
                                        conferencistaDB.persona.perfil_profesional = perfil;
                                        conferencistaDB.fecha_ult_modificacion     = DateTime.Now;
                                        //Almaceno o actualizo la salaMesa
                                        _repositorio.SaveOrUpdate <Conferencista>(conferencistaDB);

                                        mensaje = new Mensaje(EnumTipoMensaje.Notificacion, "Notificación", "Conferencista editado exitosamente.");
                                    }
                                    else
                                    {
                                        mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "El tipo de identificacion no existe. verifique que el valor sea valido");
                                    }
                                }
                                else
                                {
                                    mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No cuenta con los privilegios suficientes");
                                }
                            }
                            else
                            {
                                mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No se encontro la sala solicitada o esta asociada a otra institucion.");
                            }
                        }
                        else
                        {
                            mensaje = new Mensaje(EnumTipoMensaje.Expiracion, "Error", "La sesion actual ha expirado. Inicie sesion");
                        }
                    }
                    else
                    {
                        mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No cuenta con los privilegios suficientes");
                    }
                }
                else
                {
                    mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No se puede insertar un objeto nulo");
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                var sb = new System.Text.StringBuilder();
                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                        sb.AppendLine();
                    }
                }
                mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", sb.ToString());
                SystemLog log = new SystemLog();
                log.ErrorLog(sb.ToString());
                throw new Exception(sb.ToString());
            }
            return(mensaje);
        }
        public Mensaje createConferencista([FromBody]UtilsJson.APersona conferencista)
        {
            Mensaje mensaje = null;

            try
            {
                if (conferencista != null)
                {
                    if (!string.IsNullOrWhiteSpace(conferencista.token))
                    {
                        if (AutenticacionToken.validateToken(conferencista.token) == 1)
                        {
                            long id_institucion_c=(!string.IsNullOrWhiteSpace(conferencista.Ainstitucion)) ? long.Parse(conferencista.Ainstitucion) : 0;
                            Institucion institucion = _repositorio.Get<Institucion>(id_institucion_c);
                            if (institucion != null)
                            {
                                if (AutenticacionToken.validateUserToken(conferencista.token, institucion.logueo.correo_electronico))
                                {
                                    //datos personales
                                    string tipo_identificacion = validarTipoIdentificacion(conferencista.tipo_identificacion);
                                    string identificacion = conferencista.identificacion;
                                    string nombre_persona = conferencista.nombre;
                                    string apellido_persona = conferencista.apellido;
                                    string correo_persona = conferencista.correo_electronico;
                                    string urlCvlac = conferencista.urlCvlac;
                                    string perfil=conferencista.perfil_profesional;
                                    string foto=conferencista.foto;
                                    if (tipo_identificacion != null)
                                    {

                                        Imagen newImagen = null;
                                        if (!string.IsNullOrWhiteSpace(foto))
                                        {
                                            newImagen = new Imagen { imagenBase64 = foto };
                                        }
                                        Conferencista newConferencista = new Conferencista
                                        {
                                            institucion = institucion,
                                            persona = new Persona
                                            {
                                                nombre = nombre_persona,
                                                apellido = apellido_persona,
                                                tipo_identificacion = tipo_identificacion,
                                                identificacion = identificacion,
                                                correo_electronico = correo_persona,
                                                urlCvlac = urlCvlac,
                                                perfil_profesional = perfil,
                                                foto = newImagen,
                                                fecha_ult_modificacion=DateTime.Now
                                            }
                                        };
                                        //Almaceno o actualizo la salaMesa
                                        _repositorio.SaveOrUpdate<Conferencista>(newConferencista);
                                        mensaje = new Mensaje(EnumTipoMensaje.Notificacion, "Notificación", "Conferencista registrada exitosamente.");
                                    }
                                    else
                                    {
                                        mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "El tipo de identificacion no existe. verifique que el valor sea valido");
                                    }
                                }
                                else
                                {
                                    mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No cuenta con los privilegios suficientes");
                                }
                            }
                            else
                            {
                                mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No cuenta con los privilegios suficientes para modificar estos campos.");
                            }
                        }
                        else
                        {
                            mensaje = new Mensaje(EnumTipoMensaje.Expiracion, "Error", "La sesion actual ha expirado. Inicie sesion");
                        }
                    }
                    else
                    {
                        mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No cuenta con los privilegios suficientes");
                    }
                }
                else
                {
                    mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", "No se puede insertar un objeto nulo");
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                var sb = new System.Text.StringBuilder();
                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                        sb.AppendLine();
                    }
                }
                mensaje = new Mensaje(EnumTipoMensaje.Error, "Error", sb.ToString());
                SystemLog log = new SystemLog();
                log.ErrorLog(sb.ToString());
                throw new Exception(sb.ToString());
            }
            return mensaje;

        }