示例#1
0
 public static void NovaAtualizacao(TicketHist tickethist)
 {
     DB.Insert(tickethist);
 }
示例#2
0
        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;
                    }
                }
            }