Возвращение в начало программы при вводе неверного пароля - C#
Формулировка задачи:
У меня такая проблема:
Мне нужно чтобы когда человек к примеру ввел неправильный пароль, то программа сразу закрывается. А мне надо чтобы после неправильного пароля его перемещало в начало, и ему выводилось как в начале:
И так далее, тоесть не выходя из программы, все слова стерались Console.Clear() и выводилось заного. Так будет удобно. А то человек постоянно будет закрывать программу и заходить заного. это не удобно
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
class Program
{
static void Main()
{
Console.WriteLine("Добро Пожаловать в мою систему данных");
Console.WriteLine("Чем я могу вам помочь?");
Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");
string myLanguage = Console.ReadLine();
sw1(myLanguage);
Console.ReadLine();
}
static void sw1(string s)
{
string path = @"data.xml";
switch (s)
{
case "1":
{
Console.WriteLine("Введите свой id");
string id = Console.ReadLine();
Console.WriteLine("Введите пароль");
string pass = Console.ReadLine();
if (File.Exists("data.xml"))
{
XDocument xd = XDocument.Load(path);
var pep = xd.Root.Elements("People").Where(x => x.Attribute("id").Value == id
&& x.Attribute("password").Value == pass)
.Select(x =>
new
{
name = x.Attribute("name").Value,
lastname = x.Attribute("lastname").Value,
birthday = x.Attribute("birthday").Value,
nameRight = x.Attribute("nameRight").Value
}).FirstOrDefault();
if (pep != null){
Console.WriteLine("{0} {1} дата рождения: {2}\n\nПоздравляю, вы вошли в свою учетную запись успешно", pep.name, pep.lastname, pep.birthday);
Console.WriteLine("Вы зашли с правами {0}", pep.nameRight);
}
else {
Console.WriteLine("Неправильный логин или пароль");
}
}
else Console.WriteLine("В данный момент данных нет, попробуйте зарегистрироваться");
}
break;
case "2":
{
string name, lastname, password, nameRight;
int id;
DateTime birth;
People pepl;
Console.WriteLine("Введите имя:");
name = Console.ReadLine();
Console.WriteLine("Введите Фамилию:");
lastname = Console.ReadLine();
Console.WriteLine("Введитедату рождения в Формате YYYY MM DD:");
birth = DateTime.Parse(Console.ReadLine());
Console.WriteLine("Введите пароль:");
password = Console.ReadLine();
pepl = new People(name, lastname, birth, password, nameRight);
pepl.add_new(out id);
Console.WriteLine("Новая учетная запись создана успешно.\nВаш Id - {0}", id);
}
break;
case "3":
Console.WriteLine("Досвидания!");
break;
default:
Console.WriteLine("Вы допустили ошибку! Попробуйте еще раз");
break;
}
}
}
class People
{
public int Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public DateTime Birthday { get; set; }
public string Password { get; set; }
public string NameRight { get; set; }
public People(string name, string lastname, DateTime birthday, string password, string nameRight)
{
this.Name = name;
this.LastName = lastname;
this.Birthday = birthday;
this.Password = password;
this.NameRight = nameRight;
}
public void add_new(out int id)
{
XDocument xdoc;
string path = @"data.xml";
if (File.Exists(path)) xdoc = XDocument.Load(path);
else
{
xdoc = new XDocument();
xdoc.Add(new XElement("Root"));
}
// int id;
if (xdoc.Root.Elements("People").Count() == 0) id = 0;
else id = xdoc.Root.Elements("People").Select(x => Convert.ToInt32(x.Attribute("id").Value)).Last();
xdoc.Root.Add(new XElement("People",
new XAttribute("id", ++id),
new XAttribute("name", this.Name),
new XAttribute("lastname", this.LastName),
new XAttribute("birthday", this.Birthday.ToShortDateString()),
new XAttribute("password", this.Password),
new XAttribute("nameRight", this.NameRight)));
xdoc.Save(path);
}
}Console.WriteLine("Добро Пожаловать в мою систему данных");
Console.WriteLine("Чем я могу вам помочь?");
Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");Решение задачи: «Возвращение в начало программы при вводе неверного пароля»
textual
Листинг программы
static void Main()
{
while (true)
{
Console.WriteLine("Добро Пожаловать в мою систему данных");
Console.WriteLine("Чем я могу вам помочь?");
Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");
string myLanguage = Console.ReadLine();
try
{
sw1(myLanguage);
}
catch (ApplicationException)
{
break;
}
}
Console.ReadLine();
}