private void AprovarRepasseSeTemFuncionalidade(RepasseNivelUm repasseStfCorp)
        {
            var logins = _repasseNivelUmRepository.ObterLoginsComFuncionalidadeAprovarNivelDois();

            if (logins.Contains(_variables.UserName))
            {
                var aprovarRepasseDtoNivelUm = new AprovarRepasseDto
                {
                    Id      = repasseStfCorp.Id,
                    Status  = StatusRepasseEacesso.APROVADO_NIVEL_UM.GetDescription(),
                    Usuario = _variables.UserName
                };

                if (!CelulaDestinoPagadoraExterior(repasseStfCorp.IdCelulaDestino))
                {
                    AprovarRepasseSemValidacaoCelulaExterior(aprovarRepasseDtoNivelUm);
                }
                else
                {
                    AprovarRepasse(aprovarRepasseDtoNivelUm);
                }

                if (!CelulaDestinoPagadoraExterior(repasseStfCorp.IdCelulaDestino))
                {
                    var aprovarRepasseDtoNivelDois = new AprovarRepasseNivelDoisDto
                    {
                        Id     = repasseStfCorp.Id,
                        Status = StatusRepasseEacesso.APROVADO_NIVEL_DOIS.GetDescription()
                    };
                    AprovarRepasseNivelDois(aprovarRepasseDtoNivelDois);
                }
            }
        }
        public void NegarRepasse(AprovarRepasseDto aprovarRepasseDto)
        {
            var repasseStfCorp = _repasseNivelUmRepository.BuscarPorId(aprovarRepasseDto.Id);

            repasseStfCorp.Status = aprovarRepasseDto.Status;
            //ATUALIZAÇÃO REGISTRO NA BASE [STFCORP_FENIX].[stfcorp].[EFATURAMENTO_Repasse]
            AtualizarRepasseEAcesso(repasseStfCorp);
            AtualizarRepasseQuandoAprovandoOuNegando(aprovarRepasseDto, repasseStfCorp);
        }
 public IActionResult NegarAprovarPagamento([FromBody] AprovarRepasseDto aprovarRepasseDto)
 {
     try
     {
         _repasseNivelUmService.NegarRepasse(aprovarRepasseDto);
         return(Ok(true));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
        public void AprovarRepasseSemValidacaoCelulaExterior(AprovarRepasseDto aprovarRepasseDto)
        {
            var repasseStfCorp = _repasseNivelUmRepository.BuscarPorId(aprovarRepasseDto.Id);

            /*
             *  ATUALIZAÇÃO REGISTRO NA BASE [STFCORP_FENIX].[stfcorp].[EFATURAMENTO_Repasse]
             *  SE USUÁRIO TIVER PERMISÃO APROVAÇÃO NIVEL DOIS
             */

            if (aprovarRepasseDto.Status == StatusRepasseEacesso.APROVADO_NIVEL_DOIS.GetDescription())
            {
                repasseStfCorp.Status = aprovarRepasseDto.Status;
                AtualizarRepasseEAcesso(repasseStfCorp);
            }

            AtualizarRepasseQuandoAprovandoOuNegando(aprovarRepasseDto, repasseStfCorp);
        }
        private void AtualizarRepasseQuandoAprovandoOuNegando(AprovarRepasseDto aprovarRepasseDto, RepasseNivelUm repasseNivelUm)
        {
            repasseNivelUm.Usuario = aprovarRepasseDto.Usuario;
            repasseNivelUm.Status  = aprovarRepasseDto.Status;

            LogRepasse log = new LogRepasse
            {
                IdStatusRepasse = repasseNivelUm.Status == StatusRepasseEacesso.NEGADO.GetDescription()
                    ? _dominioRepository.Buscar(x => x.DescricaoValor.Equals(StatusRepasseEacesso.NEGADO.GetDescription())).FirstOrDefault().Id
                    : _dominioRepository.Buscar(x => x.DescricaoValor.Equals(StatusRepasseEacesso.APROVADO_NIVEL_UM.GetDescription())).FirstOrDefault().Id,
                Descricao = repasseNivelUm.Status == StatusRepasseEacesso.NEGADO.GetDescription()
                    ? aprovarRepasseDto.Motivo
                    : string.Empty,
                DataAlteracao = DateTime.Now,
                Usuario       = repasseNivelUm.Usuario
            };

            repasseNivelUm.MotivoNegacao = repasseNivelUm.Status == StatusRepasseEacesso.NEGADO.GetDescription() ? aprovarRepasseDto.Motivo : null;
            repasseNivelUm.LogsRepasse.Add(log);

            if (aprovarRepasseDto.Status == StatusRepasseEacesso.APROVADO_NIVEL_DOIS.GetDescription() &&
                !CelulaDestinoPagadoraExterior(repasseNivelUm.IdCelulaDestino))
            {
                int idDominioRepasseAprovadoNivelDois = _dominioRepository.Buscar((int)StatusRepasseEacesso.APROVADO_NIVEL_DOIS, StatusRepasseEacesso.VL_TIPO_DOMINIO.GetDescription()).Id;
                log = new LogRepasse
                {
                    Id              = 0,
                    IdRepasse       = repasseNivelUm.Id,
                    IdStatusRepasse = idDominioRepasseAprovadoNivelDois,
                    Descricao       = string.Empty,
                    DataAlteracao   = DateTime.Now,
                    Usuario         = repasseNivelUm.Usuario
                };

                repasseNivelUm.LogsRepasse.Add(log);
            }

            _repasseNivelUmRepository.Update(repasseNivelUm);
            _unitOfWork.Commit();
        }