private static int ObterAcaoLog(ReajusteContrato reajuste)
        {
            var acao = 0;

            switch (reajuste.Situacao)
            {
            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP:
                acao = SharedEnuns.AcoesLog.AprovacaoBP.GetHashCode();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoRemuneracao:
                acao = SharedEnuns.AcoesLog.AprovacaoRem.GetHashCode();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoContrtoladoria:
                acao = SharedEnuns.AcoesLog.AprovacaoControladoria.GetHashCode();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel:
                acao = SharedEnuns.AcoesLog.AprovacaoDirCel.GetHashCode();
                break;
            }

            return(acao);
        }
        private static string ObterFuncionalidadeParaBroadcast(ReajusteContrato reajuste)
        {
            var funcionalidade = string.Empty;

            switch (reajuste.Situacao)
            {
            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP:
                funcionalidade = SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP.GetDescription();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoRemuneracao:
                funcionalidade = SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoRemuneracao.GetDescription();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoContrtoladoria:
                funcionalidade = SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoContrtoladoria.GetDescription();
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel:
                funcionalidade = SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel.GetDescription();
                break;
            }

            return(funcionalidade);
        }
        private void CriarBroadcastReajuste(ReajusteContrato reajuste)
        {
            var client = new HttpClient {
                BaseAddress = new Uri(_microServicosUrls.UrlApiControle)
            };


            var funcionalidade = ObterFuncionalidadeParaBroadcast(reajuste);

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            var response       = client.PostAsync($"api/Broadcast/criar-broadcasts-reajuste-contrato/{funcionalidade}", null).Result;
            var responseString = response.Content.ReadAsStringAsync().Result;
        }
        public void ReajustarContrato(ReajusteContrato reajusteContrato)
        {
            reajusteContrato.DataInclusao = DateTime.Now;
            reajusteContrato.Situacao     = SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP.GetHashCode();

            var prestador = _prestadorService.BuscarPorId(reajusteContrato.IdPrestador);

            // enviar emails

            EnviarEmailReajuste(reajusteContrato, prestador);
            CriarBroadcastReajuste(reajusteContrato);

            _reajusteContratoRepository.AdicionarComLog(reajusteContrato);

            _unitOfWork.Commit();
        }
        private void EnviarEmailReajusteNegacao(ReajusteContrato reajusteContrato, Prestador prestador, string motivo)
        {
            var parametros = DefinirParametrosEmailNegacao(reajusteContrato, prestador, motivo);

            var Destinatarios = BuscarEmailsParaEnvioGerente(
                SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel.GetDescription(), prestador);

            var email = new EmailDTO
            {
                IdTemplate       = 12,
                RemetenteNome    = "Gestão de Prestadores - Reajuste de Contrato",
                Para             = ObterDestinatarioEmail(Destinatarios),
                ValoresParametro = parametros
            };

            EnviarEmail(email);
        }
        public void NegarReajute(InativacaoFinalizacaoContratoDto inativacao)
        {
            var reajuste = new ReajusteContrato
            {
                Id       = inativacao.Id,
                Situacao = SharedEnuns.SituacoesReajusteContrato.ReajusteCancelado.GetHashCode()
            };

            var reajusteContrato = _reajusteContratoRepository.BuscarPorId(inativacao.Id);

            var prestador = _prestadorService.BuscarPorId(reajusteContrato.IdPrestador);

            EnviarEmailReajusteNegacao(reajuste, prestador, inativacao.Motivo);

            _reajusteContratoRepository.InativarFinalizacao(reajuste, inativacao.Motivo);

            _unitOfWork.Commit();
        }
        private IEnumerable <ValorParametroEmailDTO> DefinirParametrosEmailNegacao(
            ReajusteContrato reajusteContrato, Prestador prestador, string motivo)
        {
            var parametros = new List <ValorParametroEmailDTO>();

            var parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[NOMEPROFISSIONAL]",
                ParametroValor = prestador.Pessoa.Nome
            };

            parametros.Add(parametro);

            parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[MOTIVO]",
                ParametroValor = motivo
            };
            parametros.Add(parametro);

            return(parametros);
        }
        private void EnviarEmailReajuste(ReajusteContrato reajusteContrato, Prestador prestador)
        {
            var parametros = DefinirParametrosEmail(reajusteContrato, prestador);

            var Destinatarios = "";

            switch (reajusteContrato.Situacao)
            {
            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP:
                Destinatarios = BuscarEmailsParaEnvio(
                    SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoBP.GetDescription(), prestador);
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoRemuneracao:
                Destinatarios = BuscarEmailsParaEnvio(
                    SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoRemuneracao.GetDescription(), prestador);
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoContrtoladoria:
                Destinatarios = BuscarEmailsParaEnvio(
                    SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoContrtoladoria.GetDescription(), prestador);
                break;

            case (int)SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel:
                Destinatarios = BuscarEmailsParaEnvio(
                    SharedEnuns.SituacoesReajusteContrato.AguardandoAprovacaoDiretoriaCel.GetDescription(), prestador);
                break;
            }

            var email = new EmailDTO
            {
                IdTemplate       = 11,
                RemetenteNome    = "Gestão de Prestadores - Reajuste de Contrato",
                Para             = ObterDestinatarioEmail(Destinatarios),
                ValoresParametro = parametros
            };

            EnviarEmail(email);
        }
        private IEnumerable <ValorParametroEmailDTO> DefinirParametrosEmail(
            ReajusteContrato reajusteContrato, Prestador prestador)
        {
            var parametros = new List <ValorParametroEmailDTO>();

            var parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[NOMEPROFISSIONAL]",
                ParametroValor = prestador.Pessoa.Nome
            };

            parametros.Add(parametro);

            parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[DATACRIACAO]",
                ParametroValor = reajusteContrato.DataInclusao.ToString("dd/MM/yyyy")
            };
            parametros.Add(parametro);

            parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[NUMERONOMECELULA]",
                ParametroValor = prestador.IdCelula.ToString()
            };
            parametros.Add(parametro);

            parametro = new ValorParametroEmailDTO
            {
                ParametroNome  = "[LINK]",
                ParametroValor = ObterLinkAprovacaoReajuste()
            };
            parametros.Add(parametro);

            return(parametros);
        }