Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using menushell.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace menushell.Data
- {
- public static class Database
- {
- private static UserEntities _userEntities = new UserEntities();
- public static IEnumerable<User> Users => _userEntities.Users.Values;
- public static void LoadUsers()
- {
- _userEntities.LoadMockUser();
- }
- public static bool TryAddUser(User user)
- {
- user.Id = Users.Count();
- return _userEntities.Users.TryAdd(user.Id, user);
- }
- public static bool TryRemoveUser(User user)
- {
- return _userEntities.Users.Remove(user.Id);
- }
- }
- -------
- using menushell.Models;
- using System;
- using System.Collections.Generic;
- namespace menushell.Data
- {
- public class UserEntities
- {
- public Dictionary<int, User> Users = new Dictionary<int, User>();
- public void LoadMockUser()
- {
- Users.Add(0, new User() { Id = 0, Username = "Reiko", Password = "abc123" });
- }
- }
- }
- ----
- namespace menushell.Models
- {
- public class User
- {
- public int Id { get; set; }
- public int ID { get; internal set; }
- public string Username { get; set; }
- public string Password { get; set; }
- public object Name { get; internal set; }
- }
- }
- -----
- using System;
- namespace menushell.Views
- {
- public class AdminView : menushellView
- {
- public override void Display()
- {
- ClearPreviousView();
- Console.WriteLine($"Welcome to the administrative view, {Program.CurrentUser.Username}!");
- Console.WriteLine("F1. Delete user");
- Console.WriteLine("F2. Logout");
- var input = Console.ReadKey();
- menushellView view;
- switch (input.Key)
- {
- case ConsoleKey.F1:
- view = new DeleteUserView();
- break;
- case ConsoleKey.F2:
- Program.CurrentUser = null;
- view = new MenuView();
- break;
- default:
- Display();
- return;
- }
- view.Display();
- }
- }
- }
- -----
- namespace menushell.Views
- {
- public class CreateUserView : menushellView
- {
- public override void Display()
- {
- ClearPreviousView();
- Console.WriteLine("Creating new user...");
- Console.WriteLine();
- Console.Write("Enter the username: ");
- var username = Console.ReadLine();
- Console.WriteLine();
- Console.Write("Enter the password: ");
- var password = Console.ReadLine();
- Console.WriteLine();
- Console.Write("Confirm the password: ");
- var passwordConfirmation = Console.ReadLine();
- if (password != passwordConfirmation)
- {
- Display();
- return;
- }
- Database.TryAddUser(new User() { Username = username, Password = password });
- Console.WriteLine("User added to the database! Press any key to return to the main menu...");
- Console.ReadKey();
- var view = new MenuView();
- view.Display();
- }
- }
- }
- -----
- namespace menushell.Views
- {
- public class DeleteUserView : menushellView
- {
- public override void Display()
- {
- ClearPreviousView();
- Console.WriteLine("Currently deleting user...");
- Console.WriteLine();
- Console.Write("Enter the username of user: ");
- var username = Console.ReadLine();
- Console.WriteLine();
- var user = Database.Users.FirstOrDefault(u => u.Username == username);
- if (user == default(User))
- {
- Display();
- return;
- }
- menushellView view;
- Console.WriteLine($"Confirm: Delete user {user.Username}? F1 to delete, any other key to cancel.");
- if (Console.ReadKey().Key == ConsoleKey.F1)
- {
- if (Database.TryRemoveUser(user))
- {
- if (user == Program.CurrentUser)
- Program.CurrentUser = null;
- ClearPreviousView();
- Console.WriteLine($"User {user.Username} deleted! Press any key to return to the main menu...");
- Console.ReadKey();
- }
- else
- {
- ClearPreviousView();
- Console.WriteLine($"Error attempting to delete user {user.Username}. Press any key to return to the main menu...");
- Console.ReadKey();
- }
- }
- if (Program.CurrentUser == null)
- view = new MenuView();
- else view = new AdminView();
- view.Display();
- }
- }
- }
- -----
- namespace menushell.Views
- {
- class ListUserView
- {
- public static void ListUsers(List<User> users)
- {
- Console.Clear();
- foreach (User user in users)
- {
- Console.WriteLine(user.Username);
- }
- Console.ReadKey();
- }
- }
- }
- ------
- namespace menushell.Views
- {
- public class LoginView : menushellView
- {
- public override void Display()
- {
- ClearPreviousView();
- menushellView view;
- Console.WriteLine("Attemping to login... type exit at any time to exit to the main menu.");
- Console.WriteLine();
- Console.Write("Username: ");
- var username = Console.ReadLine();
- if (username.ToLower() == "exit")
- {
- view = new MenuView();
- view.Display();
- return;
- }
- Console.Write("Password: ");
- var password = Console.ReadLine();
- if (password.ToLower() == "exit")
- {
- view = new MenuView();
- view.Display();
- return;
- }
- var user = Database.Users.FirstOrDefault(u => u.Username.ToLower() == username.ToLower() && u.Password == password);
- if (user == default(User))
- {
- Display();
- return;
- }
- Program.CurrentUser = user;
- view = new AdminView();
- view.Display();
- }
- }
- }
- ---
- namespace menushell.Views
- {
- public abstract class menushellView
- {
- public abstract void Display();
- public void ClearPreviousView()
- {
- Console.Clear();
- }
- }
- }
- ---
- namespace menushell.Views
- {
- public class MenuView : menushellView
- {
- public override void Display()
- {
- ClearPreviousView();
- Console.WriteLine("This is the main menu. Pick an option...");
- Console.WriteLine("F1. Login as user");
- Console.WriteLine("F2. Create new user");
- Console.WriteLine("F3. Search user");
- var input = Console.ReadKey();
- menushellView view;
- switch (input.Key)
- {
- case ConsoleKey.F1:
- view = new LoginView();
- break;
- case ConsoleKey.F2:
- view = new CreateUserView();
- break;
- case ConsoleKey.F3:
- view = new SearchUserView();
- break;
- default:
- Display();
- return;
- }
- view.Display();
- }
- }
- }
- ----
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Cryptography.X509Certificates;
- using System.Text;
- using System.Threading;
- using menushell.Data;
- using menushell.Models;
- namespace menushell.Views
- {
- public class SearchUserView : menushellView
- {
- private List<User> users = new List<User>();
- public override void Display()
- {
- // Provide output
- //Modify users
- Print(users); // Print all users
- }
- public override void Print(List<User> users)
- {
- foreach (var user in users)
- {
- Console.WriteLine(user.Name);
- }
- }
- private void SearchUser(int id)
- {
- users.First(x =>
- x.ID == id); // Finds users based on id, this will work for names but id provides a faster look up
- }
- private void DeleteUser(int id)
- {
- users.RemoveAll(x =>
- x.ID == id); // Removes users based on id, this will work for names but id provides a faster look up
- }
- }
- }
- ---
- namespace menushell
- {
- class Program
- {
- private static menushellView _view;
- public static User CurrentUser;
- static void Main(string[] args)
- {
- _view = new MenuView();
- _view.Display();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement