Esempio n. 1
0
        /// <summary>
        /// Inclui um suporte no banco de dados
        /// </summary>
        /// <param name="requisicaoDto"></param>
        /// <param name="retornoDto"></param>
        /// <returns></returns>
        public override bool Incluir(RequisicaoEntidadeDto <SuporteDto> requisicaoDto, ref RetornoDto retornoDto)
        {
            // Valida a requisição
            if (!base.Incluir(requisicaoDto, ref retornoDto))
            {
                return(false);
            }

            SuporteVo suporteVo    = new SuporteVo();
            string    mensagemErro = "";

            // Converte para VO a ser incluída no banco de dados
            if (!ConverterDtoParaVo(requisicaoDto.EntidadeDto, ref suporteVo, ref mensagemErro))
            {
                retornoDto.Retorno  = false;
                retornoDto.Mensagem = "Falha ao converter o suporte para VO: " + mensagemErro;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            // Prepara a inclusão no banco de dados
            if (!IncluirBd(suporteVo, ref mensagemErro))
            {
                retornoDto.Retorno  = false;
                retornoDto.Mensagem = "Falha ao converter o suporte para VO: " + mensagemErro;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            if (salvar)
            {
                // Salva as alterações
                if (!pizzaByteContexto.Salvar(ref mensagemErro))
                {
                    retornoDto.Retorno  = false;
                    retornoDto.Mensagem = mensagemErro;

                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, Guid.Empty, retornoDto.Mensagem);
                    return(false);
                }
            }

            // Se for mensagem do usuário, enviar alerta por email
            if (suporteVo.Tipo == TipoMensagemSuporte.Usuario)
            {
                string corpoEmail = $"<p> Há uma nova mensagem de suporte!</p>" +
                                    $"<p> Mensagem incluída as {suporteVo.DataInclusao}:</p>" +
                                    $"<p><strong>{suporteVo.Mensagem}</strong></p><br/>" +
                                    "<p> Entre com a senha de suporte para responder à solicitação.</p>";

                if (!UtilitarioBll.EnviarEmail("*****@*****.**", "Nova mensagem de suporte", corpoEmail, ref mensagemErro))
                {
                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, suporteVo.Id, $"Problemas para enviar a mensagem por email: {mensagemErro}");
                }

                if (!UtilitarioBll.EnviarEmail("*****@*****.**", "Nova mensagem de suporte", corpoEmail, ref mensagemErro))
                {
                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, suporteVo.Id, $"Problemas para enviar a mensagem por email: {mensagemErro}");
                }

                if (!UtilitarioBll.EnviarEmail("*****@*****.**", "Nova mensagem de suporte", corpoEmail, ref mensagemErro))
                {
                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, suporteVo.Id, $"Problemas para enviar a mensagem por email: {mensagemErro}");
                }

                if (!UtilitarioBll.EnviarEmail("*****@*****.**", "Nova mensagem de suporte", corpoEmail, ref mensagemErro))
                {
                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirSuporte, suporteVo.Id, $"Problemas para enviar a mensagem por email: {mensagemErro}");
                }
            }

            retornoDto.Retorno  = true;
            retornoDto.Mensagem = "OK";
            return(true);
        }