public static object CrearUsuario(string NombresI, string NombresII, string ApellidosI, string ApellidosII, int TIPO_IDENTIFICACION, string NUMERO_IDENTIFICACION,

        int MunExpedicion, DateTime fechaExpedicion, string Genero, DateTime fechaNacimiento, int MunNacimiento, int Nacionalidad, int munResidencia, string DireccionResidencia,

        string telefono,
       string Email, string passwordQuestion, string SecurityAnswer)
    {
        try
        {
            var IdentificadorOperador = "identificadorOperador".GetFromAppCfg();

            string PERFILP = "USUARIOS";
            string Retorno = "";
            string status = "";
            DateTime fechExpedicion = default(DateTime);
            DateTime fechNacimiento = default(DateTime);
            try
            {

                fechExpedicion = Convert.ToDateTime(fechaExpedicion, CultureInfo.InvariantCulture);
            }
            catch (Exception ex)
            {
                AppLog.Write(" Error convirtiendo la fecha de expedicionInicial. ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");
                status = "error";
                Retorno = "Ingrese la fecha de expedición Valida";
                return new
                {
                    status = status,
                    mensaje = Retorno
                };

            }

            try
            {

                fechNacimiento = Convert.ToDateTime(fechaExpedicion, CultureInfo.InvariantCulture);
            }
            catch (Exception ex)
            {
                AppLog.Write(" Error convirtiendo la fecha de Nacimiento. ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");

                status = "error";
                Retorno = "Ingrese la fecha de nacimiento Valida";
                return new
                {
                    status = status,
                    mensaje = Retorno
                };

            }

            #region ("Registro")

            Centralizador.Service1Client serviciocentralizador = new Centralizador.Service1Client();
            Centralizador.Usuario nuevoUsuario = new Centralizador.Usuario();

            nuevoUsuario.primerNombre = NombresI;
            nuevoUsuario.segundoNombre = NombresII;
            nuevoUsuario.segundoApellido = ApellidosII;
            nuevoUsuario.primerApellido = ApellidosI;
            nuevoUsuario.idTipoIdentificacion = TIPO_IDENTIFICACION;
            nuevoUsuario.numeroIdentificacion = NUMERO_IDENTIFICACION;
            nuevoUsuario.idMunicipioExpedicionDocumento = MunExpedicion;

            nuevoUsuario.fechaExpedicion = fechExpedicion;
            nuevoUsuario.genero = Genero;
            nuevoUsuario.fechaNacimiento = fechNacimiento;
            nuevoUsuario.idMunicipioNacimiento = MunNacimiento;

            nuevoUsuario.idPaisNacionalidad = Nacionalidad;
            nuevoUsuario.idMunicipioResidencia = munResidencia;
            nuevoUsuario.idMunicipioNotificacionCorrespondencia = munResidencia;
            nuevoUsuario.direccionNotificacionCorrespondencia = DireccionResidencia;
            nuevoUsuario.direccionResidencia = DireccionResidencia;
            nuevoUsuario.idMunicipioLaboral = munResidencia;
            nuevoUsuario.estadoCivil = "S";
            nuevoUsuario.correoElectronico = Email;
            nuevoUsuario.telefono = telefono;
            nuevoUsuario.idOperador = 0;
            AppLog.Write(" inicio consulta si existe el usuario. ", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

            var resultado = serviciocentralizador.ValidarPorIdentificacionYTipo(nuevoUsuario.numeroIdentificacion, nuevoUsuario.idTipoIdentificacion, IdentificadorOperador);

            AppLog.Write(" fin consulta si existe el usuario Resutlado:" + resultado.ToString(), AppLog.LogMessageType.Info, null, "OperadorCarpeta");
            var prefijo = PrefijoEnumTIPO_IDENTIFICACION.EnumToTIPO_IDENTIFICACION(TIPO_IDENTIFICACION);
            string UserName = prefijo + NUMERO_IDENTIFICACION;
            if (!resultado.Existe && !resultado.MismoOperador)
            {

                #region creacion de usuario en en sistema operador
                //

                MembershipUser a = Membership.GetUser(UserName);

                string porEmail = string.Empty;
                porEmail = Membership.GetUserNameByEmail(Email);
                if (a == null && string.IsNullOrEmpty(porEmail))
                {
                    #region ("Creacion")
                    MembershipCreateStatus createStatus;
                    MembershipUser newUser =
                               Membership.CreateUser(prefijo + NUMERO_IDENTIFICACION, NUMERO_IDENTIFICACION,
                                                     Email, passwordQuestion,
                                                     SecurityAnswer, true,
                                                     out createStatus);

                    switch (createStatus)
                    {
                        case MembershipCreateStatus.Success:
                            Roles.AddUserToRole(UserName, PERFILP);

                            var Usuarioregistrado = serviciocentralizador.RegistrarUsuario(nuevoUsuario, IdentificadorOperador);
                            DaoUsuario registroAPP = new DaoUsuario();
                            var datosTIpo = new TipoidentificacionDao().obtenerTipos();
                            var tipoID = datosTIpo.Where(x => x.id_tipoId == TIPO_IDENTIFICACION).Select(x => x.abreviado_tipoId).First();
                            string CarpetaInicial = tipoID + NUMERO_IDENTIFICACION;
                            AppLog.Write(" Inicio Creacion Usuario", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

                            GestorRegistro gestorRegistro = new GestorRegistro();

                            GestionUsuario gestor = new GestionUsuario();

                            try
                            {
                                var registro = gestorRegistro.RegistrarUsuario(newUser.ProviderUserKey.ToString(),
                                 Usuarioregistrado.UUID.ToString(),
                                 "OPERADOR_REPOSITORY_USER",
                                 CarpetaInicial, Usuarioregistrado.primerNombre + " " + Usuarioregistrado.segundoNombre,
                                 Usuarioregistrado.primerApellido + " " + Usuarioregistrado.segundoApellido,
                                 Usuarioregistrado.idTipoIdentificacion, Usuarioregistrado.numeroIdentificacion);

                            }
                            catch (Exception ex)
                            {
                                #region se eliminan los usuarios
                                gestor.DeleteUser(UserName);
                                serviciocentralizador.EliminarUsuario(Usuarioregistrado.UUID, IdentificadorOperador);
                                #endregion
                                AppLog.Write(" Error Creacion Usuario operador", AppLog.LogMessageType.Info, ex, "OperadorCarpeta");
                                status = "Error";
                                Retorno = "Hubo un error desconocido, la cuenta de usuario no fue creado.";
                                return new
                                {
                                    status = status,
                                    mensaje = Retorno
                                };

                            }
                            AppLog.Write(" Fin Creacion Usuario operador", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

                            //var usuaripoRegistrarApp = registroAPP.RegistrarUsuario(
                            //    newUser.ProviderUserKey.ToString(),
                            //    Usuarioregistrado.UUID.ToString(),
                            //    "OPERADOR_REPOSITORY_USER",
                            //    CarpetaInicial, Usuarioregistrado.primerNombre + " " + Usuarioregistrado.segundoNombre,
                            //    Usuarioregistrado.primerApellido + " " + Usuarioregistrado.segundoApellido,
                            //    Usuarioregistrado.idTipoIdentificacion, Usuarioregistrado.numeroIdentificacion );
                            //AppLog.Write(" Fin Creacion Usuario", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

                            #region crear carpeta en el servidor
                            //var fileControl = new FileControl(Int32.Parse("MaxFileSize".GetFromAppCfg()));

                            //fileControl._CreateFolderInFTP(CarpetaInicial, "OPERADOR_REPOSITORY_USER");
                            //fileControl._CreateFolderInFTP(CarpetaInicial+@"/ADJUNTOS", "OPERADOR_REPOSITORY_USER");

                            #endregion

                            #region Enviar Correo de confirmacion de creacion de cuenta.
                            var enviar = new Correos().EnviarEmailCreacionDeUsuario(Email);
                            #endregion

                            status = "OK";
                            Retorno = "La cuenta del usuario, ha sido creada con exito";

                            break;

                        case MembershipCreateStatus.DuplicateUserName:
                            status = "Existe";
                            Retorno = "Ya existe un usuario con ese nombre de usuario";
                            //CreateAccountResults.Text = "Ya existe un usuario con ese nombre de usuario";//"There already exists a user with this username.";
                            break;

                        case MembershipCreateStatus.DuplicateEmail:
                            status = "Duplicado";
                            Retorno = "Ya existe un usuario con este email.";// "There already exists a user with this email address.";
                            break;

                        case MembershipCreateStatus.InvalidEmail:
                            status = "email";
                            Retorno = "La dirección de correo electrónico que nos ha facilitado en inválida.";//"There email address you provided in invalid.";
                            break;

                        case MembershipCreateStatus.InvalidPassword:
                            status = "password";
                            Retorno = "La contraseña que ha proporcionado no es válido. Debe ser de siete caracteres y tener al menos un carácter no alfanumérico.";//"The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character.";
                            break;

                        default:
                            status = "Error";
                            Retorno = "Hubo un error desconocido, la cuenta de usuario no fue creado.";//"There was an unknown error; the user account was NOT created.";
                            break;
                    }
                    #endregion
                }
                else
                {
                    if (a != null)
                    {
                        status = "Existe";
                        Retorno = "El nombre de usuario ya existe.";
                    }
                    //        CreateAccountResults.Text = "El usuario ya existe";

                    if (!string.IsNullOrEmpty(porEmail))
                    {
                        status = "EmailCambiar";
                        Retorno = "Ingrese por favor una dirección de correo electrónico diferente.";
                    }
                }
                #endregion

            }
            else
            {

                Retorno = "El usuario Se encuentra registrado en el centralizador";
                status = "RegistradoCentralizador";

            }
            #endregion
            return new
            {
                status = status,
                mensaje = Retorno
            };
        }
        catch (Exception ex)
        {

            AppLog.Write(" Error Creacion de usuario en el sistema ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");
            return new
            {
                status = "error",
                mensaje = "Ha ocurrido un error inesperado intentelo nuevamente o mas tarde"
            };

        }
    }
    public static object ActualizarUsuario(int munResidencia, string DireccionResidencia,

        string telefono
      )
    {
        string UID = string.Empty;
        string IDENTIFICADOR_OPERADOR = string.Empty;
        try
        {

            if (Thread.CurrentPrincipal.Identity.IsAuthenticated)
            {

                Centralizador.Service1Client serviciocentralizador = new Centralizador.Service1Client();
                Centralizador.Usuario actualizarusuario = new Centralizador.Usuario();
                if (SessionHelper.GetSessionData("ID_USUARIO_CENTRALIZADOR") == null)
                {
                    AppLog.Write("La session ha terminado ", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

                    return new
                    {
                        OK = "SESSIONEND",
                        mensaje = "Su sesión ha finalizado"
                    };

                }
                UID = (string)SessionHelper.GetSessionData("ID_USUARIO_CENTRALIZADOR");
                IDENTIFICADOR_OPERADOR = (string)SessionHelper.GetSessionData("IDENTIFICADOR_OPERADOR");
                actualizarusuario.UUID = UID;
                actualizarusuario.idMunicipioResidencia = munResidencia;
                actualizarusuario.direccionResidencia = DireccionResidencia;
                actualizarusuario.telefono = telefono;

                var resultado = serviciocentralizador.ActualizarDatosUsuario(actualizarusuario, IDENTIFICADOR_OPERADOR);

                if (resultado)
                {
                    return new
                    {
                        Ok = "OK",
                        mensaje ="Se han actualizado los datos correctamente"

                    };
                }
                else {
                    return new
                    {
                        Ok = "error",
                        mensaje ="Ha ocurrido un error inesperado por favor intentelo nuevamente."

                    };

                }

            }
            else
            {
                AppLog.Write("La session ha terminado ", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

                return new
                {
                    OK = "SESSIONEND",
                    mensaje = "Su sesión ha finalizado"

                };
            }

        }
        catch (EndSessionException end)
        {
            AppLog.Write("Su session ha finalizado", AppLog.LogMessageType.Info, end, "OperadorCarpeta");
            return new { OK = "Su session ha finalizado" };
        }
        catch (Exception ex)
        {
            AppLog.Write(" Error obteniendo la informacion Inicial. ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");

            return new
            {
                OK = "Error Consultando información inicial.",
                mensaje = ex.Message + ex.StackTrace
            };
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        var fileControl = new FileControl(Int32.Parse("MaxFileSize".GetFromAppCfg()));
           // fileControl._CreateFolderInFTP(@"CC1077845378\Diego",  "OPERADOR_REPOSITORY_USER");

        string r = "<Asunto>Pruebas</Asunto><Mensaje>Pruebas</Mensaje><NombreEnvia>Centralizador</NombreEnvia><Origen><NumeroIdentificacion>1077845378</NumeroIdentificacion><tipoIdentificacion>1</tipoIdentificacion></Origen><archivos><ArchivoExpedidoPor>diego</ArchivoExpedidoPor><Contenido>asdfasfadsf</Contenido><FechaCargueArchivo>2014-10-24T00:00:00</FechaCargueArchivo><FechaExpedicionArchivo>2014-10-24T00:00:00</FechaExpedicionArchivo><FechaVigencia>2014-10-24T00:00:00</FechaVigencia><NombreArchivo>diego.png</NombreArchivo></archivos><archivos><ArchivoExpedidoPor>diego</ArchivoExpedidoPor><Contenido>asdfasfadsf</Contenido><FechaCargueArchivo>2014-10-24T00:00:00</FechaCargueArchivo><FechaExpedicionArchivo>2014-10-24T00:00:00</FechaExpedicionArchivo><FechaVigencia>2014-10-24T00:00:00</FechaVigencia><NombreArchivo>diego.png</NombreArchivo></archivos><destinatarios><NumeroIdentificacion>10777845378</NumeroIdentificacion><tipoIdentificacion>1</tipoIdentificacion></destinatarios>";

         XmlDocument xDoc = new XmlDocument();
            xDoc.LoadXml(r);

            XmlNodeList destinos = xDoc.GetElementsByTagName("Destinatarios");

        XmlNodeList archivo = xDoc.GetElementsByTagName("archivo");
        XmlNodeList xnList = xDoc.SelectNodes("archivo");

        ISoapMessage a = new ISoapMessage();
        crearSOAP(new Operador.Entity.TransferenciaMensajes());
        a.Uri = "http://localhost/servicios/servicioweb/Service1.asmx";
        a.ContentXml = @"<?xml version=""1.0"" encoding=""utf-8""?>
             <soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns=""http://tempuri.org/"">
               <soapenv:Header/>
               <soapenv:Body>
                  <ValidarExistenciaUsuario>
                     <!--Optional:-->
                     <usuario>
                        <!--Optional:-->
                        <UUID>mmmm</UUID>
                        <idTipoIdentificacion>1</idTipoIdentificacion>
                        <!--Optional:-->
                        <numeroIdentificacion>1077845378</numeroIdentificacion>
                        <idMunicipioExpedicionDocumento>1</idMunicipioExpedicionDocumento>
                        <fechaExpedicion>2015-06-30</fechaExpedicion>
                        <!--Optional:-->
                        <primerApellido>?</primerApellido>
                        <!--Optional:-->
                        <segundoApellido>?</segundoApellido>
                        <!--Optional:-->
                        <primerNombre>?</primerNombre>
                        <!--Optional:-->
                        <segundoNombre>?</segundoNombre>
                        <!--Optional:-->
                        <genero>m</genero>
                        <fechaNacimiento>2015-06-30</fechaNacimiento>
                        <idMunicipioNacimiento>1</idMunicipioNacimiento>
                        <idPaisNacionalidad>233</idPaisNacionalidad>
                        <idMunicipioResidencia>1</idMunicipioResidencia>
                        <!--Optional:-->
                        <direccionResidencia>8</direccionResidencia>
                        <idMunicipioNotificacionCorrespondencia>1</idMunicipioNotificacionCorrespondencia>
                        <!--Optional:-->
                        <direccionNotificacionCorrespondencia>8</direccionNotificacionCorrespondencia>
                        <!--Optional:-->
                        <telefono>8</telefono>
                        <!--Optional:-->
                        <correoElectronico>8</correoElectronico>
                        <idMunicipioLaboral>1</idMunicipioLaboral>
                        <!--Optional:-->
                        <estadoCivil>a</estadoCivil>
                        <idOperador>1</idOperador>
                     </usuario>
                  </ValidarExistenciaUsuario>
               </soapenv:Body>
            </soapenv:Envelope>";
        a.SoapAction = "http://tempuri.org/ValidarExistenciaUsuario";
        Operador.Entity.UsuarioOperador nuevo = new Operador.Entity.UsuarioOperador();
        Centralizador.Usuario nuevos = new Centralizador.Usuario();

        var x = Uniandes.Utilidades.ExtensionMethods.ToXML(nuevo);
        var y = Uniandes.Utilidades.ExtensionMethods.ToXML(nuevos);

        var ALGO = CallWebService(a.ContentXml);
    }