/// <summary>
        /// Pegando informações da empresa no arquivo de configuração da mesma.
        /// </summary>
        /// <returns>Informações da empresa</returns>
        public Empresa Load()
        {
            StreamReader sr = null;
            Empresa EmpresaBase = new Empresa();

            try
            {
                sr = new StreamReader("Empresa.CFG");

                EmpresaBase.Nome = sr.ReadLine();
                EmpresaBase.Contato = sr.ReadLine();
                EmpresaBase.Endereco = sr.ReadLine();

            }
            catch (Exception Exc)
            {
                Arquivos.ArquivoLog Log = new Arquivos.ArquivoLog();

                Log.ArquivoExceptionLog(Exc);
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                }
            }

            return EmpresaBase;
        }
        /// <summary>
        /// Pegando informações da empresa no arquivo de configuração da mesma.
        /// </summary>
        /// <returns>Informações da empresa</returns>
        public static Empresa Load()
        {
            StreamReader sr = null;
            Empresa EmpresaBase = new Empresa();
            string CaminhoDoArquivo = String.Format("{0}/Empresa.CFG",Ferramentas.ObterCaminhoDoExecutavel());

            try
            {
                sr = new StreamReader(CaminhoDoArquivo);

                EmpresaBase.Nome = sr.ReadLine();
                EmpresaBase.Contato = sr.ReadLine();
                EmpresaBase.Endereco = sr.ReadLine();

            }
            catch (Exception Exc)
            {
                ControllerArquivoLog.GeraraLog(Exc);
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                }
            }

            return EmpresaBase;
        }
        /// <summary>
        ///  Enviando Email inicial, quando e aberto uma Ordem de Serviço
        /// </summary>
        /// <param name="NomeUsuario"></param>
        public static string EnviarOrdemDeServiço(OrdemServico OS, Empresa InfoEmpresa, Pessoa cliente)
        {
            string Saida = " ";
            string MenssagemBase = string.Format("Olá {0}, sua ordem de serviço n° {1} foi criado com sucesso! O arquivo segue em anexo a este e-mail", cliente.Nome, OS.ID);

            Email EmailBase = new Email();

            EmailBase = ControllerEmail.CarregarInformacoesLoginServidor();//Carregando informações do servidor.

            SmtpClient smtp = new SmtpClient(EmailBase.Host, EmailBase.Port);   //Servidor
            MailMessage mail = new MailMessage(); //Menssagem
            mail.From = new MailAddress(EmailBase.email);

            //Configurando servidor.
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(EmailBase.email, EmailBase.Senha);//Passando Login e senha do e-mail da empresa(para enviar)

            //Assunto do email.
            mail.Subject = String.Format("Ordem de serviço [ {0} ]", InfoEmpresa.Nome);

            //Informando sobre o corpo.
            mail.IsBodyHtml = true;

            //Conteúdo do email.
            mail.Body = MenssagemBase;

            //Adicionando E-mail do cliente para enviar.
            mail.To.Add(cliente.Email);

            //Prioridade de Envio.
            mail.Priority = MailPriority.High;
            // Criar o arquivo anexo para esse e-mail.
            string file = String.Format("{0}/OS.pdf", Path.GetTempPath());//TODO:Rever Esse Código.

            Attachment data = new Attachment(file);

            data.Name = String.Format("{0}.pdf", OS.ID); //Mudando o nome do arquivo antes de enviar o E-mail.

            //Inclui o arquivo anexo.
            mail.Attachments.Add(data); //Caminho de onde o arquivo da Ordem de serviço é salvo.

            try
            {
                //Envia o email.
                smtp.Send(mail);

                Saida = "E-mail enviado com sucesso!";
            }
            catch (System.Exception exc)
            {
                //Gerando arquivo de Log
                ControllerArquivoLog.GeraraLog(exc);

                Saida = "Ocorreu um erro ao enviar o Email " + exc.Message;
            }

            return Saida;
        }
        /// <summary>
        /// Recuperando informações da empresa
        /// </summary>
        /// <returns>Nome da empresa</returns>
        private string NomeEmpresa()
        {
            Empresa EmpresaBase = new Empresa();
            ControllerEmpresa controllerEmpresa = new ControllerEmpresa();

            string NomeEmpresa = "Não encontrado";

            NomeEmpresa = controllerEmpresa.Load().Nome;

            return NomeEmpresa;
        }
        /// <summary>
        /// Gerando PDF da ordem de serviço. (A ordem de serviço em PDF não fica salvar ela é gerada cada vez que a função é chamada)
        /// </summary>
        /// <param name="Identificador"></param>
        /// <param name="Referencia"></param>
        /// <param name="Situacao"></param>
        /// <param name="Defeito"></param>
        /// <param name="Descricao"></param>
        /// <param name="Observacao"></param>
        /// <param name="NumeroSerie"></param>
        /// <param name="Equipamento"></param>
        /// <param name="DataEntradaServico"></param>
        /// <param name="Cliente"></param>
        public void CreatPDF(string Identificador, string Referencia, string Situacao, string Defeito, string Descricao, string Observacao, string NumeroSerie, string Equipamento, string DataEntradaServico, string Cliente)
        {
            Document Documento = new Document();
            string local = String.Format("{0}/OS.pdf", Path.GetTempPath());
            PdfWriter.GetInstance(Documento, new FileStream(local, FileMode.Create));
            Empresa Empresa = new Empresa();
            ControllerEmpresa controllerEmpresa = new ControllerEmpresa();

            Paragraph _identificador = new Paragraph();
            Paragraph _cliente = new Paragraph();
            Paragraph _dataEntrada = new Paragraph();
            Paragraph _equipamento = new Paragraph();
            Paragraph _defeito = new Paragraph();
            Paragraph _situacao = new Paragraph();
            Paragraph _descricao = new Paragraph();
            Paragraph _numeroSerie = new Paragraph();
            Paragraph _referencia = new Paragraph();
            Paragraph _observacoes = new Paragraph();
            Paragraph _linha = new Paragraph();
            Paragraph _linhaEmBranco = new Paragraph();
            Paragraph _cabecalho = new Paragraph();
            Paragraph _nomeEmpresa = new Paragraph();
            Paragraph _contatoEmpresa = new Paragraph();
            Paragraph _enderecoEmpresa = new Paragraph();

            //Alinhado o Cabeçalho no meio da pagina;
            _cabecalho.Alignment = Element.ALIGN_CENTER;
            _cabecalho.Add("Ordem de serviço");
            _linha.Add("______________________________________________________________________________");
            _linhaEmBranco.Add(" ");
            _identificador.Add(String.Format("Numero da ordem: {0}", Identificador));
            _cliente.Add(String.Format("Cliente: {0}", Cliente));
            _dataEntrada.Add(String.Format("Data de entrada: {0}", DataEntradaServico));
            _equipamento.Add(String.Format("Equipamento: {0}", Equipamento));
            _situacao.Add(String.Format("Situação: {0}", Situacao));
            _defeito.Add(String.Format("Defeito: {0}", Defeito));
            _descricao.Add(String.Format("Descrição: {0}", Descricao));
            _numeroSerie.Add(String.Format("Numero de serie: {0}", NumeroSerie));
            _referencia.Add(String.Format("Referência: {0}", Referencia));
            _observacoes.Add(String.Format("Observações: {0}", Observacao));

            //Carregando informações da empresa
            Empresa = controllerEmpresa.Load();
            _nomeEmpresa.Add(Empresa.Nome);
            _contatoEmpresa.Add(Empresa.Contato);
            _enderecoEmpresa.Add(Empresa.Endereco);

            Documento.Open();

            Documento.Add(_cabecalho);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_linhaEmBranco);

            Documento.Add(_nomeEmpresa);
            Documento.Add(_contatoEmpresa);
            Documento.Add(_enderecoEmpresa);

            Documento.Add(_linha);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_identificador);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_cliente);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_dataEntrada);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_linha);

            Documento.Add(_linhaEmBranco);
            Documento.Add(_equipamento);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_situacao);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_defeito);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_descricao);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_numeroSerie);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_referencia);
            Documento.Add(_linhaEmBranco);
            Documento.Add(_observacoes);

            Documento.Close();

            Process.Start(local);
        }