public static void NovaAtualizacao(TicketHist tickethist) { DB.Insert(tickethist); }
static void MenuNovoTicket() { //Cria cabeçalho //.................................................................................................................................................................................. Console.Clear(); Console.BackgroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Black; Console.WriteLine("Digitando nova ocorrência... (Pressione ESC para sair.)"); Console.ResetColor(); Console.Write("Assunto: (Máx. 50 caracteres.) - (Caracteres destacados em vermelho serão desprezados na gravação.)"); Console.SetCursorPosition(0, 3); Console.Write("Informe o tipo da ocorrência (1 - BUG /2 - SUGESTÃO):"); Console.SetCursorPosition(0, 5); Console.Write("Responsável pelo atendimento:"); Console.SetCursorPosition(0, 7); Console.Write("Informe a versão do software:"); Console.SetCursorPosition(0, 9); Console.Write("Informe a ocorrência:"); Console.SetCursorPosition(0, 15); Console.BackgroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Black; Console.WriteLine("Pressione [F2] para liberar a digitação e [ENTER] para confirmar!"); Console.WriteLine("Pressione [F5] para salvar!"); Console.WriteLine(@"Use as setas para cima ↑ e para baixo ↓ para navegar entre os campos!"); Console.ResetColor(); Console.SetCursorPosition(0, 2); //.................................................................................................................................................................................. long id; //ID do ticket gravado string assunto = ""; //Assunto do ticket a ser gravado var data = DateTime.Now; //Data do ticket a ser gravado Tipo_Ticket tipo = Tipo_Ticket.VAZIO; //Tipo do ticket a ser gravado string responsavel = ""; //Responsável do ticket a ser gravado string versao = ""; //Versão afetada do ticket a ser gravado string ocorrencia = ""; //Ocorrência int posicao = 1; while (true) { //Muda a posição de acordo com as setas pressionadas //.................................................................................................................................................................................. if (posicao == 1) { Console.SetCursorPosition(0, 2); } if (posicao == 2) { Console.SetCursorPosition(0, 4); } if (posicao == 3) { Console.SetCursorPosition(0, 6); } if (posicao == 4) { Console.SetCursorPosition(0, 8); } if (posicao == 5) { Console.SetCursorPosition(0, 10); } //.................................................................................................................................................................................. var key = Console.ReadKey(true); if (key.Key == ConsoleKey.UpArrow && posicao > 1) { posicao--; } if (key.Key == ConsoleKey.DownArrow && posicao < 5) { posicao++; } if (key.Key == ConsoleKey.Escape) { MenuPrincipal(); return; } //[F2] Libera a digitação if (key.Key == ConsoleKey.F2) { if (posicao == 1) { Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 2); Console.BackgroundColor = ConsoleColor.Blue; assunto = Console.ReadLine(); Console.ResetColor(); int tam_excesso = 0; if (assunto.Length > 50) { for (int i = 0; i < assunto.Length; i++) { if (i >= 50) { tam_excesso++; } } Console.SetCursorPosition(0, 2); //.................................................................. //Retorna cor padrão Console.SetCursorPosition(0, 2); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 2); Console.Write(assunto.Substring(0, 50)); //Pintando excedente do assunto em vermelho Console.SetCursorPosition(50, 2); Console.BackgroundColor = ConsoleColor.Red; Console.ForegroundColor = ConsoleColor.Black; Console.Write(assunto.Substring(50, tam_excesso)); Console.ResetColor(); //campo assunto deve ir no máximo 50 para o BD assunto = assunto.Substring(0, 50); } else { Console.SetCursorPosition(0, 2); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 2); Console.Write(assunto); } posicao++; //AVANÇA PARA O PRÓXIMO CAMPO } else if (posicao == 2) { Console.Write(new string(' ', 61)); Console.SetCursorPosition(0, 4); Console.BackgroundColor = ConsoleColor.Blue; string temp = Console.ReadLine(); if (temp == "1") { tipo = Tipo_Ticket.BUG; //Retorna cor padrão Console.SetCursorPosition(0, 4); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 4); Console.Write(temp); posicao++; //AVANÇA PARA O PRÓXIMO CAMPO } else if (temp == "2") { tipo = Tipo_Ticket.SUGESTAO; //Retorna cor padrão Console.SetCursorPosition(0, 4); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 4); Console.Write(temp); posicao++; //AVANÇA PARA O PRÓXIMO CAMPO } else { Console.SetCursorPosition(0, 4); Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Tipo chamado inválido! Siga as orientações da linha anterior."); Console.ResetColor(); } Console.SetCursorPosition(0, 6); } else if (posicao == 3) { Console.Write(new string(' ', responsavel.Length)); Console.SetCursorPosition(0, 6); Console.BackgroundColor = ConsoleColor.Blue; responsavel = Console.ReadLine(); Console.ResetColor(); //Retorna cor padrão Console.SetCursorPosition(0, 6); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 6); Console.Write(responsavel); posicao++; //AVANÇA PARA O PRÓXIMO CAMPO } else if (posicao == 4) { Console.Write(new string(' ', versao.Length)); Console.SetCursorPosition(0, 8); Console.BackgroundColor = ConsoleColor.Blue; versao = Console.ReadLine(); Console.ResetColor(); //Retorna cor padrão Console.SetCursorPosition(0, 8); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 8); Console.Write(versao); posicao++; //AVANÇA PARA O PRÓXIMO CAMPO } else if (posicao == 5) { Console.Write(new string(' ', ocorrencia.Length)); Console.SetCursorPosition(0, 10); Console.BackgroundColor = ConsoleColor.Blue; ocorrencia = Console.ReadLine(); Console.ResetColor(); //Retorna cor padrão Console.SetCursorPosition(0, 10); Console.ResetColor(); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 10); Console.Write(ocorrencia); } } //[F5] Grava o ticket if (key.Key == ConsoleKey.F5) { if (CamposPreenchidos(assunto, tipo, responsavel, versao, ocorrencia) == false) { Console.SetCursorPosition(0, 2); } else { var ticket = new Ticket() { Assunto = assunto, DataAbertura = Convert.ToString(data), Tipo = tipo, Responsavel = responsavel, VersaoAfetada = versao, Finalizado = false }; Ticket_View.NovoTicket(ticket); id = ticket.ID; var ticket_hist = new TicketHist() { ID_Ticket = id, DataHoraAlteracao = Convert.ToString(DateTime.Now), Texto = ocorrencia }; Ticket_View.NovaAtualizacao(ticket_hist); Console.SetCursorPosition(0, 14); Console.WriteLine($"Registro incluído com sucesso! ID do ticket: {ticket.ID}. Pressione alguma tecla para prosseguir."); Console.ReadKey(); MenuPrincipal(); return; } } }