Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using FormulaIFS.models;
- using System.Linq;
- using Microsoft.EntityFrameworkCore;
- using System.Collections.Generic;
- namespace FormulaIFS {
- public class Menu {
- const int ADD_USER = 1;
- const int LIST_USERS = 2;
- const int ADD_CIRCUIT = 3;
- const int LIST_CIRCUITS = 4;
- const int EXIT_APP = -1;
- public static void start() {
- clearScreen();
- mainMenuLoop();
- }
- private static void mainMenuLoop() {
- int answer;
- do {
- showMainMenu();
- answer = readAnswer();
- switch(answer) {
- case ADD_USER :
- addUser();
- break;
- case LIST_USERS:
- listUsers();
- break;
- case ADD_CIRCUIT:
- addCircuit();
- break;
- case LIST_CIRCUITS:
- listCircuits();
- break;
- case EXIT_APP:
- Console.WriteLine("[+] Encerrando aplicação ...");
- break;
- default:
- Console.WriteLine("[-] Opção inválida.");
- break;
- }
- } while(answer != EXIT_APP);
- }
- private static void showMainMenu() {
- Console.WriteLine();
- Console.WriteLine("---------- Console ----------");
- Console.WriteLine(ADD_USER + " - Cadastrar usuário");
- Console.WriteLine(LIST_USERS + " - Listar usuários");
- Console.WriteLine(ADD_CIRCUIT + " - Cadastrar circuito");
- Console.WriteLine(LIST_CIRCUITS + " - Listar circuitos");
- Console.WriteLine(EXIT_APP + " - Sair da aplicação");
- }
- /*
- * Reads the answer from the user and converts to integer
- */
- private static int readAnswer() {
- Console.Write("> ");
- String answer = Console.ReadLine();
- Console.WriteLine();
- return Convert.ToInt32(answer);
- }
- private static void clearScreen() {
- for(int i=0; i<10; i++) {
- Console.WriteLine();
- }
- }
- /*
- * Asks a series of question about the user
- * and saves a new entry in the database
- */
- private static void addUser() {
- string username, email, password;
- TipoUsuario tipoUsuario;
- Console.Write("Username: ");
- username = Console.ReadLine();
- Console.Write("Email: ");
- email = Console.ReadLine();
- Console.Write("Senha: ");
- password = Console.ReadLine();
- using(var db = new AppDatabaseContext()) {
- List<TipoUsuario> tipoUsuarios = db.TipoUsuarios.ToList();
- Console.WriteLine("[!] Selecione o Tipo do Usuário:");
- for(int i=0; i<tipoUsuarios.Count; i++) {
- Console.WriteLine(i + " - " + tipoUsuarios[i].Descricao);
- }
- bool isValidAnswer;
- do {
- int answer = readAnswer();
- // Se fora do range de tipos de usuário, obter um novo valor.
- if(answer < 0 || answer >= tipoUsuarios.Count ) {
- Console.WriteLine("[-] Seleção inválida.");
- isValidAnswer = false;
- } else {
- isValidAnswer = true;
- tipoUsuario = tipoUsuarios[answer];
- Usuario usuario = new Usuario {
- Username = username,
- Email = email,
- Senha = password,
- TipoUsuario = tipoUsuario
- };
- db.Usuarios.Add(usuario);
- db.SaveChanges();
- }
- } while(!isValidAnswer);
- }
- Console.WriteLine("[+] Usuário cadastrado.");
- }
- /*
- * Lists all users on the database
- */
- private static void listUsers() {
- using(var db = new AppDatabaseContext()) {
- List<Usuario> users = db.Usuarios.Include(user => user.TipoUsuario).ToList();
- Console.WriteLine("----- Usuários -----");
- foreach(Usuario user in users) {
- Console.WriteLine(
- "ID: " + user.UsuarioId +
- " | Usuário: " + user.Username +
- " | Email: " + user.Email +
- " | Tipo de Usuário: " + user.TipoUsuario.Descricao
- );
- }
- }
- }
- /*
- * Asks a series of questions about the new Circuit
- * and saves a new entry in the database
- */
- private static void addCircuit() {
- string nome, sigla, complexidade;
- int tamanho, tempoMaximoConclusao;
- TipoCircuito tipoCircuito;
- Console.Write("Nome do Circuito: ");
- nome = Console.ReadLine();
- Console.Write("Sigla: ");
- sigla = Console.ReadLine();
- Console.Write("Complexidade: ");
- complexidade = Console.ReadLine();
- Console.Write("Tamanho: ");
- tamanho = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Tempo máximo de conclusão: ");
- tempoMaximoConclusao = Convert.ToInt32(Console.ReadLine());
- using(var db = new AppDatabaseContext()) {
- List<TipoCircuito> tiposCircuito = db.TipoCircuitos.ToList();
- Console.WriteLine("[!] Selecione o tipo de circuito: ");
- for(int i=0; i<tiposCircuito.Count; i++) {
- Console.WriteLine(i + " - " + tiposCircuito[i].Descricao);
- }
- bool isValidAnswer = false;
- do {
- int answer = readAnswer();
- if(answer < 0 || answer >= tiposCircuito.Count ) {
- Console.WriteLine("[-] Seleção inválida.");
- isValidAnswer = false;
- } else {
- isValidAnswer = true;
- tipoCircuito = tiposCircuito[answer];
- Circuito circuito = new Circuito {
- Nome = nome,
- Sigla = sigla,
- Complexidade = complexidade,
- Tamanho = tamanho,
- TempoMaximoConclusao = tempoMaximoConclusao,
- TipoCircuito = tipoCircuito
- };
- db.Circuitos.Add(circuito);
- db.SaveChanges();
- Console.WriteLine("[+] Circuito criado.");
- }
- } while(!isValidAnswer);
- }
- }
- /*
- * Lists all circuits on the database
- */
- private static void listCircuits() {
- using(var db = new AppDatabaseContext()) {
- List<Circuito> circuits = db.Circuitos.Include(c => c.TipoCircuito).ToList();
- foreach(Circuito circuito in circuits) {
- Console.WriteLine(
- "ID: " + circuito.CircuitoId
- + " | Nome: " + circuito.Nome
- + " | Sigla: " + circuito.Sigla
- + " | Complexidade: " + circuito.Complexidade
- + " | Tamanho: " + circuito.Tamanho
- + " | Tipo de Circuito: " + circuito.TipoCircuito.Descricao
- );
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement