Advertisement
Guest User

Untitled

a guest
Sep 21st, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.27 KB | None | 0 0
  1. using System;
  2. using FormulaIFS.models;
  3. using System.Linq;
  4. using Microsoft.EntityFrameworkCore;
  5. using System.Collections.Generic;
  6.  
  7. namespace FormulaIFS {
  8.     public class Menu {
  9.  
  10.         const int ADD_USER = 1;
  11.         const int LIST_USERS = 2;
  12.         const int ADD_CIRCUIT = 3;
  13.         const int LIST_CIRCUITS = 4;
  14.         const int EXIT_APP = -1;
  15.  
  16.         public static void start() {
  17.             clearScreen();
  18.             mainMenuLoop();
  19.         }
  20.  
  21.         private static void mainMenuLoop() {
  22.             int answer;
  23.             do {
  24.                 showMainMenu();
  25.                 answer = readAnswer();
  26.  
  27.                 switch(answer) {
  28.                     case ADD_USER :
  29.                         addUser();
  30.                         break;
  31.                     case LIST_USERS:
  32.                         listUsers();
  33.                         break;
  34.                     case ADD_CIRCUIT:
  35.                         addCircuit();
  36.                         break;
  37.  
  38.                     case LIST_CIRCUITS:
  39.                         listCircuits();
  40.                         break;
  41.                     case EXIT_APP:
  42.                         Console.WriteLine("[+] Encerrando aplicação ...");
  43.                         break;
  44.                     default:
  45.                         Console.WriteLine("[-] Opção inválida.");
  46.                         break;
  47.                 }
  48.             } while(answer != EXIT_APP);
  49.         }
  50.  
  51.         private static void showMainMenu() {
  52.             Console.WriteLine();
  53.             Console.WriteLine("---------- Console ----------");
  54.             Console.WriteLine(ADD_USER + " - Cadastrar usuário");
  55.             Console.WriteLine(LIST_USERS + " - Listar usuários");
  56.             Console.WriteLine(ADD_CIRCUIT + " - Cadastrar circuito");
  57.             Console.WriteLine(LIST_CIRCUITS + " - Listar circuitos");
  58.             Console.WriteLine(EXIT_APP + " - Sair da aplicação");            
  59.         }
  60.  
  61.         /*
  62.         * Reads the answer from the user and converts to integer
  63.          */
  64.         private static int readAnswer() {
  65.             Console.Write("> ");
  66.             String answer = Console.ReadLine();
  67.             Console.WriteLine();
  68.             return Convert.ToInt32(answer);
  69.         }
  70.  
  71.         private static void clearScreen() {
  72.             for(int i=0; i<10; i++) {
  73.                 Console.WriteLine();
  74.             }
  75.         }
  76.  
  77.         /*  
  78.         * Asks a series of question about the user
  79.         * and saves a new entry in the database
  80.          */
  81.         private static void addUser() {
  82.             string username, email, password;
  83.             TipoUsuario tipoUsuario;
  84.            
  85.             Console.Write("Username: ");
  86.             username = Console.ReadLine();
  87.  
  88.             Console.Write("Email: ");
  89.             email = Console.ReadLine();
  90.  
  91.             Console.Write("Senha: ");
  92.             password = Console.ReadLine();
  93.  
  94.             using(var db = new AppDatabaseContext()) {
  95.                 List<TipoUsuario> tipoUsuarios = db.TipoUsuarios.ToList();
  96.                
  97.                 Console.WriteLine("[!] Selecione o Tipo do Usuário:");                
  98.                 for(int i=0; i<tipoUsuarios.Count; i++) {
  99.                     Console.WriteLine(i + " - " + tipoUsuarios[i].Descricao);
  100.                 }
  101.                 bool isValidAnswer;
  102.                 do {
  103.                     int answer = readAnswer();
  104.                    
  105.                     // Se fora do range de tipos de usuário, obter um novo valor.
  106.                     if(answer < 0 || answer >= tipoUsuarios.Count ) {
  107.                         Console.WriteLine("[-] Seleção inválida.");
  108.                         isValidAnswer = false;
  109.                    
  110.                     } else {
  111.                         isValidAnswer = true;
  112.                         tipoUsuario = tipoUsuarios[answer];
  113.                        
  114.                         Usuario usuario = new Usuario {
  115.                             Username = username,
  116.                             Email = email,
  117.                             Senha = password,
  118.                             TipoUsuario = tipoUsuario
  119.                         };
  120.  
  121.                         db.Usuarios.Add(usuario);
  122.                         db.SaveChanges();
  123.                     }
  124.  
  125.                 } while(!isValidAnswer);
  126.             }
  127.  
  128.             Console.WriteLine("[+] Usuário cadastrado.");
  129.         }
  130.  
  131.         /*
  132.         * Lists all users on the database
  133.          */
  134.         private static void listUsers() {
  135.             using(var db = new AppDatabaseContext()) {
  136.                 List<Usuario> users = db.Usuarios.Include(user => user.TipoUsuario).ToList();
  137.  
  138.                 Console.WriteLine("----- Usuários -----");
  139.                 foreach(Usuario user in users) {
  140.                     Console.WriteLine(
  141.                         "ID: " + user.UsuarioId +
  142.                         " | Usuário: " + user.Username +
  143.                         " | Email: " + user.Email +
  144.                         " | Tipo de Usuário: " + user.TipoUsuario.Descricao
  145.                     );
  146.                 }
  147.             }
  148.         }
  149.  
  150.         /*
  151.         * Asks a series of questions about the new Circuit
  152.         * and saves a new entry in the database
  153.          */
  154.         private static void addCircuit() {
  155.             string nome, sigla, complexidade;
  156.             int tamanho, tempoMaximoConclusao;
  157.             TipoCircuito tipoCircuito;
  158.  
  159.             Console.Write("Nome do Circuito: ");
  160.             nome = Console.ReadLine();
  161.  
  162.             Console.Write("Sigla: ");
  163.             sigla = Console.ReadLine();
  164.  
  165.             Console.Write("Complexidade: ");
  166.             complexidade = Console.ReadLine();
  167.  
  168.             Console.Write("Tamanho: ");
  169.             tamanho = Convert.ToInt32(Console.ReadLine());
  170.  
  171.             Console.WriteLine("Tempo máximo de conclusão: ");
  172.             tempoMaximoConclusao = Convert.ToInt32(Console.ReadLine());
  173.  
  174.             using(var db = new AppDatabaseContext()) {
  175.                 List<TipoCircuito> tiposCircuito = db.TipoCircuitos.ToList();
  176.                
  177.                 Console.WriteLine("[!] Selecione o tipo de circuito: ");
  178.                 for(int i=0; i<tiposCircuito.Count; i++) {
  179.                     Console.WriteLine(i + " - " + tiposCircuito[i].Descricao);
  180.                 }
  181.                 bool isValidAnswer = false;
  182.                 do {
  183.                     int answer = readAnswer();
  184.  
  185.                     if(answer < 0 || answer >= tiposCircuito.Count ) {
  186.                         Console.WriteLine("[-] Seleção inválida.");
  187.                         isValidAnswer = false;
  188.                    
  189.                     } else {
  190.                         isValidAnswer = true;
  191.                         tipoCircuito = tiposCircuito[answer];
  192.  
  193.                         Circuito circuito = new Circuito {
  194.                             Nome = nome,
  195.                             Sigla = sigla,
  196.                             Complexidade = complexidade,
  197.                             Tamanho = tamanho,
  198.                             TempoMaximoConclusao = tempoMaximoConclusao,
  199.                             TipoCircuito = tipoCircuito
  200.                         };
  201.  
  202.                         db.Circuitos.Add(circuito);
  203.                         db.SaveChanges();
  204.  
  205.                         Console.WriteLine("[+] Circuito criado.");
  206.                     }
  207.  
  208.                 } while(!isValidAnswer);
  209.             }
  210.         }
  211.  
  212.         /*
  213.         * Lists all circuits on the database
  214.          */
  215.         private static void listCircuits() {
  216.             using(var db = new AppDatabaseContext()) {
  217.                 List<Circuito> circuits = db.Circuitos.Include(c => c.TipoCircuito).ToList();
  218.                 foreach(Circuito circuito in circuits) {
  219.                     Console.WriteLine(
  220.                         "ID: " + circuito.CircuitoId
  221.                         + " | Nome: " + circuito.Nome
  222.                         + " | Sigla: "  + circuito.Sigla
  223.                         + " | Complexidade: " + circuito.Complexidade
  224.                         + " | Tamanho: " + circuito.Tamanho
  225.                         + " | Tipo de Circuito: " + circuito.TipoCircuito.Descricao                        
  226.                     );
  227.                 }
  228.             }
  229.         }
  230.     }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement