/// <summary> /// Формирует список сотрудников по диапазону выбранных дат /// </summary> /// <param name="path"></param> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public static List <UserInfo> DateDiapazon(string path) { List <UserInfo> uiArr = new List <UserInfo>(); var lines = File.ReadAllLines(path); DateTime start = ConsoleMethods.SetStartDate(); DateTime end = ConsoleMethods.SetEndDate(); foreach (var i in lines) { UserInfo ui = new UserInfo(); if (Convert.ToDateTime(UserInfo.NoteToArr(i)[1]) >= start && Convert.ToDateTime(UserInfo.NoteToArr(i)[1]) <= end) { ui.Id = Convert.ToInt32(UserInfo.NoteToArr(i)[0]); ui.DT = Convert.ToDateTime(UserInfo.NoteToArr(i)[1]); ui.TT = Convert.ToDateTime(UserInfo.NoteToArr(i)[2]); ui.Fio = UserInfo.NoteToArr(i)[3]; ui.Age = Convert.ToInt32(UserInfo.NoteToArr(i)[4]); ui.High = Convert.ToInt32(UserInfo.NoteToArr(i)[5]); ui.BirthDate = Convert.ToDateTime(UserInfo.NoteToArr(i)[6]); ui.BirthPlace = UserInfo.NoteToArr(i)[7]; uiArr.Add(ui); } } return(uiArr); }
/// <summary> /// Сортирует по Id /// </summary> /// <param name="userArr"></param> public static void SortById(List <UserInfo> userArr) { userArr.Sort(delegate(UserInfo us1, UserInfo us2) { return(us1.Id.CompareTo(us2.Id)); }); ConsoleMethods.PrintHeaderNote(); }
/// <summary> /// Удаляет запись о сотруднике из файла по переданному Id /// </summary> /// <param name="path"></param> /// <param name="id"></param> public static void Erazer(string path, string id) { if (File.Exists(path)) { var lines = File.ReadAllLines(path); List <string> ls = new List <string>(); foreach (var i in lines) { if (UserInfo.NoteToArr(i)[0] == id) { continue; } ls.Add(i); } File.WriteAllLines(path, ls); } else { ConsoleMethods.FileExistError(); } }
/// <summary> /// Читаем из файла /// </summary> /// <param name="path">FileName (или путь к файлу)</param> public static void Reader(string path) { string noteHeader = string.Empty; if (File.Exists(path)) { string[] lines = File.ReadAllLines(path); using (StreamReader sr = new StreamReader(path, Encoding.Unicode)) { ConsoleMethods.PrintHeaderNote(); foreach (var i in lines) { ConsoleMethods.PrintNote(UserInfo.NoteToArr(i)); } } } else { ConsoleMethods.FileExistError(); } }
/// <summary> /// вывод меню сортировки /// </summary> /// <param name="path"></param> public static void SortMenu(string path) { var sort = true; while (sort) { Console.WriteLine(">> Меню сортировки."); Console.WriteLine(">> 1 - Сортировка по Id."); Console.WriteLine(">> 2 - Сортировка по имени."); Console.WriteLine(">> 3 - Сортировка по дате рождения."); Console.WriteLine(">> 4 - Сортировка по возрасту."); Console.WriteLine(">> 5 - Сортировка по росту."); Console.WriteLine(">> 6 - Сортировка по дате создания."); Console.WriteLine("q - Выйти в главное меню."); Console.Write(">>>> "); char choice = ' '; choice = Console.ReadKey().KeyChar; List <UserInfo> uiArr = FileWorker.UsersToArr(path); switch (choice) { case '1': { Sorter.SortById(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case '2': { Sorter.SortByName(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case '3': { Sorter.SortByBDate(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case '4': { Sorter.SortByAge(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case '5': { Sorter.SortByHigh(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case '6': { Sorter.SortByDateCreation(uiArr); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case 'q': { sort = false; break; } } } }
/// <summary> /// Вывод меню программы /// </summary> /// <param name="path">FileName (или путь к файлу)</param> public static void Game(string path) { var game = true; while (game) { Console.WriteLine("Программа учета сотрудников компании."); Console.WriteLine("Меню программы: "); Console.WriteLine("1 - Добавить сотрудника."); Console.WriteLine("2 - Вывести список сотрудников."); Console.WriteLine("3 - Удалить сотрудника."); Console.WriteLine("4 - Изменить запись."); Console.WriteLine("5 - Меню сортировки списка сотрудников."); Console.WriteLine("6 - Вывести список сотрудников из диапазона дат."); Console.WriteLine("q - Выйти из программы."); Console.Write(">> "); char choice = ' '; choice = Console.ReadKey().KeyChar; switch (choice) { case '1': { FileWorker.Writer(path); break; } case '2': { FileWorker.Reader(path); break; } case '3': { string id = ConsoleMethods.GetUserIdForDelete(); FileWorker.Erazer(path, id); break; } case '4': { int id = Int32.Parse(ConsoleMethods.GetUserIdForRename()); FileWorker.Renamer(path, id); break; } case '5': { Console.WriteLine(); SortMenu(path); break; } case '6': { List <UserInfo> uiArr = FileWorker.DateDiapazon(path); ConsoleMethods.PrintHeaderNote(); ConsoleMethods.PrintListToNote(uiArr); break; } case 'q': { game = false; break; } } } ConsoleMethods.PrintGoodbye(); }