public static void FormEditUsers()

        {
            if (AdminSection._Users.Count == 0)
            {
                Console.WriteLine("\t Lista de Usuarios vacia-sección editar ");
            }
            else
            {
                Console.Clear();
                try
                {
                    Console.Write("\t Introduzca el número de la Tarjeta: ");
                    string targetUser = Console.ReadLine();
                    var    User       = AdminSection._Users.Find(x => x.TargetNumber == targetUser);


                    var userindex = CRUD.GetElement(AdminSection._Users, AdminSection._Users.IndexOf(User));

                    if (AdminSection._Users.Contains(userindex))
                    {
                        Console.Clear();
                        Console.WriteLine("\t\t Introduzca los nuevos valores \n ");
                        Console.Write("\t Nombre: ");
                        string nameUser = Console.ReadLine();
                        Console.Write("\t Apellido: ");
                        string lastnameUser = Console.ReadLine();

                        if (nameUser == "" || targetUser == "")
                        {
                            Console.WriteLine("\n\t Debe llenar todos los campos. \n ");
                            Console.ReadKey();
                            FormAddUser();
                        }
                        else
                        {
                            _UsersCRUD Users = new _UsersCRUD
                            {
                                Name     = nameUser,
                                LastName = lastnameUser
                            };


                            //CRUD.Edit(AdminSection._Users, (User.ToString().IndexOf(User.ToString()) - 1), Users);

                            int indexTarget = AdminSection._Users.IndexOf(User);


                            CRUD.Edit(AdminSection._Users, indexTarget, Users);

                            Console.Clear();
                            Console.WriteLine("\n\n\n\n\n\n\t\t########################################\n");
                            Console.WriteLine("\t\t##### Usuario Editado Con Exito!! #####\n");
                            Console.WriteLine("\t\t########################################\n");
                            Console.ReadKey();
                        }
                    }
                    else
                    {
                        Console.Clear();
                        Console.WriteLine("\n\t\t No existe un usuario con este número de tarjeta \n");
                        Console.Write("\n\t\t Desea realizar otra busqueda? S/N : ");
                        string selection = Console.ReadLine();
                        if (selection == "s")

                        {
                            FormEditUsers();
                        }

                        Console.ReadKey();
                        AdminSection.Menu_Admin();
                    }
                }
                catch (Exception)
                {
                    Console.Clear();
                    Console.WriteLine("\n\t\t No existe un usuario con este número de tarjeta \n");
                    Console.Write("\n\t\t Desea realizar otra busqueda? S/N : ");
                    string selection = Console.ReadLine();
                    if (selection == "s")

                    {
                        FormEditUsers();
                    }

                    Console.ReadKey();
                    AdminSection.Menu_Admin();
                }
            }
        }
        public static void FormAddUser()
        {
            try
            {
                Console.Clear();
                Console.WriteLine("\n\n\t Llene los campos ");
                Console.Write("\t Nombre: ");
                string nameUser = Console.ReadLine();
                Console.Write("\t Apellido: ");
                string lastnameUser = Console.ReadLine();
                Console.Write("\t Número de tarjeta: ");
                string targetNumberUser = Console.ReadLine();
                Console.Write("\t Pin de Contraseña: ");
                string PasswordUser = ConsolePlus.ReadPassword();
                Console.Write("\n\t Saldo inicial: ");
                double BalanceUser = Convert.ToInt32(Console.ReadLine());


                if (nameUser == "" || lastnameUser == "" ||
                    targetNumberUser == "" || PasswordUser == "" ||
                    BalanceUser <= 0)
                {
                    Console.WriteLine("\n\t Debe llenar todos los campos. \n ");
                    Console.ReadKey();
                    FormAddUser();
                }
                else
                {
                    if (Validation(targetNumberUser))
                    {
                        CRUD.Add(_TargetNumberValidation, targetNumberUser);
                        _UsersCRUD Users = new _UsersCRUD
                        {
                            Name         = nameUser,
                            LastName     = lastnameUser,
                            TargetNumber = targetNumberUser,
                            Password     = PasswordUser,
                            Balance      = BalanceUser,
                            Role         = "Cliente",
                            Status       = true
                        };
                        CRUD.Add(AdminSection._Users, Users);
                    }
                    else
                    {
                        Console.WriteLine("\t\t ERROR. Número de tarjeta ya existente.\n");
                        Console.ReadKey();
                        FormAddUser();
                    }
                }

                if (AdminSection._Users.Count != 0)
                {
                    Console.WriteLine("\n\n\n\n\n\n\t\t########################################\n");
                    Console.WriteLine("\t\t##### Usuario Guardado Con Exito!! #####\n");
                    Console.WriteLine("\t\t########################################\n");

                    Console.Write("\n\t\t Desea agregar otro usuario? S/N : ");
                    string SE = Console.ReadLine();
                    if (SE == "s")

                    {
                        FormAddUser();
                    }

                    Console.ReadKey();
                    AdminSection.Menu_Admin();
                }
            }
            catch (Exception)
            {
                Console.Clear();
                Console.WriteLine("\n\n \t\t ERROR!! \n");

                Console.WriteLine("\t :( usuario no guardado, verifique e intente nuevamente. \n");
                Console.ReadKey();
                FormAddUser();
            }
        }
        public static void _Login()
        {
            _UsersCRUD _UsersCRUD = new _UsersCRUD();


            if (File.Exists("DATA-UsersCrud.dat"))
            {
                serializeController.DesSerialize("DATA-UsersCrud.dat");
            }
            else
            {
                if (!Directory.Exists("DATA-UsersCrud.dat"))
                {
                    Directory.CreateDirectory("DATA.dat");
                    serializeController.Serialize(_UsersCRUD, "DATA-UsersCrud.dat");
                }
            }


            /* IFormatter formatter = new BinaryFormatter();
             * Stream stream = new FileStream(, FileMode.Open, FileAccess.Read);
             *
             * _UsersCRUD = (_UsersCRUD)formatter.Deserialize(stream);
             * FileStream stream = new FileStream("DATABASE.dat", FileMode.Create);
             * BinaryFormatter formatter = new BinaryFormatter();
             * //formatter.Serialize(stream, datos);
             * stream.Close();
             */
            //FileStream streamD = new FileStream("DATABASE.dat", FileMode.Open);
            // BinaryFormatter formatterD = new BinaryFormatter();
            //datos = (Datos)(formatterD.Deserialize(streamD));
            // datos = (Datos)serializeController.DesSerialize("DATABASE.dat");
            //datos = D_Datos ?? new Datos();

            // streamD.Close();


            Console.Clear();
            Console.WriteLine("\n\n");
            Console.WriteLine("\t <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");
            Console.WriteLine("\t <><                                                    ><>");
            Console.WriteLine("\t <><            Bienvenido  al Cajero Automático        ><>");
            Console.WriteLine("\t <><                                                    ><>");
            Console.WriteLine("\t <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");


            Console.Write("\n\t Numero de tarjeta: ");

            string         TargetNumber = "";
            ConsoleKeyInfo TN           = Console.ReadKey(true);

            while (TN.Key != ConsoleKey.Enter)
            {
                if (TN.Key != ConsoleKey.Backspace)
                {
                    if (TN.Key != ConsoleKey.RightArrow)
                    {
                        if (TN.Key != ConsoleKey.LeftArrow)
                        {
                            if (TN.Key != ConsoleKey.UpArrow)
                            {
                                if (TN.Key != ConsoleKey.DownArrow)
                                {
                                    Console.Write("#");
                                    TargetNumber += TN.KeyChar;
                                }
                            }
                        }
                    }
                }
                else if (TN.Key == ConsoleKey.Backspace)
                {
                    if (!string.IsNullOrEmpty(TargetNumber))
                    {
                        TargetNumber = TargetNumber.Substring(0, TargetNumber.Length - 1);
                        int position = Console.CursorLeft;
                        Console.SetCursorPosition(position - 1, Console.CursorTop);
                        Console.WriteLine(" ");
                        Console.SetCursorPosition(position - 1, Console.CursorTop);
                    }
                }
                TN = Console.ReadKey(true);
            }

            Console.Write("\n\t Contraseña: ");
            string pass = ConsolePlus.ReadPassword();

            string UserAdmin = "1";
            string AdminPass = "******";

            if (TargetNumber != UserAdmin || pass != AdminPass)
            {
                var User      = AdminSection._Users.Find(x => x.TargetNumber == TargetNumber);
                var userindex = CRUD.GetElement(AdminSection._Users, AdminSection._Users.IndexOf(User));
                if (AdminSection._Users.Contains(userindex))
                {
                    if (userindex.TargetNumber == TargetNumber && userindex.Password == pass && userindex.Status == true)
                    {
                        ClientFuncionality.Menu();
                    }
                    else
                    {
                        if (userindex.Status == false)

                        {
                            Console.Clear();
                            Console.WriteLine("\n\n\t\t# Recuerde su cuenta está bloqueada. #");
                            Console.ReadKey();
                            _Login();
                        }
                        else
                        {
                            int MaxAttempts = 0;
                            MaxAttempts++;



                            if (MaxAttempts >= 3)
                            {
                                Console.Clear();

                                Console.WriteLine("\n\t\t Su contraseña ha sido bloqueada." +
                                                  "\n\t\t Para poder desbloquearla consulte con un administrador.\n");

                                userindex.Status = false;

                                Console.ReadKey();
                                _Login();
                            }
                            Console.WriteLine("\t\t# La contraseña no es correcta, intentelo una nueva vez #");
                            Console.ReadKey();
                            _Login();
                        }
                    }
                }
                else if (!AdminSection._Users.Contains(userindex))
                {
                    Console.WriteLine("\t Este usuario no existe"); Console.ReadKey(); _Login();
                }
            }
            else if (TargetNumber == UserAdmin && pass == AdminPass)
            {
                AdminSection.Menu_Admin();
            }
            else
            {
                Console.WriteLine("\t Este usuario no existe"); Console.ReadKey(); _Login();
            }
            Console.ReadKey();
        }