public static object validar(int TIPO_IDENTIFICACION, string NUMERO_IDENTIFICACION)
    {
        Centralizador.Service1Client serviciocentralizador = new Centralizador.Service1Client();
        var IdentificadorOperador = "identificadorOperador".GetFromAppCfg();

        try
        {
            AppLog.Write("Inicio consulta en el centralizador", AppLog.LogMessageType.Info, null, "OperadorCarpeta");
            var completo = PrefijoEnumTIPO_IDENTIFICACION.EnumToTIPO_IDENTIFICACIONCOMPLETO(TIPO_IDENTIFICACION);
            var Existe = serviciocentralizador.ValidarPorIdentificacionYTipo(NUMERO_IDENTIFICACION, TIPO_IDENTIFICACION, IdentificadorOperador);

            if (Existe.Existe)
            {

                SessionHelper.SetSessionData("TIPO_IDENTIFICACION_ENVIO", TIPO_IDENTIFICACION);
                SessionHelper.SetSessionData("NUMERO_IDENTIFICACION_ENVIO", NUMERO_IDENTIFICACION);

                if (Existe.MismoOperador)
                {

                    SessionHelper.SetSessionData("OPERADOR_ENVIO_LOCAL_U_OTRO", true);

                    return new
                    {
                        OK = "OK",
                        mensaje = "Se ha agregado un usuario",
                        NUMERO_IDENTIFICACION = NUMERO_IDENTIFICACION,
                        TIPO_IDENTIFICACION = TIPO_IDENTIFICACION,
                        COMPLETO = completo,
                        MISMO = true

                    };
                }
                else
                {

                    SessionHelper.SetSessionData("OPERADOR_ENVIO_LOCAL_U_OTRO", false);

                    return new
                    {
                        OK = "OK",
                        mensaje = "Se ha agregado un usuario",
                        NUMERO_IDENTIFICACION = NUMERO_IDENTIFICACION,
                        TIPO_IDENTIFICACION = TIPO_IDENTIFICACION,
                        COMPLETO = completo,
                        MISMO = false

                    };
                }

            }
            else
            {

                return new
                {
                    OK = "NO",
                    mensaje = "El usuario al que estas tratando de enviarle un mensaje, no existe en ningun operador registrado",
                    NUMERO_IDENTIFICACION = NUMERO_IDENTIFICACION,
                    TIPO_IDENTIFICACION = TIPO_IDENTIFICACION,
                    COMPLETO = completo,

                };

            }
        }
        catch (Exception ex)
        {
            AppLog.Write(" Error Validando informacion  ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");

            return new
            {
                OK = "error",
                mensaje = "Ha ocurrido un error inesperador por favor intentelo en un unos instantes",

            };
        }
    }
    public static object validar(int TIPO_IDENTIFICACION, string NUMERO_IDENTIFICACION)
    {
        Centralizador.Service1Client serviciocentralizador = new Centralizador.Service1Client();
        var IdentificadorOperador = "identificadorOperador".GetFromAppCfg();

        try
        {
            AppLog.Write("Inicio consulta en el centralizador", AppLog.LogMessageType.Info, null, "OperadorCarpeta");

            var Existe = serviciocentralizador.ValidarPorIdentificacionYTipo(NUMERO_IDENTIFICACION, TIPO_IDENTIFICACION, IdentificadorOperador);

            if (Existe.Existe)
            {

                if (Existe.MismoOperador)
                {
                    return new
                    {
                        OK = "Mismo",
                        mensaje = "El usuario se encuentra registrado actualmente en este Operador, deseas recordar la contraseña"
                    };
                }
                else
                {

                    return new
                    {
                        OK = "existe",
                        mensaje = "El usuario se encuentra registrado actualmente en otro operador, Lamentamos las molestias, pronto podras estar con nosotros"
                    };
                }

            }
            else
            {

                return new
                {
                    OK = "OK",
                    mensaje = "Continuaremos con el proceso de registro.",
                    NUMERO_IDENTIFICACION = NUMERO_IDENTIFICACION,
                    TIPO_IDENTIFICACION = TIPO_IDENTIFICACION

                };

            }
        }
        catch (Exception ex)
        {
            AppLog.Write(" Error Validando informacion  ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");

            return new
            {
                OK = "error",
                mensaje = "Ha ocurrido un error inesperador por favor intentelo en un unos instantes",

            };
        }
    }
    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 validar(int TIPO_IDENTIFICACION, string NUMERO_IDENTIFICACION)
    {
        Centralizador.Service1Client serviciocentralizador = new Centralizador.Service1Client();
        var Existe = serviciocentralizador.ValidarPorIdentificacionYTipo(NUMERO_IDENTIFICACION, TIPO_IDENTIFICACION);

        if (Existe)
        {

            return new
            {
                OK = "existe",
                mensaje = "El usuario se encuentra registrado actualmente en otro operador, Lamentamos las molestias, pronto podras estar con nosotros"
            };

        }
        else {

            return new
            {
                OK = "OK",
                mensaje = "Continuaremos con el proceso de registro.",
                NUMERO_IDENTIFICACION = NUMERO_IDENTIFICACION,
                TIPO_IDENTIFICACION =TIPO_IDENTIFICACION

            };

        }
    }