Advertisement
Guest User

Untitled

a guest
Mar 14th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.17 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Refactoring
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             List<User> users = new List<User>()
  14.             {
  15.                 new User("Test1", "1234"),
  16.                 new User("Test2", "4321")
  17.             };
  18.  
  19.             User logedUser = null;
  20.  
  21.             while (logedUser == null)
  22.             {
  23.                 logedUser = Login(users);
  24.             }
  25.         }
  26.  
  27.         private static User Login(List<User> users, int incorectPassCount = 3)
  28.         {
  29.             string name = ReadNotEmptyString("Введите имя пользователя");
  30.             var targetUser = FindUserWithName(users, name);
  31.  
  32.             if (targetUser != null)
  33.             {
  34.                 for (int tryCount = 0; tryCount < incorectPassCount; tryCount++)
  35.                 {
  36.                     var isWantToWritePassword = ConfirmQuestion($"Пользователь {name} уже существует. Желаете ли вы ввести пароль для этого пользователя?");
  37.  
  38.                     var password = ReadInvisibiltyString();
  39.  
  40.                     if (targetUser.Password == password)
  41.                         return targetUser;
  42.                     else
  43.                         Console.WriteLine("Пароль не верный");
  44.                 }
  45.             }
  46.             else
  47.             {
  48.                 Console.WriteLine("Такого пользователя нет");
  49.             }
  50.  
  51.             return null;
  52.         }
  53.  
  54.         private static bool ConfirmQuestion(string message)
  55.         {
  56.             Console.Write($"{message} Введите Yes/no:");
  57.             var answer = Console.ReadLine();
  58.  
  59.             return answer.ToLower() == "yes";
  60.         }
  61.  
  62.         private static string ReadInvisibiltyString()
  63.         {
  64.             var result = string.Empty;
  65.  
  66.             var key = Console.ReadKey(true);
  67.  
  68.             if (key.Key == ConsoleKey.Enter)
  69.                 return result;
  70.  
  71.             result += key.KeyChar;
  72.  
  73.             return result;
  74.         }
  75.  
  76.         private static User FindUserWithName(List<User> users, string name)
  77.         {
  78.             foreach (var user in users)
  79.                 if (user.Name == name)
  80.                     return user;
  81.  
  82.             return null;
  83.         }
  84.  
  85.         private static string ReadNotEmptyString(string message)
  86.         {
  87.             string result = Console.ReadLine();
  88.  
  89.             while (result != string.Empty)
  90.             {
  91.                 Console.Write($"Имя не может быть пустым!\r\n{message}: ");
  92.                 result = Console.ReadLine();
  93.             }
  94.  
  95.             return result;
  96.         }
  97.     }
  98.  
  99.     class User
  100.     {
  101.         private string _name;
  102.         private string _password;
  103.  
  104.         public User(string name, string password)
  105.         {
  106.             Name = name;
  107.             Password = password;
  108.         }
  109.  
  110.         public string Name { get => _name; set => _name = value; }
  111.         public string Password { get => _password; set => _password = value; }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement