Example #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            if (Construtora.Imagem != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(Construtora.Imagem, 307200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    Construtora.Logotipo = _imagemLogotipo;
                }
            }

            _context.Construtoras.Add(Construtora);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
Example #2
0
        public async Task <IActionResult> OnGetAsync()
        {
            ViewData["TotalRegistros"] =
                _context.AppPerfil.Count() +
                _context.AppConfiguracoes.Count() +
                _context.AppConfiguracoes_Aplicativo.Count() +
                _context.AppConfiguracoes_Azure.Count();

            var _meuip         = VerificadoresRetornos.GetPublicIP();
            var _novoobjip2loc = new ObjetoIP2Loc();
            var _resultado_GEO =
                await ChamaREST
                .Current
                .GetAsync <ObjetoIP2Loc>($"http://xnspirit.api.depoisdalinha.com.br/api/buscar/{_meuip}", false);

            if (_resultado_GEO != null)
            {
                _novoobjip2loc.ip       = _meuip;
                _novoobjip2loc.cep      = _resultado_GEO.cep;
                _novoobjip2loc.cidade   = _resultado_GEO.cidade;
                _novoobjip2loc.codpais  = _resultado_GEO.codpais;
                _novoobjip2loc.estado   = _resultado_GEO.estado;
                _novoobjip2loc.lat      = _resultado_GEO.lat;
                _novoobjip2loc.lon      = _resultado_GEO.lon;
                _novoobjip2loc.nomepais = _resultado_GEO.nomepais;
                _novoobjip2loc.timezone = _resultado_GEO.timezone;

                ObjetoIP2LocModelo = _novoobjip2loc;
            }

            return(Page());
        }
        public async Task <object> MensagensNaoLidas()
        {
            try
            {
                var _u = await _context.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name);

                var _retorno = new List <object>();

                var _mensNaoLidas = _context
                                    .tblHubConversas
                                    .Where(x => x.Para == _u.Id && !x.Lida)
                                    .ToList();

                var _agrupadoRecebido = _context
                                        .tblHubConversas
                                        .Where(x => x.Para == _u.Id && !x.Lida)
                                        .GroupBy(e => new
                {
                    e.De,
                    e.DeCnxId,
                    e.Para,
                    e.DTHR,
                    e.Id,
                    e.Lida,
                    e.Mensagem,
                    e.ParaCnxId
                })
                                        .Select(g => g.First())
                                        .OrderByDescending(x => x.DTHR)
                                        .Distinct(d => d.De);

                foreach (var item in _agrupadoRecebido)
                {
                    var _ude = _context.Users.FirstOrDefault(x => x.Id == item.De);
                    _retorno.Add(new
                    {
                        item.Id,
                        dthr = VerificadoresRetornos.TemposAtras(item.DTHR),
                        item.De,
                        de_nome     = _ude.Nome + " " + _ude.Sobrenome,
                        de_avatar   = _ude.AvatarUsuario,
                        menscortada = item.Mensagem.Length > 80 ? item.Mensagem.Substring(0, 80) + " ..." : item.Mensagem,
                        mens        = item.Mensagem,
                        lida        = !item.Lida ? 0 : 1
                    });
                }

                return(new
                {
                    status = "ok",
                    dados = _retorno
                });
            }
            catch (Exception) { }

            return(new { status = "erro", dados = "" });
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByEmailAsync(Input.Email);

                if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
                {
                    // Don't reveal that the user does not exist or is not confirmed
                    return(RedirectToPage("./ForgotPasswordConfirmation"));
                }

                // For more information on how to enable account confirmation and password reset please
                // visit https://go.microsoft.com/fwlink/?LinkID=532713
                var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                var callbackUrl = Url.Page(
                    "/Account/ResetPassword",
                    pageHandler: null,
                    values: new { code },
                    protocol: Request.Scheme);

                // instanciar objeto email
                var _configAplicacoes =
                    _contexto.AppConfiguracoes_Aplicativo
                    .FirstOrDefault();

                var _objemail = new ObjetoEmailEnvio()
                {
                    ASSUNTO                   = "[ESQUECEU SUA SENHA] House2Invest",
                    COPIA                     = _configAplicacoes.mailToAdd,
                    mailFrom                  = _configAplicacoes.mailFrom,
                    MENSAGEM                  = string.Format($"Olá!!!{Environment.NewLine}<br/>Você solicitou um reset de senha.<br/>Clique <a href='" + callbackUrl + "'>AQUI</a> para alterar a sua senha."),
                    PARA                      = Input.Email,
                    smtpCredentialsEmail      = _configAplicacoes.smtpCredentialsEmail,
                    smtpCredentialsSenha      = _configAplicacoes.smtpCredentialsSenha,
                    smtpEnableSsl             = _configAplicacoes.smtpEnableSsl,
                    smtpHost                  = _configAplicacoes.smtpHost,
                    smtpPort                  = _configAplicacoes.smtpPort,
                    smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
                };
                var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);

                //await _emailSender.SendEmailAsync(
                //    Input.Email,
                //    "Reset Password",
                //    $"Please reset your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                return(RedirectToPage("./ForgotPasswordConfirmation"));
            }

            return(Page());
        }
        public async Task <object> Historico(string de)
        {
            try
            {
                var _para = await _context.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name);

                var _retorno = new List <object>();

                var _historico = _context.tblHubConversas
                                 .Where(x => x.De == de && x.Para == _para.Id || x.Para == de && x.De == _para.Id)
                                 .OrderBy(x => x.DTHR);

                var _lista = _historico.ToList();
                foreach (var item in _lista)
                {
                    var _item = await _context.tblHubConversas
                                .FirstOrDefaultAsync(x => x.Id == item.Id);

                    if (_item != null)
                    {
                        _item.Lida = true;
                        //_context.Attach(_item).State = EntityState.Modified;
                        await _context.SaveChangesAsync();
                    }
                }

                foreach (var item in _historico)
                {
                    _retorno.Add(new
                    {
                        dthr = VerificadoresRetornos.TemposAtras(item.DTHR),
                        mens = item.Mensagem,
                        flag = item.De == de ? "R" : "E"
                    });
                }

                return(new
                {
                    status = "ok",
                    dados = _retorno
                });
            }
            catch (Exception) { }

            return(new { status = "erro", dados = "" });
        }
Example #6
0
        public async Task <IActionResult> OnPost(string returnUrl = null)
        {
            await _signInManager.SignOutAsync();

            try
            {
                var _usu = _context.Users
                           .Where(x => x.UserName == User.Identity.Name)
                           .FirstOrDefault();

                //--------------------------------
                // LOGCENTRAL
                //--------------------------------
                var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
                var _ips = new string[] { ip, "value2" };

                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-sign-out-alt text-warning'></i>",
                    MENSAGEM            = $"<img src='{_usu.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{_usu.Nome} {_usu.Sobrenome}</b> usando o email <b>{_usu.Email}</b> fez <b style='color:darkblue;'>LOGOFF</b> na plataforma.",
                    ACAO                = $"LOGOFF",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = "SUCESSO",
                    TIPO                = "ACESSO A PLATAFORMA",
                    UsuarioAppId        = _usu.Id,
                    VALOR               = 0,
                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                }, _context);
            }
            catch (System.Exception) { }

            //_logger.LogInformation("User logged out.");
            //if (returnUrl != null)
            //{
            //    return LocalRedirect(returnUrl);
            //}
            //else
            //{
            //    return Page();
            //}
            return(Redirect("/"));
        }
Example #7
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            //var user = await _userManager.GetUserAsync(User);
            var user = await _context.Users
                       .Where(x => x.UserName.ToLower().Trim() == Input.UserName.ToLower().Trim())
                       .FirstOrDefaultAsync();

            if (user == null)
            {
                return(NotFound($"Não pude carregar dados do usuário ID '{_userManager.GetUserId(User)}'."));
            }

            try
            {
                user.Nome      = Input.Nome;
                user.Sobrenome = Input.Sobrenome;

                user.Contato_CEP           = Input.Contato_CEP;
                user.Contato_Logradouro    = Input.Contato_Logradouro;
                user.Contato_LogradouroNum = Input.Contato_LogradouroNum;
                user.Contato_Complemento   = Input.Contato_Complemento;
                user.Contato_Bairro        = Input.Contato_Bairro;
                user.Contato_Cidade        = Input.Contato_Cidade;
                user.Contato_Estado        = Input.Contato_Estado;

                user.Financeiro_Banco_Nome = Input.Financeiro_Banco_Nome;
                user.Financeiro_Banco_CC   = Input.Financeiro_Banco_CC;
                user.Financeiro_Banco_Ag   = Input.Financeiro_Banco_Ag;

                var _config = _context.AppPerfil
                              .Include(x => x.AppConfiguracoes)
                              .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                              .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                              .FirstOrDefault();

                var _errosValidacoes = false;
                if (Input.ImagemSelfieFRENTE != null)
                {
                    var _imagemLogotipo =
                        await VerificadoresRetornos
                        .EnviarImagemAzure(Input.ImagemSelfieFRENTE, 614200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                    {
                        user.Sistema_URLSelfieDocFRENTE = _imagemLogotipo;
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                        _errosValidacoes = true;
                    }
                }
                //else
                //{
                //    ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
                //    _errosValidacoes = true;
                //}

                if (Input.ImagemSelfieVERSO != null)
                {
                    var _imagemLogotipo =
                        await VerificadoresRetornos
                        .EnviarImagemAzure(Input.ImagemSelfieVERSO, 614200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                    {
                        user.Sistema_URLSelfieDocVERSO = _imagemLogotipo;
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                        _errosValidacoes = true;
                    }
                }
                //else
                //{
                //    ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
                //    _errosValidacoes = true;
                //}

                if (_errosValidacoes)
                {
                    Input.Sistema_URLSelfieDocFRENTE = @"/images/220px-Modelo_da_nova_carteira_de_identidade_brasileira.png";
                    Input.Sistema_URLSelfieDocVERSO  = @"/images/220px-Modelo_da_nova_carteira_de_identidade_brasileira.png";
                    return(Page());
                }

                _context.Attach(user).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }
            catch (Exception) { }

            var email = await _userManager.GetEmailAsync(user);

            if (Input.UserName != email)
            {
                var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

                if (!setEmailResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Ocorreu um erro inesperado ao configurar o email para o usuário com o ID '{userId}'.");
                }
            }

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            if (Input.PhoneNumber != phoneNumber)
            {
                var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

                if (!setPhoneResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Ocorreu um erro inesperado ao definir o número de telefone do usuário com o ID '{userId}'.");
                }
            }

            //await _signInManager.RefreshSignInAsync(user);
            StatusMessage = "Seu perfil foi atualizado";

            return(Redirect("/Identity/Account/Manage"));
        }
Example #8
0
        /*
         * RE 2e. Evidência de que a plataforma restitui os montantes investidos
         *      para os investidores, num prazo de até 5 dias úteis, nos casos de
         *      revogação (após suspensão) ou cancelamento da oferta.
         *
         * CONTROLE DE TRANSFERÊNCIAS EM CASO DE:
         * SITUAÇÃO:
         * (I)	SUSPENSÃO DA OFERTA:
         *  a.	H2i deve Informar por e-mail que a CVM suspendeu oferta e a h2i
         *      tem 30 dias para atender a exigência.
         *  b.	O investidor pode enviar e-mail solicitando a revogação da oferta.
         *      Se mandar, a H2i deverá restituir o valor integral em até
         *      5 dias contados do recebimento do e-mail
         *
         * (II)	SUSPENSÃO CONVALIDAR EM CANCELAMENTO
         *  a.	Se a CVM cancelar a oferta, os investidores devem ser
         *      restituídos em 5 dias úteis contados do cancelamento.
         *
         * (III)   Encerramento da Oferta – Concluído o processo de captação com êxito
         *  a.	Transferência para SPE o montante final captado no prazo
         *      de até 5 dias úteis após a data do encerramento.
         *
         *  b.	Devolução do valor investido acrescido da remuneração do capital
         *      ao final do período contratado ao final do prazo de validade do título
         *
         * (IV)	Restituição do montante final investido quando o valor
         *      alvo mínimo não atingir 2/3 (dois terços) do valor alvo máximo;
         *
         */
        public async Task <JsonResult> OnPostAsync()
        {
            /*
             *  Evidenciar a tipificação do investidor de acordo com o montante:
             *  a) novo investidor investindo menos de 10mil
             *  b) novo investidor investindo mais de 10 mil
             *  c) investidor fazendo novo aporte em oferta, com total menor de 10mil (acumulado)
             *  d) investidor fazendo novo aporte em oferta, com total maior de 10mil (acumulado)
             *  e) investidor fazendo novo aporte em oferta, com total menor de 100mil (acumulado)
             *  f) autodeclaração de valores acumulados multiplataforma
             */

            double _valormoeda = 0;

            try
            {
                if (modelo.ArquivoComprovResid == null)
                {
                    return(new JsonResult(new
                    {
                        status = "arq_comprov_resid",
                        mens = "Você precisa enviar um comprovante de residência"
                    }));
                }

                if (modelo.AceitouTermos == false)
                {
                    return(new JsonResult(new
                    {
                        status = "termos",
                        mens = "Você precisa ler e aceitar os Termos desta oferta"
                    }));
                }

                if (string.IsNullOrEmpty(modelo.usuarioObjeto.Financeiro_Banco_Nome) ||
                    string.IsNullOrEmpty(modelo.usuarioObjeto.Financeiro_Banco_Ag) ||
                    string.IsNullOrEmpty(modelo.usuarioObjeto.Financeiro_Banco_CC))
                {
                    return(new JsonResult(new
                    {
                        status = "info_usu_banco",
                        mens = "Você precisa corrigir suas informações bancárias."
                    }));
                }

                if (string.IsNullOrEmpty(modelo.usuarioObjeto.Sistema_URLSelfieDocFRENTE) ||
                    string.IsNullOrEmpty(modelo.usuarioObjeto.Sistema_URLSelfieDocVERSO))
                {
                    return(new JsonResult(new
                    {
                        status = "info_usu_selfies",
                        mens = "Envie um documento com foto (Frente/Verso) antes de solicitar uma reserva.<br> <a href='/Identity/Account/Manage'>Clique aqui para resolver isso</a>"
                    }));
                }

                if (string.IsNullOrEmpty(modelo.PerfilInvestidorInformado))
                {
                    return(new JsonResult(new
                    {
                        status = "perfil_investidor",
                        mens = "Você precisa selecionar um PERFIL DE INVESTIDOR"
                    }));
                }

                var _usuario = _context.Users
                               .Where(x => x.UserName == User.Identity.Name)
                               .FirstOrDefault();

                _valormoeda = Convert.ToDouble(modelo.ValorInvestido);

                var _bloco = _context.BlocoProjInvestimentos
                             .Where(x => x.Id == Convert.ToInt32(modelo.blocoProjInvestimento.Id))
                             .FirstOrDefault();

                //if (_valormoeda > 10000 && _usuario.Financeiro_Investidor_Perfil == "C")
                //{
                //    return Page();
                //    //return new
                //    //{
                //    //    Status = "erro",
                //    //    Mens = $"VALOR SUPERIOR A <b>R$ 10.000,00</b>.<br> Deseja alterar o seu perfil de investidor? Clique <a href='/Correio/Conversas?uid=2751483e-2c65-4629-84b5-abc20c940c1c&idinv=" + modelo.blocoProjInvestimento.Id + "' target='_blank'><b>AQUI</b></a>.",
                //    //    Dados = "",
                //    //    Total = 0
                //    //};
                //}

                //if (_valormoeda > 1000000 && _usuario.Financeiro_Investidor_Perfil == "B")
                //{
                //    return Page();
                //    //return new
                //    //{
                //    //    Status = "erro",
                //    //    Mens = $"VALOR SUPERIOR A <b>R$ 1.000.000,00</b>.<br> Deseja alterar o seu perfil de investidor? Clique <a href='/Correio/Conversas?uid=2751483e-2c65-4629-84b5-abc20c940c1c&idinv=" + modelo.blocoProjInvestimento.Id + "' target='_blank'><b>AQUI</b></a>.",
                //    //    Dados = "",
                //    //    Total = 0
                //    //};
                //}

                var _valortotalgeral = 0.0;
                try
                {
                    _valortotalgeral = _context.INVEST_Lancamentos
                                       //.Where(x => x.BlocoProjInvestimentosId == _bloco.Id && x.Status == "A")
                                       .Where(x => x.BlocoProjInvestimentosId == _bloco.Id)
                                       .Sum(x => x.Valor);
                }
                catch (Exception) { }
                var _valorbloco = Convert.ToDouble(_bloco.Valor);
                if (_valormoeda + _valortotalgeral > _valorbloco)
                {
                    return(new JsonResult(new
                    {
                        status = "valor",
                        mens = $"Infelizmente não podemos aportar o valor total da sua reserva, pois o valor informado ultrapassa o limite esperado desta oferta.<br>O valor excedido foi de: <b>{(_valormoeda + _valortotalgeral - _valorbloco).ToString("C2")}</b>"
                    }));

                    //return Page();
                    //return new
                    //{
                    //    Status = "erro",
                    //    Mens = $"O VALOR QUE VOCÊ DESEJA INVESTIR, ULTRAPASSA O VALOR TOTAL DA OFERTA. INVISTA UM VALOR MENOR.",
                    //    Dados = "",
                    //    Total = 0
                    //};
                }

                //var _totalinvestido = 0.0;
                //try
                //{
                //    _totalinvestido = _context.INVEST_Lancamentos
                //        .Where(x => x.UsuarioAppId == _usuario.Id)
                //        .Sum(x => x.Valor);
                //}
                //catch (Exception) { }

                //if (_valormoeda + _totalinvestido > _valorbloco)
                ////if (_valormoeda + _totalinvestido > (_usuario.Financeiro_Investidor_Perfil == "C" ? 10000 : _usuario.Financeiro_Investidor_Perfil == "B" ? 1000000 : 10000))
                //{
                //    //var _valorfinal = ((_usuario.Financeiro_Investidor_Perfil == "C" ? 10000 : _usuario.Financeiro_Investidor_Perfil == "B" ? 1000000 : 10000) - _totalinvestido);
                //    var _valorfinal = _valormoeda + _totalinvestido;
                //    //return Page();
                //    return new JsonResult(new
                //    {
                //        status = "valor",
                //        mens = $"VOCÊ ULTRAPASSOU O LIMITE DE INVESTIMENTO PARA O SEU PERFIL.<br> ULTRAPASSADO: <b>R$ " + (_valorfinal - _valorbloco).ToString("C2") + "</b>.<br> Deseja alterar seu perfil? Clique <a href='/Correio/Conversas?uid=2751483e-2c65-4629-84b5-abc20c940c1c&idinv=" + modelo.blocoProjInvestimento.Id + "' target='_blank'>AQUI</a>."
                //    });

                //    //return new
                //    //{
                //    //    Status = "erro",
                //    //    Mens = $"VOCÊ ULTRAPASSOU O LIMITE DE INVESTIMENTO PARA O SEU PERFIL.<br> SEU SALDO É DE: <b>R$ " + _valorfinal.ToString("C2") + "</b>.<br> Deseja alterar seu perfil? Clique <a href='/Correio/Conversas?uid=2751483e-2c65-4629-84b5-abc20c940c1c&idinv=" + modelo.blocoProjInvestimento.Id + "' target='_blank'>AQUI</a>.",
                //    //    Dados = "",
                //    //    Total = 0
                //    //};
                //}

                //_context.BlocoProjInvestimentoValores.Add(new BlocoProjInvestimentoValor()
                //{
                //    BlocoProjInvestimentoId = Convert.ToInt32(_id),
                //    UsuarioAppId = _usuario.Id,
                //    Valor = _valormoeda
                //});
                //await _context.SaveChangesAsync();

                //-------------------
                // OBJETO USUARIO
                //-------------------
                //var _pegaUsu =
                //    _context.Users
                //    .Where(x => x.UserName == User.Identity.Name)
                //    .FirstOrDefault();

                //-------------------
                // LOGS FINANCEIROS
                //-------------------
                // LANCAMENTO
                var _novoLancamento = new INVEST_Lancamento()
                {
                    BlocoProjInvestimentosId = Convert.ToInt32(modelo.blocoProjInvestimento.Id),
                    UsuarioAppId             = _usuario.Id,
                    TP     = "E",
                    Valor  = _valormoeda,
                    Status = "P",
                    PerfilInvestidorInformado = modelo.PerfilInvestidorInformado
                };
                _context.INVEST_Lancamentos.Add(_novoLancamento);
                await _context.SaveChangesAsync();

                var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
                var _ips = new string[] { ip, "value2" };

                //var _valormindoc = Convert.ToDouble(_context.BlocoProjInvestimentos.Where(x => x.Id == Convert.ToInt32(modelo.blocoProjInvestimento.Id)).FirstOrDefault().ValorMinimoDocs);
                //if (_valormoeda > _valormindoc)
                //{

                // LANCAMENTOS DOC
                var _listaItensDoc =
                    await _context.BlocoProjInvestimento_ItemDocs
                    .Include(x => x.INVEST_ModeloDoc)
                    .Where(x => x.BlocoProjInvestimentoId == _novoLancamento.BlocoProjInvestimentosId)
                    .ToListAsync();

                var _indiceCuringaModeloDocProblemaReferencia = 0;
                foreach (var item in _listaItensDoc)
                {
                    var _novoLancamentoDoc = new INVEST_LancamentoDoc()
                    {
                        INVEST_LancamentoId = _novoLancamento.Id,
                        INVEST_ModeloDocId  = item.INVEST_ModeloDocId,
                        URLDoc = "",
                        TP     = "A"
                    };
                    _context.INVEST_LancamentoDocs.Add(_novoLancamentoDoc);
                    await _context.SaveChangesAsync();

                    _indiceCuringaModeloDocProblemaReferencia = item.INVEST_ModeloDocId;
                }

                foreach (var item in _listaItensDoc)
                {
                    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                    {
                        ICOMENS             = "<i class='fas fa-file-signature text-primary'></i>",
                        MENSAGEM            = $"ASSINOU DIGITALMENTE {item.INVEST_ModeloDoc.Titulo}",
                        ACAO                = $"ASSINATURA DIGITAL",
                        DTHR                = DateTime.Now,
                        IP                  = _ips.FirstOrDefault(),
                        STATUS              = "",
                        TIPO                = "NOTIFICAÇÃO",
                        UsuarioAppId        = _usuario.Id,
                        VALOR               = _novoLancamento.Valor,
                        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                    }, _context);
                }

                var _textoAnexos = "";
                var fileName     = "";
                var _config      = _context.AppPerfil
                                   .Include(x => x.AppConfiguracoes)
                                   .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                                   .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                                   .FirstOrDefault();

                //----------
                // ANEXO4-C
                //----------
                if (modelo.PerfilInvestidorInformado == "C")
                {
                    _textoAnexos += $"<div style='text-align:center;'><b>ANEXO 4-C</b></div>";
                    _textoAnexos += $"<div style='text-align:center;margin-top:0px;margin-bottom:25px;'><b>{HttpUtility.HtmlEncode("DECLARAÇÃO")}</b></div>";
                    _textoAnexos += $"<div style='text-align:justify !important;'>";
                    _textoAnexos += $"Declaro, sob as penas da lei, que:<br>";
                    _textoAnexos += $"1. o valor de meu investimento na oferta de <b style='font-size:14px;color:grey !important;margin-left:15px;margin-right:15px;font-weight:normal !important;'>[emissor]</b>, quando somado ao valor de <b style='font-size:14px;color:grey !important;margin-left:15px;margin-right:15px;font-weight:normal !important;'>[montante]</b> que {HttpUtility.HtmlEncode("já")} investi no {HttpUtility.HtmlEncode("ano-calendário")} em ofertas dispensadas de registro na {HttpUtility.HtmlEncode("Comissão de Valores Mobiliários (CVM)")} por meio de plataformas {HttpUtility.HtmlEncode("eletrônicas")} investimento participativo (crowdfunding de investimento), {HttpUtility.HtmlEncode("não")} ultrapassa R$ 10.000,00 (dez mil reais).<br><br>";
                    _textoAnexos += $"2. entendo que o limite de R$ 10.000,00 (dez mil reais) tem por objetivo proteger os investidores em {HttpUtility.HtmlEncode("razão do nível")} de risco e da falta de liquidez associados aos investimentos por meio de crowdfunding.<br><br>";
                    _textoAnexos += $"3. entendo ser minha responsabilidade observar que o valor total de meus investimentos realizados no {HttpUtility.HtmlEncode("ano-calendário")} em todas as plataformas de crowdfunding de investimento combinadas {HttpUtility.HtmlEncode("não")} ultrapassa o limite.<br>";
                    _textoAnexos += $"</div><br><br><br>";
                    _textoAnexos += $"<b>{HttpUtility.HtmlEncode("SÃO PAULO")}, {DateTime.Now.ToLongDateString().ToUpper()}</b><br><br><br><br><br><br><br>";
                    _textoAnexos += $"<hr style='display:block;width:60%;margin-top:0px;margin-bottom:0px;float:left;'><br>";
                    _textoAnexos += $"<b style='margin-top:-25px;'>{HttpUtility.HtmlEncode(_usuario.Nome)} {_usuario.Sobrenome} /// {_usuario.Documentacao_CPF}</b><br>";
                    _textoAnexos += $"<br><br><br><br>";
                    _textoAnexos += $"<div style='margin-top:25px;'>";
                    _textoAnexos += $"<b style='color:grey!important;font-size:8px!important;font-weight:normal!important;'>Registro H2I: Esse ANEXO4-C foi assinado digitalmente por {HttpUtility.HtmlEncode("você")} no dia {DateTime.Now.ToShortDateString()} {HttpUtility.HtmlEncode("às")} {DateTime.Now.ToShortTimeString()} a partir do IP: {_ips.FirstOrDefault()} referente a reserva de {_valormoeda.ToString("C2")} na oferta {HttpUtility.HtmlEncode(_bloco.Titulo)} </i>";
                    _textoAnexos += $"</div>";

                    fileName = $"{Guid.NewGuid().ToString()}-anexo4c.html";
                }
                else if (modelo.PerfilInvestidorInformado == "B")
                {
                    _textoAnexos += $"<div style='text-align:center;'><b>ANEXO 4-B</b></div>";
                    _textoAnexos += $"<div style='text-align:center;margin-top:0px;margin-bottom:25px;'><b>{HttpUtility.HtmlEncode("DECLARAÇÃO")}</b></div>";

                    _textoAnexos += $"<div style='text-align:justify !important;'>";
                    _textoAnexos += $"Declaro, sob as penas da lei, que:<br>";
                    _textoAnexos += $"1. possuo renda bruta anual ou investimentos financeiros em valor superior a R$ 100.000,00 (cem mil reais).<br><br>";
                    _textoAnexos += $"2. o valor de meu investimento na oferta de <b style='font-size:14px;color:grey !important;margin-left:15px;margin-right:15px;font-weight:normal !important;'>[ emissor ]</b>, quando somado ao valor de R$ <b style='font-size:14px;color:grey !important;margin-left:15px;margin-right:15px;font-weight:normal !important;'>[ montante ]</b> que {HttpUtility.HtmlEncode("já")} investi no {HttpUtility.HtmlEncode("ano-calendário")} em ofertas dispensadas de registro na {HttpUtility.HtmlEncode("Comissão de Valores Mobiliários (CVM)")} por meio de plataformas {HttpUtility.HtmlEncode("eletrônicas")} investimento participativo (crowdfunding de investimento), {HttpUtility.HtmlEncode("não")} ultrapassa 10% (dez por cento) do maior entre: (a) minha renda bruta anual; ou (b) o montante total de meus investimentos financeiros.<br><br>";
                    _textoAnexos += $"3. entendo que o limite de 10% (dez por cento) tem por objetivo proteger os investidores em {HttpUtility.HtmlEncode("razão do nível")} de risco e da falta de liquidez associados aos investimentos por meio de crowdfunding.<br><br>";
                    _textoAnexos += $"4. entendo ser minha responsabilidade observar que o valor total de meus investimentos realizados no {HttpUtility.HtmlEncode("ano-calendário")} em todas as plataformas de crowdfunding de investimento combinadas {HttpUtility.HtmlEncode("não")} ultrapassa o limite.";
                    _textoAnexos += $"</div><br><br><br>";
                    _textoAnexos += $"<b>{HttpUtility.HtmlEncode("SÃO PAULO")}, {DateTime.Now.ToLongDateString().ToUpper()}</b><br><br><br><br><br><br><br>";
                    _textoAnexos += $"<hr style='display:block;width:60%;margin-top:0px;margin-bottom:0px;float:left;'><br>";
                    _textoAnexos += $"<b style='margin-top:-25px;'>{HttpUtility.HtmlEncode(_usuario.Nome)} {_usuario.Sobrenome} /// {_usuario.Documentacao_CPF}</b><br>";
                    _textoAnexos += $"<br><br><br><br>";
                    _textoAnexos += $"<div style='margin-top:25px;'>";
                    _textoAnexos += $"<b style='color:grey!important;font-size:8px!important;font-weight:normal!important;'>Registro H2I: Esse ANEXO4-B foi assinado digitalmente por {HttpUtility.HtmlEncode("você")} no dia {DateTime.Now.ToShortDateString()} {HttpUtility.HtmlEncode("às")} {DateTime.Now.ToShortTimeString()} a partir do IP: {_ips.FirstOrDefault()} referente a reserva de {_valormoeda.ToString("C2")} na oferta {HttpUtility.HtmlEncode(_bloco.Titulo)} </i>";
                    _textoAnexos += $"</div>";

                    fileName = $"{Guid.NewGuid().ToString()}-anexo4b.html";
                }
                else if (modelo.PerfilInvestidorInformado == "A")
                {
                    _textoAnexos += $"<div style='text-align:center;'><b>ANEXO 4-A</b></div>";
                    _textoAnexos += $"<div style='text-align:center;margin-top:0px;margin-bottom:25px;'><b>{HttpUtility.HtmlEncode("DECLARAÇÃO")}</b></div>";
                    _textoAnexos += $"<div style='text-align:justify !important;'>";
                    _textoAnexos += $"Ao assinar este termo, afirmo minha {HttpUtility.HtmlEncode("condição")} de investidor qualificado e declaro possuir conhecimento sobre o mercado financeiro suficiente para que {HttpUtility.HtmlEncode("não")} me sejam {HttpUtility.HtmlEncode("aplicáveis")} um conjunto de {HttpUtility.HtmlEncode("proteções")} legais e regulamentares conferidas aos investidores que {HttpUtility.HtmlEncode("não")} sejam qualificados.<br><br>";
                    _textoAnexos += $"Como investidor qualificado, atesto ser capaz de entender e ponderar os riscos financeiros relacionados {HttpUtility.HtmlEncode("à aplicação")} de meus recursos em oferta {HttpUtility.HtmlEncode("pública de distribuição de valores mobiliários de emissão de sociedades empresárias")} de pequeno porte, realizada com dispensa de registro na {HttpUtility.HtmlEncode("Comissão de Valores Mobiliários (CVM)")}, por meio de plataforma {HttpUtility.HtmlEncode("eletrônica")} de investimento participativo.<br><br>";
                    _textoAnexos += $"Declaro, sob as penas da lei, que possuo investimentos financeiros em valor superior a R$ 1.000.000,00 {HttpUtility.HtmlEncode("(um milhão de reais)")}.<br><br>";
                    _textoAnexos += $"</div><br><br><br>";
                    _textoAnexos += $"<b>{HttpUtility.HtmlEncode("SÃO PAULO")}, {DateTime.Now.ToLongDateString().ToUpper()}</b><br><br><br><br><br><br><br>";
                    _textoAnexos += $"<hr style='display:block;width:60%;margin-top:0px;margin-bottom:0px;float:left;'><br>";
                    _textoAnexos += $"<b style='margin-top:-25px;'>{HttpUtility.HtmlEncode(_usuario.Nome)} {_usuario.Sobrenome} /// {_usuario.Documentacao_CPF}</b><br>";
                    _textoAnexos += $"<br><br><br><br>";
                    _textoAnexos += $"<div style='margin-top:25px;'>";
                    _textoAnexos += $"<b style='color:grey!important;font-size:8px!important;font-weight:normal!important;'>Registro H2I: Esse ANEXO4-A foi assinado digitalmente por {HttpUtility.HtmlEncode("você")} no dia {DateTime.Now.ToShortDateString()} {HttpUtility.HtmlEncode("às")} {DateTime.Now.ToShortTimeString()} a partir do IP: {_ips.FirstOrDefault()} referente a reserva de {_valormoeda.ToString("C2")} na oferta {HttpUtility.HtmlEncode(_bloco.Titulo)} </i>";
                    _textoAnexos += $"</div>";

                    fileName = $"{Guid.NewGuid().ToString()}-anexo4a.html";
                }

                string     sWebRootFolder = _hostingEnvironment.WebRootPath;
                string     fullPath       = Path.Combine(sWebRootFolder + "//Upload", fileName);
                FileStream file           = new FileStream(fullPath, FileMode.Create, FileAccess.Write);
                var        htmlDoc        = new HtmlAgilityPack.HtmlDocument();
                htmlDoc.LoadHtml(_textoAnexos);
                htmlDoc.Save(file);
                file.Close();
                SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
                converter.Options.PdfPageSize        = SelectPdf.PdfPageSize.A4;
                converter.Options.PdfPageOrientation = SelectPdf.PdfPageOrientation.Landscape;
                //converter.Options.WebPageWidth = webPageWidth;
                //converter.Options.WebPageHeight = webPageHeight;
                //PdfDocument doc_ = converter.ConvertHtmlString(innerHtml);
                SelectPdf.PdfDocument doc_ = converter.ConvertUrl(fullPath);
                doc_.Save(fullPath.Replace("html", "pdf"));
                doc_.Close();
                System.IO.File.Delete(fullPath);

                // ENVIAR PRA CLOUD AZURE
                FileStream _arquivoPDFCriado = new FileStream(fullPath.Replace("html", "pdf"), FileMode.Open, FileAccess.Read);
                string     pegaurl           = "";
                try
                {
                    var _strcnx = "";
                    _strcnx = string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey);
                    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_strcnx);
                    CloudBlobClient     blobClient     = storageAccount.CreateCloudBlobClient();
                    CloudBlobContainer  container      = blobClient.GetContainerReference(_config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);
                    CloudBlockBlob      blockBlob      = container.GetBlockBlobReference(fileName);
                    blockBlob.Properties.ContentType = "application/pdf";
                    await blockBlob.UploadFromStreamAsync(_arquivoPDFCriado);

                    pegaurl = blockBlob.Uri.AbsoluteUri;

                    var _novoLancamentoDoc = new INVEST_LancamentoDoc()
                    {
                        INVEST_LancamentoId = _novoLancamento.Id,
                        // USO UM INDICE VALIDO COLHIDO LÁ EM CIMA
                        // PARA SANAR UM PROBLEMA DE REFERENCIA DE CHAVE
                        // ESTRANGEIRA COM MODELOS DOC. AFINAL DE CONTAS
                        // GERO O PDF DO ZERO, NÃO EXISTE ASSOCIACAO
                        // AINDA, ATEH O ATO DE CRIAR E PUBLICAR O PDF.
                        INVEST_ModeloDocId = _indiceCuringaModeloDocProblemaReferencia,
                        URLDoc             = pegaurl,
                        TP = "A"
                    };
                    _context.INVEST_LancamentoDocs.Add(_novoLancamentoDoc);
                    await _context.SaveChangesAsync();

                    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                    {
                        ICOMENS             = "<i class='fas fa-file-signature text-primary'></i>",
                        MENSAGEM            = "<i style='font-size:11px;font-family:monospace;line-height:10px;text-align:justify!important;'>" + _textoAnexos + "</i>" + $"<br> <div><a href='{pegaurl}' target='_blank'>Ver doc.</a></div>",
                        ACAO                = $"INFORMOU PERFIL ANEXO4-{modelo.PerfilInvestidorInformado}",
                        DTHR                = DateTime.Now,
                        IP                  = _ips.FirstOrDefault(),
                        STATUS              = "",
                        TIPO                = "NOTIFICAÇÃO",
                        UsuarioAppId        = _usuario.Id,
                        VALOR               = _novoLancamento.Valor,
                        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                    }, _context);
                }
                catch (Exception err) { var erro = err; }

                //// LOGCENTRAL
                //_context.LOGCENTRALs.Add(new LOGCENTRAL()
                //{
                //    ACAO = "INVESTIU",
                //    INVEST_LancamentoId = _novoLancamento.Id,
                //    INVEST_ModeloDocId = _novoLancamento.Id,
                //    TP = _novoLancamento.TP,
                //    URLDOC = "",
                //    VALOR = _valormoeda,
                //    STATUS = _novoLancamento.Status,
                //    UsuarioAppId = _novoLancamento.UsuarioAppId,
                //    IP = _ips.FirstOrDefault()
                //});
                //await _context.SaveChangesAsync();
                //// CONTROLE TRANSF - USU
                //_context.INVEST_ControleTransfs.Add(new INVEST_ControleTransf()
                //{
                //    BlocoProjInvestimentosId = _novoLancamento.BlocoProjInvestimentosId,
                //    Status = "P",
                //    UsuarioAppId = _novoLancamento.UsuarioAppId,
                //    Valor = _novoLancamento.Valor
                //});
                //await _context.SaveChangesAsync();
                //// CONTROLE TRANSF - ADM
                //_context.INVEST_ControleTransfs.Add(new INVEST_ControleTransf()
                //{
                //    BlocoProjInvestimentosId = _novoLancamento.BlocoProjInvestimentosId,
                //    Status = "P",
                //    UsuarioAppId = "bbf7b44d-faa0-4276-b163-295b780a062c",
                //    Valor = _novoLancamento.Valor
                //});
                //await _context.SaveChangesAsync();
                //return Page();
                //if (modelo.ArquivoComprovResid != null)
                //{
                //    var _imagemLogotipo =
                //        await VerificadoresRetornos
                //        .EnviarImagemAzure(modelo.ArquivoComprovResid, 550000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);
                //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                //        BlocoProjInvestimento.UrlImgPrinc = _imagemLogotipo;
                //    else
                //    {
                //        ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                //        _errosValidacoes = true;
                //    }
                //}
                //else
                //{
                //    ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
                //    _errosValidacoes = true;
                //}


                //}

                //// LOGCENTRAL
                //_context.LOGCENTRALs.Add(new LOGCENTRAL()
                //{
                //    ACAO = "ENVIO DE EMAIL - INVESTIU",
                //    INVEST_LancamentoId = _novoLancamento.Id,
                //    INVEST_ModeloDocId = _novoLancamento.Id,
                //    TP = _novoLancamento.TP,
                //    URLDOC = "",
                //    VALOR = _valormoeda,
                //    STATUS = _novoLancamento.Status,
                //    UsuarioAppId = _novoLancamento.UsuarioAppId,
                //    IP = _ips.FirstOrDefault()
                //});
                //await _context.SaveChangesAsync();

                var _token       = Guid.NewGuid().ToString();
                var _novaconfirm = new InvestimentoConfirmacao()
                {
                    BlocoProjInvestimentoId = modelo.blocoProjInvestimento.Id,
                    Confirmado          = false,
                    Token               = _token,
                    UsuarioAppId        = _usuario.Id,
                    Valor               = _valormoeda,
                    INVEST_LancamentoId = _novoLancamento.Id
                };
                _context.InvestimentoConfirmacoes.Add(_novaconfirm);
                await _context.SaveChangesAsync();

                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-wallet text-warning'></i>",
                    MENSAGEM            = $"O usuário <b>{_novoLancamento.UsuarioApp.Nome} {_novoLancamento.UsuarioApp.Sobrenome}</b> fez uma reserva de <b>{_novoLancamento.Valor.ToString("C2")}</b> na oferta <b>{_novoLancamento.BlocoProjInvestimentos.Titulo}</b>.<br> Geramos o seguinte token ao investidor: <i>{_token}</i>",
                    ACAO                = $"RESERVA",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = VerificadoresRetornos.PROC__RetornaStatusLiteralLancamento(_novoLancamento.Status),
                    TIPO                = "INVESTIMENTOS",
                    UsuarioAppId        = _novoLancamento.UsuarioAppId,
                    VALOR               = _valormoeda,
                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                }, _context);


                /*
                 * E-mail confirmação de reserva de investimento e envio do Código de Validação
                 *
                 *
                 * Olá [Nome Investidor],
                 *
                 * Recebemos a sua reserva no valor de R$ [    ] (      mil reais).
                 * Para confirmá-la, insira o código de validação a seguir :
                 * [código]
                 *
                 *
                 * Atenciosamente,
                 * Equipe House2Invest
                 */

                // instanciar objeto email
                var _configAplicacoes =
                    _context.AppConfiguracoes_Aplicativo
                    .FirstOrDefault();

                string _textoEmail = $"Olá {_novoLancamento.UsuarioApp.Nome}, <br>";
                _textoEmail += $"Recebemos o seu pedido de reserva no valor de {_novoLancamento.Valor.ToString("C2")}. <br>";
                _textoEmail += $"Para confirmá-la, insira o código de validação a seguir:<br>";
                _textoEmail += $"<code>{_token}</code> <br><br>";
                _textoEmail += $"Atenciosamente, <br>";
                _textoEmail += $"<b>Equipe House2invest</b> <br>";

                var _objemail = new ObjetoEmailEnvio()
                {
                    ASSUNTO  = "[INVESTIMENTO] House2Invest",
                    COPIA    = _configAplicacoes.mailToAdd,
                    mailFrom = _configAplicacoes.mailFrom,
                    MENSAGEM = _textoEmail,
                    //MENSAGEM = string.Format($"Olá {_usuario.Nome},<br/><br/><br/>Recebemos a sua reserva no valor de <b>{_valormoeda.ToString("C2")}</b>.<br/> Para confirmá-la, insira o código de validação a seguir:<br> <b>{_token}</b>.<br/><br/><br/>Atenciosamente,<br>Equipe House2Invest"),
                    //MENSAGEM = string.Format($"Olá!!!{Environment.NewLine}<br/>Você fez um investimento de <b>{_valormoeda.ToString("C2")}</b> em <b>{_context.BlocoProjInvestimentos.Where(x => x.Id == Convert.ToInt32(modelo.blocoProjInvestimento.Id)).FirstOrDefault().Titulo}</b>. Para validá-lo, digite esse código <b>{_token}</b> no campo correspondente."),
                    PARA = _usuario.Email,
                    smtpCredentialsEmail      = _configAplicacoes.smtpCredentialsEmail,
                    smtpCredentialsSenha      = _configAplicacoes.smtpCredentialsSenha,
                    smtpEnableSsl             = _configAplicacoes.smtpEnableSsl,
                    smtpHost                  = _configAplicacoes.smtpHost,
                    smtpPort                  = _configAplicacoes.smtpPort,
                    smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
                };
                var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);

                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-envelope text-primary'></i>",
                    MENSAGEM            = "<i style='font-size:11px;font-family:monospace;line-height:10px;text-align:justify!important;'>" + _textoEmail + "</i>" + $"<br> <div>    <a href='javascript:ReenviarEmailLog({_novoLancamento.Id});' class='btn btn-sm bg-success' title='Reenviar email' style='padding:0.25rem 0.4rem;font-size:14px;'><i class='fas fa-paper-plane'></i></a></div>",
                    ACAO                = $"ENVIOU EMAIL",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = VerificadoresRetornos.PROC__RetornaStatusLiteralLancamento(_novoLancamento.Status),
                    TIPO                = "NOTIFICAÇÃO",
                    UsuarioAppId        = _novoLancamento.UsuarioAppId,
                    VALOR               = _novoLancamento.Valor,
                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                }, _context);

                //var _enviou =
                //    await VerificadoresRetornos
                //    .EnviarEmail(_usuario.Email, "", "[INVESTIMENTO] House2Invest", string.Format($"Olá!!!{Environment.NewLine}<br/>Você fez um investimento de <b>{_valormoeda.ToString("C2")}</b> em <b>{_context.BlocoProjInvestimentos.Where(x => x.Id == Convert.ToInt32(modelo.blocoProjInvestimento.Id)).FirstOrDefault().Titulo}</b>. Para validá-lo, digite esse código <b>{_token}</b> no campo correspondente."));

                //return new
                //{
                //    Status = "ok",
                //    Mens = $"Seu investimento foi registrado em nosso sistema. Acompanhe o andamento em sua área protegida.",
                //    Dados = "",
                //    Total = 0
                //};
                //return Page();

                //return Redirect("/");

                return(new JsonResult(new
                {
                    status = "ok",
                    mens = $"PARABÉNS"
                }));
            }
            catch (Exception err)
            {
                //return Page();
                return(new JsonResult(new
                {
                    status = "erro",
                    mens = $"Nada foi feito. Verifique o log de saída.",
                    errobruto = err.InnerException.Message
                                //    Dados = "",
                                //    Total = 0
                }));
            }
        }
Example #9
0
        public async Task <IActionResult> OnPostAsync()
        {
            var _totaldeelementos = Request.Form.Count - 1;
            var _listaimagens     = new List <ImagensEnvio>();
            var _idperfil         = AppPerfilId;

            if (Request.Form.Files.Count > 0)
            {
                // CRIA ALBUM
                var _novoalbum = new Models.GaleriaPerfilAlbum()
                {
                    AppPerfilId = _idperfil,
                    Nome        = Request.Form["GaleriaPerfilAlbum.Nome"].ToString(),
                    Descricao   = string.IsNullOrEmpty(Request.Form["GaleriaPerfilAlbum.Descricao"].ToString()) ? "" : Request.Form["GaleriaPerfilAlbum.Descricao"].ToString()
                };

                // SALVA ALBUM
                await _context.GaleriaPerfilAlbum.AddAsync(_novoalbum);

                await _context.SaveChangesAsync();

                if (_novoalbum.Id > 0)
                {
                    for (int i = 0; i < _totaldeelementos; i++)
                    {
                        var _nomeimg = Request.Form["inputarq_" + i];
                        var _des     = Request.Form["descricao_" + i].ToString();
                        _des = string.IsNullOrEmpty(_des) ? "" : _des;

                        var _buscafilearray =
                            Request.Form.Files
                            .Where(x => x.FileName == _nomeimg).FirstOrDefault();

                        if (_buscafilearray != null)
                        {
                            _listaimagens.Add(new ImagensEnvio()
                            {
                                GaleriaPerfilAlbumId = _novoalbum.Id,
                                Url       = _buscafilearray.FileName.ToString(),
                                Descricao = _des,
                                Arquivo   = _buscafilearray
                            });
                        }
                    }

                    var _config = _context.AppPerfil
                                  .Include(x => x.AppConfiguracoes)
                                  .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                                  .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                                  .FirstOrDefault();

                    foreach (var item in _listaimagens)
                    {
                        var _imagemLogotipo =
                            await VerificadoresRetornos
                            .EnviarImagemAzure(item.Arquivo, 512000, 0, 0,
                                               _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName,
                                               _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey,
                                               _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz,
                                               _config.AppConfiguracoes.AppConfiguracoes_Azure.UsarSimuladorLocal,
                                               _config.AppConfiguracoes.AppConfiguracoes_Azure.EnderecoArmazLocal);

                        Uri  uriResult;
                        bool result = Uri.TryCreate(_imagemLogotipo, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
                        if (result)
                        {
                            item.Url = _imagemLogotipo;
                        }
                        else
                        {
                            item.Url = "";
                        }
                    }

                    var _listarange = new List <Models.GaleriaPerfilImagem>();
                    foreach (var registro in _listaimagens)
                    {
                        if (!string.IsNullOrEmpty(registro.Url))
                        {
                            _listarange.Add(new Models.GaleriaPerfilImagem()
                            {
                                GaleriaPerfilAlbumId = registro.GaleriaPerfilAlbumId,
                                Descricao            = registro.Descricao,
                                Url = registro.Url
                            });
                        }
                    }

                    if (_listarange.Count > 0)
                    {
                        await _context.GaleriaPerfilImagem.AddRangeAsync(_listarange);

                        await _context.SaveChangesAsync();
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "Você precisa selecionar ao menos uma imagem para criar um álbum. Clique no botão CARREGAR IMAGENS para selecionar à partir do seu dispositivo.");
            }

            return(RedirectToPage("./Index"));
        }
        public async Task <IActionResult> OnGet(string u, string p, string c)
        {
            var _mensretorno = "";

            ResgatarVoucher = new ResgatarVoucherViewModelo();

            // SEM PARÂMETROS
            if (string.IsNullOrEmpty(u) || string.IsNullOrEmpty(p) || string.IsNullOrEmpty(c))
            {
                _mensretorno += "";
                //ResgatarVoucher.MensagemRetorno = "Dados inválidos";
                return(Page());
            }

            // USUÁRIO AUTENTICADO?
            if (User.Identity.IsAuthenticated)
            {
                await _signInManager.SignOutAsync();

                //return Redirect("/");
            }

            // JÁ EXISTE USUÁRIO?
            if (_context.Users.FirstOrDefault(x => x.UserName == p) != null)
            {
                return(Redirect("/"));
            }

            var _pegavoucher =
                _context.Vouchers
                .Where(x => x.UsuarioAppId == u && x.EmailDestino == p && x.CodigoUnico == c && x.STATUS == "A")
                .FirstOrDefault();

            if (_pegavoucher == null)
            {
                ResgatarVoucher.MensagemRetorno = "Esse Voucher não existe em nossa plataforma, ou, já está em uso.";
            }
            else
            {
                if (_pegavoucher.DataLimite < DateTime.Now || _pegavoucher.STATUS != "A")
                {
                    ResgatarVoucher.MensagemRetorno = "Esse Voucher não existe em nossa plataforma, ou, já está em uso.";
                }

                ResgatarVoucher.EhValido = true;

                // CRIA CONTA
                var _config = _context.AppPerfil
                              .Include(x => x.AppConfiguracoes)
                              .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                              .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                              .FirstOrDefault();

                var _novaSenha = VerificadoresRetornos.GerarSenha(8);

                var user = new UsuarioApp
                {
                    AppConfiguracoesId = _context.AppConfiguracoes.FirstOrDefault().Id,
                    Nome                  = "Usuário",
                    Sobrenome             = "",
                    Nascimento            = new System.DateTime(1978, 2, 14),
                    UserName              = _pegavoucher.EmailDestino,
                    NormalizedUserName    = _pegavoucher.EmailDestino,
                    Email                 = _pegavoucher.EmailDestino,
                    NormalizedEmail       = _pegavoucher.EmailDestino,
                    EmailConfirmed        = true,
                    PasswordHash          = _novaSenha,
                    SecurityStamp         = string.Empty,
                    AvatarUsuario         = "/images/sem-imagem.png",
                    Sistema_FuncaoUsuario = "USUARIO",
                    Bio = "Olá mundo",
                    ContatoAutenticacao_Email            = _pegavoucher.EmailDestino,
                    ContatoAutenticacao_EmailAlternativo = _pegavoucher.EmailDestino,
                    ContatoAutenticacao_Fone             = "00123456789",
                    ContatoAutenticacao_FoneAlternativo  = "00123456789",
                    Contato_Bairro        = "NI",
                    Contato_CEP           = "00000-000",
                    Contato_Cidade        = "NI",
                    Contato_Complemento   = "NI",
                    Contato_Escritorio    = "NI",
                    Contato_Estado        = "NI",
                    Contato_FoneCelular   = "",
                    Contato_FoneComercial = "00123456789",
                    Contato_Logradouro    = "NI",
                    Contato_Pais          = "BRASIL",
                    Contato_Website       = "",
                    Genero                   = "NI",
                    EstadoCivil              = "NI",
                    ImagemFundoPerfil        = "/images/fundo_padrao_perfil.png",
                    Documentacao_CNPJ        = "",
                    Documentacao_CPF         = "",
                    Documentacao_RG          = "",
                    Documentacao_TPPessoa    = "PF",
                    Financeiro_Banco_Ag      = "",
                    Financeiro_Banco_CC      = "",
                    Financeiro_Banco_Nome    = "",
                    Sistema_AcessoBloqueado  = false,
                    MidiasSociais_Facebook   = "",
                    MidiasSociais_GooglePlus = "",
                    MidiasSociais_Instagram  = "",
                    MidiasSociais_Linkedin   = "",
                    MidiasSociais_Pinterest  = "",
                    MidiasSociais_Twitter    = "",
                    MidiasSociais_Youtube    = "",
                    PhoneNumber              = "00123456789",
                    PhoneNumberConfirmed     = true,
                    LockoutEnabled           = false,
                    Trabalho_Empresa         = "NÃO INFORMADO",
                    Trabalho_Cargo           = "NÃO INFORMADO",
                    Trabalho_Departamento    = "NÃO INFORMADO",
                    Trabalho_Gerente         = "NÃO INFORMADO",
                    TwoFactorEnabled         = false,
                    TrocaSenhaProxLogin      = true
                };

                var result = await _userManager.CreateAsync(user, _novaSenha);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "USU");

                    // CONTA CRIADA? ALTERA O STATUS DO VOUCHER
                    _pegavoucher.STATUS = "U";
                    _context.Attach(_pegavoucher).State = EntityState.Modified;
                    await _context.SaveChangesAsync();

                    // FAÇO LOGIN
                    await _signInManager.PasswordSignInAsync(_pegavoucher.EmailDestino, _novaSenha, false, lockoutOnFailure : true);

                    //_mensretorno += "<b style='color:green;font-size:20px;margin-top:35px;'>";
                    //_mensretorno += "Muito bom!!! Sua conta foi criada com sucesso.";
                    //_mensretorno += "</b>";
                    //_mensretorno += "<div style='color:grey;font-size:16px;color:#000;margin:10px auto;'>";
                    //_mensretorno += "Aproveite ao máximo o seu tempo de avaliação em nossa plataforma.<br>Ahhhh... O tempo de avaliação termina em: <b>" + _pegavoucher.DataLimite.ToLongDateString() + " às " + _pegavoucher.DataLimite.ToLongTimeString() + "</b><br><br>";
                    //_mensretorno += "Clique <a href='/Correio/Conversas' class=''>AQUI</a> para acessar nosso Chat.<br>";
                    //_mensretorno += "</div>";
                    //_mensretorno += "<b style='color:red;font-size:25px;margin-top:35px;'>";
                    //_mensretorno += "MUITO IMPORTANTE: A SENHA ABAIXO É PROVISÓRIA.<br>ALTERE-A AGORA <a href='/Identity/Account/Manage/ChangePassword'>CLICANDO AQUI</a>";
                    //_mensretorno += "</b>";
                    //_mensretorno += "<br>";
                    //_mensretorno += $"<b style='color:grey !important;font-size:70px !important;font-weight:lighter !important;'>{_novaSenha}";
                    //_mensretorno += "</b>";
                    //_mensretorno += "<br>";
                    //ResgatarVoucher.MensagemRetorno = _mensretorno;

                    _mensretorno += "<b style='color:green;font-size:30px;margin-top:45px;display:block;'>";
                    _mensretorno += "Sua conta foi criada com sucesso.";
                    _mensretorno += "</b>";
                    _mensretorno += "<div style='color:grey;font-size:16px;color:#000;margin:10px auto;'>";
                    _mensretorno += "Aproveite ao máximo o seu tempo de avaliação em nossa plataforma.<br>Ahhhh... O tempo de avaliação termina em: <b>" + _pegavoucher.DataLimite.ToLongDateString().ToUpper() + " às " + _pegavoucher.DataLimite.ToLongTimeString() + "</b>";
                    _mensretorno += "</div>";
                    _mensretorno += "<b style='color:red;font-size:18px;margin-top:35px;'>";
                    _mensretorno += "MUITO IMPORTANTE: A SENHA ABAIXO É PROVISÓRIA.<br>COPIE A SENHA PROVISÓRIA E CRIE UMA NOVA SENHA <a href='/Identity/Account/Manage/ChangePassword'>CLICANDO AQUI</a>";
                    _mensretorno += "</b>";
                    _mensretorno += "<br>";
                    _mensretorno += $"<b style='color:grey !important;font-size:70px !important;font-weight:lighter !important;margin:15px auto;display:block;'>{_novaSenha}";
                    _mensretorno += "</b>";
                    _mensretorno += "<br>";

                    ResgatarVoucher.MensagemRetorno = _mensretorno;
                }
            }

            return(Page());
        }
Example #11
0
        public async Task <IActionResult> OnPostAsync()
        {
            var _errosValidacoes = false;

            if (!ModelState.IsValid)
            {
                _errosValidacoes = true;
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var registro =
                _context
                .BlocoProjInvestimentos
                .Where(x => x.Id == BlocoProjInvestimento.Id)
                .FirstOrDefault();

            registro.BlocoProjInvest_ExibTitulo = BlocoProjInvestimento.BlocoProjInvest_ExibTitulo;
            registro.Contador_DataFinal         = BlocoProjInvestimento.Contador_DataFinal;
            registro.Contador_Exib = BlocoProjInvestimento.Contador_Exib;

            registro.Titulo = BlocoProjInvestimento.Titulo;
            registro.Ativo  = BlocoProjInvestimento.Ativo;
            registro.DescricaoDetalhadaProjeto = BlocoProjInvestimento.DescricaoDetalhadaProjeto;
            registro.Valor           = BlocoProjInvestimento.Valor;
            registro.LanceMinimo     = BlocoProjInvestimento.LanceMinimo;
            registro.ValorMinimoDocs = BlocoProjInvestimento.ValorMinimoDocs;
            //registro.Status = BlocoProjInvestimento.Status;
            registro.GaleriaPerfilAlbumId = BlocoProjInvestimento.GaleriaPerfilAlbumId;

            registro.Contato_CEP           = BlocoProjInvestimento.Contato_CEP;
            registro.Contato_Logradouro    = BlocoProjInvestimento.Contato_Logradouro;
            registro.Contato_LogradouroNum = BlocoProjInvestimento.Contato_LogradouroNum;
            registro.Contato_Bairro        = BlocoProjInvestimento.Contato_Bairro;
            registro.Contato_Cidade        = BlocoProjInvestimento.Contato_Cidade;
            registro.Contato_Complemento   = BlocoProjInvestimento.Contato_Complemento;
            registro.Contato_Estado        = BlocoProjInvestimento.Contato_Estado;

            registro.LinkVideoProjeto = BlocoProjInvestimento.LinkVideoProjeto;

            registro.Rentabilidade_TIR_TIT = BlocoProjInvestimento.Rentabilidade_TIR_TIT;
            registro.Rentabilidade_TIR_INI = BlocoProjInvestimento.Rentabilidade_TIR_INI;
            registro.Rentabilidade_TIR_FIM = BlocoProjInvestimento.Rentabilidade_TIR_FIM;

            registro.Rentabilidade_PRE_TIT = BlocoProjInvestimento.Rentabilidade_PRE_TIT;
            registro.Rentabilidade_PRE_INI = BlocoProjInvestimento.Rentabilidade_PRE_INI;
            registro.Rentabilidade_PRE_FIM = BlocoProjInvestimento.Rentabilidade_PRE_FIM;

            registro.Rentabilidade_ROI_TIT = BlocoProjInvestimento.Rentabilidade_ROI_TIT;
            registro.Rentabilidade_ROI_INI = BlocoProjInvestimento.Rentabilidade_ROI_INI;
            registro.Rentabilidade_ROI_FIM = BlocoProjInvestimento.Rentabilidade_ROI_FIM;

            registro.AndamentoObra           = BlocoProjInvestimento.AndamentoObra;
            registro.AndamentoObraAcabamento = BlocoProjInvestimento.AndamentoObraAcabamento;

            if (BlocoProjInvestimento.ImagemDestaque != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(BlocoProjInvestimento.ImagemDestaque, 550000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    registro.UrlImgPrinc = _imagemLogotipo;
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                    _errosValidacoes = true;
                }
            }

            if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) > Convert.ToDouble(BlocoProjInvestimento.Valor))
            {
                ModelState.AddModelError(string.Empty, "O Lance mínimo deve ser INFERIOR ao VALOR TOTAL DO INVESTIMENTO");
                _errosValidacoes = true;
            }

            if (VerificadoresRetornos.ConverteStringParaDateTime(BlocoProjInvestimento.Contador_DataFinal) < DateTime.Now)
            {
                ModelState.AddModelError(string.Empty, "A data limite do contador deve ser SUPERIOR a data de hoje");
                _errosValidacoes = true;
            }

            if (Convert.ToDouble(BlocoProjInvestimento.Valor) <= 0)
            {
                ModelState.AddModelError(string.Empty, "Necessário: VALOR TOTAL DO INVESTIMENTO");
                _errosValidacoes = true;
            }

            if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) <= 0)
            {
                ModelState.AddModelError(string.Empty, "Necessário: VALOR LANCE MÍNIMO");
                _errosValidacoes = true;
            }

            if (_errosValidacoes)
            {
                BlocoProjInvestimento.UrlImgPrinc = BlocoProjInvestimento.UrlImgPrinc;
                return(Page());
            }

            _context.Attach(registro).State = EntityState.Modified;
            try
            {
                await _context.SaveChangesAsync();

                //if (BlocoProjInvestimento.Status == "C" ||
                //    BlocoProjInvestimento.Status == "E")
                //{
                //    var _todoslancamentos = new List<INVEST_Lancamento>();
                //    _todoslancamentos = _context.INVEST_Lancamentos
                //        .Where(x => x.BlocoProjInvestimentosId == BlocoProjInvestimento.Id)
                //        .ToList();

                //    foreach (var lanca in _todoslancamentos)
                //    {
                //        lanca.Status = "C";
                //        _context.Attach(lanca).State = EntityState.Modified;
                //        await _context.SaveChangesAsync();
                //    }

                //    var _todastransfs = new List<INVEST_ControleTransf>();
                //    _todastransfs = _context.INVEST_ControleTransfs
                //        .Where(x => x.BlocoProjInvestimentosId == BlocoProjInvestimento.Id)
                //        .ToList();

                //    foreach (var transf in _todastransfs)
                //    {
                //        transf.Status = "C";
                //        _context.Attach(transf).State = EntityState.Modified;
                //        await _context.SaveChangesAsync();
                //    }

                //    var _usu = _context.Users
                //        .Where(x => x.UserName == User.Identity.Name)
                //        .FirstOrDefault();

                //    var ip = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
                //    var _ips = new string[] { ip, "value2" };

                //    foreach (var item in _todoslancamentos)
                //    {
                //        // LOGCENTRAL
                //        _context.LOGCENTRALs.Add(new LOGCENTRAL()
                //        {
                //            ACAO = "CANCELOU INVESTIMENTO",
                //            INVEST_LancamentoId = item.Id,
                //            INVEST_ModeloDocId = item.Id,
                //            TP = item.TP,
                //            URLDOC = "",
                //            VALOR = item.Valor,
                //            STATUS = item.Status,
                //            UsuarioAppId = _usu.Id,
                //            IP = _ips.FirstOrDefault()
                //        });
                //        await _context.SaveChangesAsync();

                //        var _usuemail = _context.Users.FirstOrDefault(x => x.Id == item.UsuarioAppId).Email;
                //        var _titbloc = _context.BlocoProjInvestimentos.Where(x => x.Id == item.BlocoProjInvestimentosId).FirstOrDefault().Titulo;


                //        // instanciar objeto email
                //        var _configAplicacoes =
                //            _context.AppConfiguracoes_Aplicativo
                //            .FirstOrDefault();
                //        var _objemail = new ObjetoEmailEnvio()
                //        {
                //            ASSUNTO = "[INVESTIMENTO] House2Invest",
                //            COPIA = _configAplicacoes.mailToAdd,
                //            mailFrom = _configAplicacoes.mailFrom,
                //            MENSAGEM = string.Format($"Olá!!!{Environment.NewLine}<br/>O investimento <b>{_titbloc}</b> foi CANCELADO."),
                //            PARA = _usuemail,
                //            smtpCredentialsEmail = _configAplicacoes.smtpCredentialsEmail,
                //            smtpCredentialsSenha = _configAplicacoes.smtpCredentialsSenha,
                //            smtpEnableSsl = _configAplicacoes.smtpEnableSsl,
                //            smtpHost = _configAplicacoes.smtpHost,
                //            smtpPort = _configAplicacoes.smtpPort,
                //            smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
                //        };
                //        var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);
                //    }
                //}
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BlocoProjInvestimentoExists(BlocoProjInvestimento.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
Example #12
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            var _erroValid = false;

            try
            {
                if (!Input.Termos)
                {
                    ModelState.AddModelError(string.Empty, "Leia e Aceite os Termos de Uso antes de prosseguir");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Email))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo EMAIL");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Password))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo SENHA");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.ConfirmPassword))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo CONFIRME SUA SENHA");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Nome))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo NOME");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Sobrenome))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo SOBRENOME");
                    _erroValid = true;
                }
                if (Convert.ToDateTime(Input.Nascimento).Year == 0001)
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo DATA DE NASCIMENTO");
                    _erroValid = true;
                }
                //if (Input.ImagemDocDigitalizado == null)
                //{
                //    ModelState.AddModelError(string.Empty, "Necessário o envio de um documento com sua foto");
                //    _erroValid = true;
                //}

                if (_erroValid)
                {
                    return(Page());
                }

                var _config = _context.AppPerfil
                              .Include(x => x.AppConfiguracoes)
                              .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                              .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                              .FirstOrDefault();

                //if (Input.ImagemDocDigitalizado != null)
                //{
                //    var _imagemLogotipo =
                //        await VerificadoresRetornos
                //        .EnviarImagemAzure(Input.ImagemDocDigitalizado, 502000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                //    {
                //        Input.Sistema_URLFotoDoc = _imagemLogotipo;
                //    }
                //}

                //if (Input.ImagemSelfie != null)
                //{
                //    var _imagemLogotipo =
                //        await VerificadoresRetornos
                //        .EnviarImagemAzure(Input.ImagemSelfie, 502000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);
                //
                //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                //    {
                //        Input.AvatarUsuario = _imagemLogotipo;
                //    }
                //}

                var user = new UsuarioApp
                {
                    AppConfiguracoesId = _context.AppConfiguracoes.FirstOrDefault().Id,
                    Nome                  = Input.Nome,
                    Sobrenome             = Input.Sobrenome,
                    Nascimento            = Input.Nascimento,
                    UserName              = Input.Email,
                    NormalizedUserName    = Input.Email,
                    Email                 = Input.Email,
                    NormalizedEmail       = Input.Email,
                    EmailConfirmed        = false,
                    PasswordHash          = Input.Password,
                    SecurityStamp         = string.Empty,
                    AvatarUsuario         = "/images/avatar-depois-da-linha.png",
                    Sistema_FuncaoUsuario = "USUARIO",
                    Bio = "Olá mundo",
                    ContatoAutenticacao_Email            = Input.Email,
                    ContatoAutenticacao_EmailAlternativo = Input.ContatoAutenticacao_EmailAlternativo,
                    ContatoAutenticacao_Fone             = Input.Contato_FoneCelular,
                    ContatoAutenticacao_FoneAlternativo  = Input.Contato_FoneComercial,
                    Contato_Bairro        = Input.Contato_Bairro,
                    Contato_CEP           = Input.Contato_CEP,
                    Contato_Cidade        = Input.Contato_Cidade,
                    Contato_Complemento   = Input.Contato_Complemento,
                    Contato_Escritorio    = Input.Contato_Escritorio,
                    Contato_Estado        = Input.Contato_Estado,
                    Contato_FoneCelular   = Input.Contato_FoneCelular,
                    Contato_FoneComercial = Input.Contato_FoneComercial,
                    Contato_Logradouro    = Input.Contato_Logradouro,
                    Contato_Pais          = "BRASIL",
                    Contato_Website       = Input.Contato_Website,
                    Genero                  = Input.Genero,
                    EstadoCivil             = Input.EstadoCivil,
                    ImagemFundoPerfil       = "/images/fundo_padrao_perfil.png",
                    Documentacao_CNPJ       = Input.Documentacao_CNPJ,
                    Documentacao_CPF        = Input.Documentacao_CPF,
                    Documentacao_RG         = Input.Documentacao_RG,
                    Documentacao_TPPessoa   = Input.Documentacao_TPPessoa,
                    Financeiro_Banco_Ag     = "",
                    Financeiro_Banco_CC     = "",
                    Financeiro_Banco_Nome   = "",
                    Sistema_AcessoBloqueado = true,
                    //Sistema_DataDeclaracaoCienciaTermos = DateTime.Now,
                    //Sistema_DeclaracaoCienciaTermos = Input.Termos,
                    //Sistema_URLComprovanteResidencia = "",
                    //Sistema_URLDeclaracaoResidencia = "",
                    MidiasSociais_Facebook   = "",
                    MidiasSociais_GooglePlus = "",
                    MidiasSociais_Instagram  = "",
                    MidiasSociais_Linkedin   = "",
                    MidiasSociais_Pinterest  = "",
                    MidiasSociais_Twitter    = "",
                    MidiasSociais_Youtube    = "",
                    PhoneNumber           = Input.Contato_FoneCelular,
                    PhoneNumberConfirmed  = true,
                    LockoutEnabled        = false,
                    Trabalho_Empresa      = "NÃO INFORMADO",
                    Trabalho_Cargo        = "NÃO INFORMADO",
                    Trabalho_Departamento = "NÃO INFORMADO",
                    Trabalho_Gerente      = "NÃO INFORMADO",
                    TwoFactorEnabled      = false,
                    //Sistema_URLFotoDoc = Input.Sistema_URLFotoDoc,
                    //Sistema_URLSelfieDoc = Input.Sistema_URLSelfieDoc,
                    //Financeiro_Investidor_Perfil = Input.Financeiro_Investidor_Perfil
                };

                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "USU");

                    _logger.LogInformation("Usuário criado.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { userId = user.Id, code },
                        protocol: Request.Scheme);

                    var _enviou =
                        await VerificadoresRetornos
                        .EnviarEmail(user.Email, callbackUrl, "[CONFIRME SEU EMAIL] SmartSale", string.Format($"Olá!!!{Environment.NewLine}Falta pouco. Por favor, confirme o seu email clicando <a href='{HtmlEncoder.Default.Encode(callbackUrl)}' style='color:#000 !important;'>AQUI</a> e prove que vc não é um robô."));

                    // LOGCENTRAL
                    _context.LOGCENTRALs.Add(new LOGCENTRAL()
                    {
                        ACAO = "ENVIO EMAIL - CONFIRME SEU EMAIL",
                        INVEST_LancamentoId = 0,
                        INVEST_ModeloDocId  = 0,
                        TP           = "",
                        URLDOC       = "",
                        VALOR        = 0,
                        STATUS       = "",
                        UsuarioAppId = user.Id
                    });
                    await _context.SaveChangesAsync();

                    if (_enviou == "ok")
                    {
                        return(Redirect("/Identity/Account/RegisterAgradec?userId=" + user.Id + "&code=" + code));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, _enviou);
                    }
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            catch (Exception erro)
            {
                //ModelState.AddModelError(string.Empty, erro.Message);

                return(Redirect("/Identity/Account/RegisterAgradec?userId=3&code=1"));
            }

            return(Page());
        }
Example #13
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var registro =
                _context
                .AppConfiguracoes_Aplicativo
                .Where(x => x.Id == AppConfiguracoes_Aplicativo.Id)
                .FirstOrDefault();

            registro.Bairro                                  = AppConfiguracoes_Aplicativo.Bairro;
            registro.Celular                                 = AppConfiguracoes_Aplicativo.Celular;
            registro.CEP                                     = AppConfiguracoes_Aplicativo.CEP;
            registro.Cidade                                  = AppConfiguracoes_Aplicativo.Cidade;
            registro.Complemento                             = AppConfiguracoes_Aplicativo.Complemento;
            registro.CPFCNPJ                                 = AppConfiguracoes_Aplicativo.CPFCNPJ;
            registro.EmailContato                            = AppConfiguracoes_Aplicativo.EmailContato;
            registro.EmailSuporte                            = AppConfiguracoes_Aplicativo.EmailSuporte;
            registro.EmailVendas                             = AppConfiguracoes_Aplicativo.EmailVendas;
            registro.Empresa                                 = AppConfiguracoes_Aplicativo.Empresa;
            registro.Estado                                  = AppConfiguracoes_Aplicativo.Estado;
            registro.Fone                                    = AppConfiguracoes_Aplicativo.Fone;
            registro.FoneRecados                             = AppConfiguracoes_Aplicativo.FoneRecados;
            registro.Logradouro                              = AppConfiguracoes_Aplicativo.Logradouro;
            registro.mailFrom                                = AppConfiguracoes_Aplicativo.mailFrom;
            registro.mailToAdd                               = AppConfiguracoes_Aplicativo.mailToAdd;
            registro.smtpCredentialsEmail                    = AppConfiguracoes_Aplicativo.smtpCredentialsEmail;
            registro.smtpCredentialsSenha                    = AppConfiguracoes_Aplicativo.smtpCredentialsSenha;
            registro.smtpEnableSsl                           = AppConfiguracoes_Aplicativo.smtpEnableSsl;
            registro.smtpHost                                = AppConfiguracoes_Aplicativo.smtpHost;
            registro.smtpPort                                = AppConfiguracoes_Aplicativo.smtpPort;
            registro.smtpUseDefaultCredentials               = AppConfiguracoes_Aplicativo.smtpUseDefaultCredentials;
            registro.dumpSQLHost                             = AppConfiguracoes_Aplicativo.dumpSQLHost;
            registro.dumpSQLUser                             = AppConfiguracoes_Aplicativo.dumpSQLUser;
            registro.dumpSQLPass                             = AppConfiguracoes_Aplicativo.dumpSQLPass;
            registro.temporizaLmiteMaximoOfertaSuspensa      = AppConfiguracoes_Aplicativo.temporizaLmiteMaximoOfertaSuspensa;
            registro.temporizaLmiteMaximoRevogaInvestimento  = AppConfiguracoes_Aplicativo.temporizaLmiteMaximoRevogaInvestimento;
            registro.temporizaLmiteMaximoCancelaInvestimento = AppConfiguracoes_Aplicativo.temporizaLmiteMaximoCancelaInvestimento;

            if (AppConfiguracoes_Aplicativo.App_ImagemLogo != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(AppConfiguracoes_Aplicativo.App_ImagemLogo, 307200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    registro.LogotipoEmpresa = _imagemLogotipo;
                }

                //AppConfiguracoes_Aplicativo.LogotipoEmpresa = _imagemLogotipo;
            }

            _context.Attach(registro).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AppConfiguracoes_AplicativoExists(AppConfiguracoes_Aplicativo.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var _errosValidacoes = false;

            if (modelo.ArquivoComprovTransf != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(modelo.ArquivoComprovTransf, 614200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    modelo.URLComprovTransf = _imagemLogotipo;
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                    _errosValidacoes = true;
                }
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
                _errosValidacoes = true;
            }

            //if (modelo.ArquivoPerfilInvestidor != null)
            //{
            //    var _imagemLogotipo =
            //        await VerificadoresRetornos
            //        .EnviarImagemAzure(modelo.ArquivoPerfilInvestidor, 614200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

            //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
            //        modelo.URLPerfilInvest = _imagemLogotipo;
            //    else
            //    {
            //        ModelState.AddModelError(string.Empty, "A imagem é muito grande");
            //        _errosValidacoes = true;
            //    }
            //}
            //else
            //{
            //    ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
            //    _errosValidacoes = true;
            //}

            //if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) > Convert.ToDouble(BlocoProjInvestimento.Valor))
            //{
            //    ModelState.AddModelError(string.Empty, "O Lance mínimo deve ser INFERIOR ao VALOR TOTAL DO INVESTIMENTO");
            //    _errosValidacoes = true;
            //}

            //if (VerificadoresRetornos.ConverteStringParaDateTime(BlocoProjInvestimento.Contador_DataFinal) < DateTime.Now)
            //{
            //    ModelState.AddModelError(string.Empty, "A data limite do contador deve ser SUPERIOR a data de hoje");
            //    _errosValidacoes = true;
            //}

            //if (Convert.ToDouble(BlocoProjInvestimento.Valor) <= 0)
            //{
            //    ModelState.AddModelError(string.Empty, "Necessário: VALOR TOTAL DO INVESTIMENTO");
            //    _errosValidacoes = true;
            //}

            //if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) <= 0)
            //{
            //    ModelState.AddModelError(string.Empty, "Necessário: VALOR LANCE MÍNIMO");
            //    _errosValidacoes = true;
            //}

            if (_errosValidacoes)
            {
                modelo.URLComprovTransf = @"/temas/dpslintm1/assets/images/sem-imagem-modelo-projetos.png";
                modelo.URLPerfilInvest  = @"/temas/dpslintm1/assets/images/sem-imagem-modelo-projetos.png";
                return(Page());
            }

            _context.INVEST_LancamentoImagens.Add(modelo);
            await _context.SaveChangesAsync();

            //var _enviou =
            //    await VerificadoresRetornos
            //    .EnviarEmail(_usuario.Email, "", "[INVESTIMENTO] House2Invest", string.Format($"Olá!!!{Environment.NewLine}<br/>Você fez um investimento de <b>{_valormoeda.ToString("C2")}</b> em <b>{_context.BlocoProjInvestimentos.Where(x => x.Id == Convert.ToInt32(_id)).FirstOrDefault().Titulo}</b>."));

            var _Lancamento =
                _context.INVEST_Lancamentos
                .Include(x => x.UsuarioApp)
                .Include(x => x.BlocoProjInvestimentos)
                .Where(x => x.Id == modelo.INVEST_LancamentoId)
                .FirstOrDefault();

            modelo.INVEST_Lancamento = _Lancamento;

            var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var _ips = new string[] { ip, "value2" };

            //// LOGCENTRAL
            await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            {
                ICOMENS             = "<i class='fas fa-image text-success'></i>",
                MENSAGEM            = $"O usuário <b>{_Lancamento.UsuarioApp.Nome} {_Lancamento.UsuarioApp.Sobrenome}</b> <b style='color:green;'>ENVIOU</b> os comprovantes digitalizados para a reserva de <b>{_Lancamento.Valor.ToString("C2")}</b> na oferta <b>{_Lancamento.BlocoProjInvestimentos.Titulo}</b>.",
                ACAO                = $"ENVIO DE IMAGEM (TED)",
                DTHR                = DateTime.Now,
                IP                  = _ips.FirstOrDefault(),
                STATUS              = "ENVIADO",
                TIPO                = "CONFIRMAÇÕES",
                UsuarioAppId        = _Lancamento.UsuarioAppId,
                VALOR               = _Lancamento.Valor,
                UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            }, _context);

            //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //{
            //    ACAO = "INVESTIMENTO - ENVIO DA IMAGEM (TED)",
            //    INVEST_LancamentoId = modelo.INVEST_Lancamento.Id,
            //    INVEST_ModeloDocId = modelo.INVEST_Lancamento.Id,
            //    TP = modelo.INVEST_Lancamento.TP,
            //    URLDOC = "",
            //    VALOR = modelo.INVEST_Lancamento.Valor,
            //    STATUS = modelo.INVEST_Lancamento.Status,
            //    UsuarioAppId = modelo.INVEST_Lancamento.UsuarioAppId,
            //    IP = _ips.FirstOrDefault()
            //});
            //await _context.SaveChangesAsync();


            // USU LOGADO
            var _usu = _context.Users
                       .Where(x => x.UserName == User.Identity.Name)
                       .FirstOrDefault();

            // LANCAMENTO EM QUESTÃO
            var _lanca = _context.INVEST_Lancamentos
                         .Include(x => x.BlocoProjInvestimentos)
                         .Where(x => x.Id == modelo.INVEST_LancamentoId)
                         .FirstOrDefault();

            //--------------------------------
            // APLICACAO PADRAO
            //--------------------------------
            var _configAplicacoes =
                _context.AppConfiguracoes_Aplicativo
                .FirstOrDefault();

            // instanciar objeto email
            var _objemail = new ObjetoEmailEnvio()
            {
                ASSUNTO                   = "[INVESTIMENTO] House2Invest",
                COPIA                     = _configAplicacoes.mailToAdd,
                mailFrom                  = _configAplicacoes.mailFrom,
                MENSAGEM                  = string.Format($"Olá!!!{Environment.NewLine}<br/>A documentação referente a aprovação do investimento <b>" + _lanca.BlocoProjInvestimentos.Titulo + "</b> foi ENVIADA COM SUCESSO. Estamos analisando sua documentação."),
                PARA                      = _usu.Email,
                smtpCredentialsEmail      = _configAplicacoes.smtpCredentialsEmail,
                smtpCredentialsSenha      = _configAplicacoes.smtpCredentialsSenha,
                smtpEnableSsl             = _configAplicacoes.smtpEnableSsl,
                smtpHost                  = _configAplicacoes.smtpHost,
                smtpPort                  = _configAplicacoes.smtpPort,
                smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
            };
            var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);


            return(RedirectToPage("./Index"));
        }
        public async Task Correio()
        {
            try
            {
                var _dadosform = Request.Form;

                var _de   = _dadosform["de"];
                var _para = _dadosform["para"];
                //var _paracnxid = _dadosform["cnxpara"];
                //var _decnxid = _dadosform["cnxde"];
                var _mens = _dadosform["mens"];

                //var _de = _dadosform["de"];
                //COM VISITANTE
                //var _de = User.Identity.IsAuthenticated ? User.Identity.Name.Replace("@", "").Replace(".", "") : "visitante";
                //var _de = User.Identity.Name.Replace("@", "").Replace(".", "");
                //var _email_de = _dadosform["emailde"];
                //var _avatar_de = _dadosform["avatarde"];
                //var _decnxid = _dadosform["cnxde"];
                //var _canal = _dadosform["canal"];

                //------------
                // SIGNALR
                //------------
                //await _hubNotificacoes.Clients.Client(_canal).SendAsync("enviarmens", _de, _para, _mens);
                //await _hubNotificacoes
                //    .Clients
                //    .Client(_paracnxid)
                //    .SendAsync("enviarmens", _de, _para, _mens);


                var _usulogado =
                    await _context.Users
                    .FirstOrDefaultAsync(x => x.Email == User.Identity.Name);

                //------------
                // SALVA TUDO
                //------------
                var _pegaCNXID =
                    _context.tblUsuSalaVIPs
                    .Where(x => x.UsuarioAppId == _usulogado.Id)
                    .OrderByDescending(x => x.DTHR)
                    .FirstOrDefault();

                var _pegaCNXID_PARA =
                    _context.tblUsuSalaVIPs
                    .Where(x => x.UsuarioAppId == _para)
                    .OrderByDescending(x => x.DTHR)
                    .FirstOrDefault();

                //if (_pegaCNXID != null)
                //{
                //    if (_pegaCNXID.Status == "ENTROU")
                //        _paracnxid = _pegaCNXID.CnxId;
                //}
                //if (_pegaCNXID_PARA != null)
                //{
                //    if (_pegaCNXID_PARA.Status == "ENTROU")
                //        _paracnxid = _pegaCNXID.CnxId;
                //}

                // LOG NO BANCO
                var _novamens = new tblHubConversa()
                {
                    De        = _de,
                    DeCnxId   = _pegaCNXID != null ? (_pegaCNXID.Status == "ENTROU" ? _pegaCNXID.CnxId : "") : "",
                    Para      = _para,
                    ParaCnxId = _pegaCNXID_PARA != null ? (_pegaCNXID_PARA.Status == "ENTROU" ? _pegaCNXID_PARA.CnxId : "") : "",
                    Mensagem  = _mens,
                    Lida      = false
                };
                _context.tblHubConversas.Add(_novamens);
                await _context.SaveChangesAsync();

                //await _hubNotificacoes
                //    .Clients.All
                //    .SendAsync("enviarmens", _novamens.DeCnxId, _de, _para, _mens);

                var conteudotraduzido = await VerificadoresRetornos.TranslateText(_mens, "en|pt-br");

                await _hubMensagens
                .Clients
                .Client(_novamens.ParaCnxId)
                .SendAsync("correio", _de, _para, conteudotraduzido, _novamens.DeCnxId, _novamens.ParaCnxId);
            }
            catch (System.Exception)
            {
                //return new { mens = "Não foi possível concluir sua solicitação." };
            }

            //await _hubContext.Clients.All.SendAsync("Notify", $"Página carregada");
            //return new { mens = "ok" };
        }
        public async Task <IActionResult> OnGetAsync(string userId, string code)
        {
            var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var _ips = new string[] { ip, "value2" };

            if (userId == null || code == null)
            {
                return(Redirect("/"));
            }

            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-times text-danger'></i>",
                    MENSAGEM            = $"<img src='/images/sem-imagem.png' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{userId}</b> usando o código <b>{code}</b> <b style='color:red;'>FALHOU</b> ao <b style='color:red;'>CONFIRMAR O EMAIL</b> na plataforma.",
                    ACAO                = $"CONFIRMAÇÃO DO EMAIL",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = "FALHA",
                    TIPO                = "ACESSO A PLATAFORMA",
                    UsuarioAppId        = userId,
                    VALOR               = 0,
                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                }, _context);

                return(NotFound());
            }

            var result = await _userManager.ConfirmEmailAsync(user, code);

            if (!result.Succeeded)
            {
                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-times text-danger'></i>",
                    MENSAGEM            = $"<img src='{user.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{user.Nome} {user.Sobrenome}</b> usando o email <b>{user.Email}</b> <b style='color:red;'>FALHOU</b> ao <b style='color:red;'>CONFIRMAR O EMAIL</b> na plataforma.",
                    ACAO                = $"CONFIRMAÇÃO DO EMAIL",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = "FALHA",
                    TIPO                = "ACESSO A PLATAFORMA",
                    UsuarioAppId        = userId,
                    VALOR               = 0,
                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                }, _context);

                return(NotFound());
                //throw new InvalidOperationException($"Error confirming email for user with ID '{userId}':");
            }

            await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            {
                ICOMENS             = "<i class='fas fa-check-circle text-success'></i>",
                MENSAGEM            = $"<img src='{user.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{user.Nome} {user.Sobrenome}</b> usando o email <b>{user.Email}</b> <b style='color:green;'>OBTEVE ÊXITO</b> em <b style='color:green;'>CONFIRMAR O EMAIL</b> na plataforma.",
                ACAO                = $"REGISTRO",
                DTHR                = DateTime.Now,
                IP                  = _ips.FirstOrDefault(),
                STATUS              = "SUCESSO",
                TIPO                = "ACESSO A PLATAFORMA",
                UsuarioAppId        = user.Id,
                VALOR               = 0,
                UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            }, _context);

            //// LOGCENTRAL
            //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //{
            //    ACAO = "ENVIO EMAIL - EMAIL CONFIRMADO",
            //    INVEST_LancamentoId = 0,
            //    INVEST_ModeloDocId = 0,
            //    TP = "",
            //    URLDOC = "",
            //    VALOR = 0,
            //    STATUS = "",
            //    UsuarioAppId = user.Id,
            //    IP = _ips.FirstOrDefault()
            //});
            //await _context.SaveChangesAsync();

            return(Page());
        }
Example #17
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var _ips = new string[] { ip, "value2" };

            returnUrl = returnUrl ?? Url.Content("~/");

            if (ModelState.IsValid)
            {
                var resultadoLogin = await _signInManager
                                     .PasswordSignInAsync(Input.Email, Input.Password, false, true);

                // FLAG ERROS DE LOGIN EM VALIDACOES
                var _permitoLogin = true;

                if (resultadoLogin.Succeeded)
                {
                    try
                    {
                        var _usu =
                            _context.Users
                            .Where(x => x.UserName.ToLower().Trim() == Input.Email.ToLower().Trim())
                            .FirstOrDefault();

                        if (_usu != null)
                        {
                            //*****************************************************
                            // EMAIL CONFIRMADO?
                            //*****************************************************
                            if (!_usu.EmailConfirmed)
                            {
                                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                                {
                                    ICOMENS             = "<i class='fas fa-exclamation-circle text-warning'></i>",
                                    MENSAGEM            = $"O usuário com o email <b>{_usu.Email}</b> teve o <b>ACESSO NEGADO</b> a plataforma.<br> Motivo: <b style='color:red;'>EMAIL NÃO CONFIRMADO</b>. <br><i style='color:red;'>Clique <a href='/CMSUsuarios/Edit?id={_usu.Id}'>AQUI</a> para acessar a conta deste usuário.</i>",
                                    ACAO                = $"BLOQUEIO",
                                    DTHR                = DateTime.Now,
                                    IP                  = _ips.FirstOrDefault(),
                                    STATUS              = "EMAIL NÃO CONFIRMADO",
                                    TIPO                = "ACESSO A PLATAFORMA",
                                    UsuarioAppId        = _usu.Id,
                                    VALOR               = 0,
                                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                                }, _context);

                                ModelState.AddModelError(string.Empty, "Email ainda não foi confirmado.");
                                _permitoLogin = false;
                            }

                            //*****************************************************
                            // ACESSO BLOQUEADO?
                            //*****************************************************
                            if (_usu.Sistema_AcessoBloqueado)
                            {
                                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                                {
                                    ICOMENS             = "<i class='fas fa-exclamation-circle text-warning'></i>",
                                    MENSAGEM            = $"O usuário <b>{_usu.Email}</b> teve o <b>ACESSO NEGADO</b> a plataforma.<br> Motivo: <b style='color:red;'>ACESSO BLOQUEADO</b>. <br><i style='color:red;'>Clique <a href='/CMSUsuarios/Edit?id={_usu.Id}'>AQUI</a> para acessar a conta deste usuário.</i>",
                                    ACAO                = $"BLOQUEIO",
                                    DTHR                = DateTime.Now,
                                    IP                  = _ips.FirstOrDefault(),
                                    STATUS              = "AVALIAÇÃO DE FICHA PENDENTE",
                                    TIPO                = "ACESSO A PLATAFORMA",
                                    UsuarioAppId        = _usu.Id,
                                    VALOR               = 0,
                                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                                }, _context);

                                ModelState.AddModelError(string.Empty, "Estamos analisando as informações da sua conta. Logo menos, entramos em contato. Obrigado pela paciência.");
                                _permitoLogin = false;
                            }
                        }
                        //**********************************************************
                        // ERRO DESCONHECIDO. NÃO CONSEGUI INSTANCIAR O OBJETO _usu
                        //**********************************************************
                        else
                        {
                            ModelState.AddModelError(string.Empty, "Não podemos verificar o seu login neste momento. Por favor, tente novamente mais tarde. Sentimos pelo ocorrido.");
                        }

                        if (!_permitoLogin)
                        {
                            await _signInManager.SignOutAsync();
                        }
                        else
                        {
                            await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                            {
                                ICOMENS             = "<i class='fas fa-sign-in-alt text-success'></i>",
                                MENSAGEM            = $"<img src='{_usu.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{_usu.Nome} {_usu.Sobrenome}</b> usando o email <b>{_usu.Email}</b> fez <b style='color:darkgreen;'>LOGIN</b> na plataforma.",
                                ACAO                = $"LOGIN",
                                DTHR                = DateTime.Now,
                                IP                  = _ips.FirstOrDefault(),
                                STATUS              = "SUCESSO",
                                TIPO                = "ACESSO A PLATAFORMA",
                                UsuarioAppId        = _usu.Id,
                                VALOR               = 0,
                                UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                            }, _context);

                            return(LocalRedirect(returnUrl));
                        }
                    }
                    catch (Exception _err)
                    {
                        var erro = _err;
                    }
                }
                //*****************************************************
                // DADOS INVÁLIDOS DE LOGIN. EMAIL E/OU SENHA INVÁLIDOS
                //*****************************************************
                else
                {
                    var _usu = new UsuarioApp();
                    try { _usu = _context.Users.Where(x => x.UserName == Input.Email).FirstOrDefault(); } catch (Exception) { }
                    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                    {
                        ICOMENS             = "<i class='fas fa-user-shield text-danger'></i>",
                        MENSAGEM            = $"Tentativa de login com o email <b>{Input.Email}</b>, recebeu como resposta <b>ACESSO NEGADO</b>.<br> <b style='color:red;'>Motivo: DADOS DE LOGIN INVÁLIDOS.</b><br>TOT. LOCKOUT: <b style='color:purple;'>{(_usu != null ? _usu.AccessFailedCount.ToString() : "?")}</b>",
                        ACAO                = $"LOGIN",
                        DTHR                = DateTime.Now,
                        IP                  = _ips.FirstOrDefault(),
                        STATUS              = "ACESSO NEGADO",
                        TIPO                = "ACESSO A PLATAFORMA",
                        UsuarioAppId        = _usu != null ? _usu.Id : "b1aadecb-4357-457d-bfea-27e153505497",
                        VALOR               = 0,
                        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                    }, _context);

                    ModelState.AddModelError(string.Empty, "Dados inválidos de login. Verifique com atenção o campo USUÁRIO OU EMAIL e o campo SENHA.");

                    if (_usu != null)
                    {
                        if (_usu.AccessFailedCount > 3)
                        {
                            ModelState.AddModelError(string.Empty, "Não conseguimos validar suas credenciais em nosso servidor. Entre em contato com a House2Invest e informe este problema.");

                            try { await _signInManager.UserManager.SetLockoutEnabledAsync(_usu, true); } catch (Exception) { }
                            try { await _signInManager.SignOutAsync(); } catch (Exception) { }

                            try
                            {
                                _usu.LockoutEnabled          = true;
                                _usu.Sistema_AcessoBloqueado = true;
                                _usu.AccessFailedCount       = 0;
                                _usu.LockoutEnd             = null;
                                _context.Attach(_usu).State = EntityState.Modified;
                                await _context.SaveChangesAsync();

                                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                                {
                                    ICOMENS             = "<i class='fas fa-user-lock text-warning'></i>",
                                    MENSAGEM            = $"O usuário <img src='{_usu.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;' /> <b>{_usu.Nome} {_usu.Sobrenome}</b> email <b>{_usu.Email}</b>, recebeu <b style='color:red;'>LOCKOUT</b> em sua conta.<br> <b style='color:red;'>Motivo: SUCESSIVAS TENTATIVAS DE LOGIN INVÁLIDAS.</b><br>TOT. LOCKOUT: <b style='color:purple;'>{(_usu != null ? _usu.AccessFailedCount.ToString() : "?")}</b>",
                                    ACAO                = $"ATIVADO",
                                    DTHR                = DateTime.Now,
                                    IP                  = _ips.FirstOrDefault(),
                                    STATUS              = "LOCKOUT NA CONTA",
                                    TIPO                = "ACESSO A PLATAFORMA",
                                    UsuarioAppId        = _usu != null ? _usu.Id : "b1aadecb-4357-457d-bfea-27e153505497",
                                    VALOR               = 0,
                                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                                }, _context);
                            }
                            catch (Exception) { }

                            return(Page());
                        }
                    }
                }
            }
            //*****************************************
            // DADOS INVÁLIDOS DE LOGIN. FALTAM CAMPOS
            //*****************************************
            else
            {
                ModelState.AddModelError(string.Empty, "Por favor, informe o email e a senha da sua conta antes de prosseguir.");
            }

            return(Page());



            //if (ModelState.IsValid)
            //{
            //    var _usu =
            //        _context.Users
            //        .Where(x => x.UserName.ToLower().Trim() == Input.Email.ToLower().Trim())
            //        .FirstOrDefault();

            //    try
            //    {
            //        if (_usu.AccessFailedCount > 3)
            //        {
            //            //await _signInManager.UserManager.SetLockoutEnabledAsync(_usu, true);
            //            _usu.LockoutEnabled = true;
            //            _usu.Sistema_AcessoBloqueado = true;
            //            _context.Attach(_usu).State = EntityState.Modified;
            //            await _context.SaveChangesAsync();

            //            await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //            {
            //                ICOMENS = "<i class='fas fa-user-lock text-danger'></i>",
            //                MENSAGEM = $"O USUÁRIO <i>{_usu.Email}</i> TEVE O ACESSO BLOQUEADO A PLATAFORMA. MOTIVO: <b style='color:red;'>5 TENTATIVAS INVÁLIDAS DE ACESSO EM UM CURTO ESPAÇO DE TEMPO</b>. <br><i style='color:red;'>Clique <a href='/CMSUsuarios/Edit?id={_usu.Id}'>AQUI</a> para acessar a conta deste usuário.</i>",
            //                ACAO = $"LOCKOUT",
            //                DTHR = DateTime.Now,
            //                IP = _ips.FirstOrDefault(),
            //                STATUS = "BLOQUEADO",
            //                TIPO = "ACESSO A PLATAFORMA",
            //                UsuarioAppId = _usu.Id,
            //                VALOR = 0,
            //                UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //            }, _context);

            //            //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //            //{
            //            //    ACAO = "ENTRADA NO SISTEMA",
            //            //    INVEST_LancamentoId = 0,
            //            //    INVEST_ModeloDocId = 0,
            //            //    TP = "LOCKOUT",
            //            //    URLDOC = "",
            //            //    VALOR = 0,
            //            //    STATUS = "ATIVADO",
            //            //    UsuarioAppId = _usu.Id,
            //            //    IP = _ips.FirstOrDefault()
            //            //});
            //            //await _context.SaveChangesAsync();

            //            ModelState.AddModelError(string.Empty, "Não conseguimos validar suas credenciais em nosso servidor. Entre em contato com a House2Invest e informe este problema.");
            //            try { await _signInManager.SignOutAsync(); } catch (System.Exception) { }
            //            return Page();
            //        }
            //    }
            //    catch (Exception err)
            //    {
            //        var erro = err;
            //        await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //        {
            //            ICOMENS = "<i class='fas fa-bug text-danger'></i>",
            //            MENSAGEM = $"{erro.Message}<br><code>{erro.StackTrace}</code>",
            //            ACAO = $"ERRO",
            //            DTHR = DateTime.Now,
            //            IP = _ips.FirstOrDefault(),
            //            STATUS = "ERRO INTERNO",
            //            TIPO = "ACESSO A PLATAFORMA",
            //            UsuarioAppId = _usu.Id,
            //            VALOR = 0,
            //            UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //        }, _context);

            //        return Page();
            //    }

            //    //--------------------------------
            //    // LOGCENTRAL
            //    //--------------------------------
            //    var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, false, true);
            //    if (result.Succeeded)
            //    {
            //        //var _usu = _context.Users.Where(x => x.UserName.ToLower().Trim() == Input.Email.ToLower().Trim()).FirstOrDefault();
            //        if (_usu != null)
            //        {
            //            //if (_usu.AccessFailedCount > 3)
            //            //{
            //            //    await _signInManager.UserManager.SetLockoutEnabledAsync(_usu, true);
            //            //    ModelState.AddModelError(string.Empty, "Não conseguimos validar suas credenciais em nosso servidor. Entre em contato com a House2Invest e informe este problema.");
            //            //    try { await _signInManager.SignOutAsync(); } catch (System.Exception) { }
            //            //    return Page();
            //            //}



            //            if (!_usu.EmailConfirmed)
            //            {
            //                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //                {
            //                    ICOMENS = "<i class='fas fa-sign-in-alt text-danger'></i>",
            //                    MENSAGEM = $"O USUÁRIO <i>{_usu.Email}</i> TEVE O ACESSO NEGADO A PLATAFORMA. MOTIVO: <b style='color:red;'>EMAIL AINDA NÃO CONFIRMADO</b>. <br><i style='color:red;'>Clique <a href='/CMSUsuarios/Edit?id={_usu.Id}'>AQUI</a> para acessar a conta deste usuário.</i>",
            //                    ACAO = $"BLOQUEIO",
            //                    DTHR = DateTime.Now,
            //                    IP = _ips.FirstOrDefault(),
            //                    STATUS = "EMAIL NÃO CONFIRMADO",
            //                    TIPO = "ACESSO A PLATAFORMA",
            //                    UsuarioAppId = _usu.Id,
            //                    VALOR = 0,
            //                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //                }, _context);

            //                ModelState.AddModelError(string.Empty, "Email ainda não foi confirmado.");
            //                //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //                //{
            //                //    ACAO = "ENTRADA NO SISTEMA",
            //                //    INVEST_LancamentoId = 0,
            //                //    INVEST_ModeloDocId = 0,
            //                //    TP = "LOGIN",
            //                //    URLDOC = "",
            //                //    VALOR = 0,
            //                //    STATUS = "EMAIL NÃO CONFIRMADO",
            //                //    UsuarioAppId = _usu.Id,
            //                //    IP = _ips.FirstOrDefault()
            //                //});
            //                //await _context.SaveChangesAsync();
            //                try { await _signInManager.SignOutAsync(); } catch (System.Exception) { }
            //                return Page();
            //            }

            //            if (_usu.Sistema_AcessoBloqueado)
            //            {
            //                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //                {
            //                    ICOMENS = "<i class='fas fa-sign-in-alt text-danger'></i>",
            //                    MENSAGEM = $"O USUÁRIO <i>{_usu.Email}</i> TEVE O ACESSO NEGADO A PLATAFORMA. MOTIVO: <b style='color:red;'>ACESSO BLOQUEADO</b>. <br><i style='color:red;'>Clique <a href='/CMSUsuarios/Edit?id={_usu.Id}'>AQUI</a> para acessar a conta deste usuário.</i>",
            //                    ACAO = $"BLOQUEIO",
            //                    DTHR = DateTime.Now,
            //                    IP = _ips.FirstOrDefault(),
            //                    STATUS = "AVALIAÇÃO DE FICHA PENDENTE",
            //                    TIPO = "ACESSO A PLATAFORMA",
            //                    UsuarioAppId = _usu.Id,
            //                    VALOR = 0,
            //                    UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //                }, _context);

            //                ModelState.AddModelError(string.Empty, "Estamos analisando as informações da sua conta. Logo menos, entramos em contato. Obrigado pela paciência.");

            //                //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //                //{
            //                //    ACAO = "ENTRADA NO SISTEMA",
            //                //    INVEST_LancamentoId = 0,
            //                //    INVEST_ModeloDocId = 0,
            //                //    TP = "LOGIN",
            //                //    URLDOC = "",
            //                //    VALOR = 0,
            //                //    STATUS = "ACESSO BLOQUEADO",
            //                //    UsuarioAppId = _usu.Id,
            //                //    IP = _ips.FirstOrDefault()
            //                //});
            //                //await _context.SaveChangesAsync();

            //                try { await _signInManager.SignOutAsync(); } catch (System.Exception) { }
            //                return Page();
            //            }
            //        }

            //        _logger.LogInformation("User logged in.");


            //        await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //        {
            //            ICOMENS = "<i class='fas fa-sign-in-alt text-success'></i>",
            //            MENSAGEM = $"<b>{_usu.Email}</b> <i>FEZ LOGIN</i> NA PLATAFORMA.",
            //            ACAO = $"LOGIN",
            //            DTHR = DateTime.Now,
            //            IP = _ips.FirstOrDefault(),
            //            STATUS = "SUCESSO",
            //            TIPO = "ACESSO A PLATAFORMA",
            //            UsuarioAppId = _usu.Id,
            //            VALOR = 0,
            //            UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //        }, _context);

            //        try
            //        {


            //            ////--------------------------------
            //            //// LOGCENTRAL
            //            ////--------------------------------
            //            //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //            //{
            //            //    ACAO = "ACESSO A PLATAFORMA",
            //            //    INVEST_LancamentoId = 0,
            //            //    INVEST_ModeloDocId = 0,
            //            //    TP = "LOGIN",
            //            //    URLDOC = "",
            //            //    VALOR = 0,
            //            //    STATUS = "SUCESSO",
            //            //    UsuarioAppId = _usu.Id,
            //            //    IP = _ips.FirstOrDefault()
            //            //});
            //            //await _context.SaveChangesAsync();
            //        }
            //        catch (System.Exception) { }

            //        return LocalRedirect(returnUrl);
            //    }

            //    if (result.RequiresTwoFactor)
            //    {
            //        return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, Input.RememberMe });
            //    }

            //    //if (result.IsLockedOut)
            //    //{
            //    //    ModelState.AddModelError(string.Empty, "Não conseguimos validar suas credenciais em nosso servidor. Entre em contato com a House2Invest e informe este problema.");

            //    //    _context.LOGCENTRALs.Add(new LOGCENTRAL()
            //    //    {
            //    //        ACAO = "ENTRADA NO SISTEMA",
            //    //        INVEST_LancamentoId = 0,
            //    //        INVEST_ModeloDocId = 0,
            //    //        TP = "LOGIN",
            //    //        URLDOC = "",
            //    //        VALOR = 0,
            //    //        STATUS = "LOCKOUT",
            //    //        UsuarioAppId = _usu.Id,
            //    //        IP = _ips.FirstOrDefault()
            //    //    });
            //    //    await _context.SaveChangesAsync();

            //    //    try { await _signInManager.SignOutAsync(); } catch (System.Exception) { }
            //    //    return RedirectToPage("./Lockout");

            //    //    //_logger.LogWarning("User account locked out.");
            //    //    //return RedirectToPage("./Lockout");
            //    //}
            //    //else
            //    //{

            //    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            //    {
            //        ICOMENS = "<i class='fas fa-sign-in-alt text-danger'></i>",
            //        MENSAGEM = $"O USUÁRIO <i>{_usu.Email}</i> TEVE ACESSO NEGADO A PLATAFORMA. MOTIVO: Dados de login inválidos.",
            //        ACAO = $"LOGIN",
            //        DTHR = DateTime.Now,
            //        IP = _ips.FirstOrDefault(),
            //        STATUS = "ACESSO NEGADO",
            //        TIPO = "ACESSO A PLATAFORMA",
            //        UsuarioAppId = _usu.Id,
            //        VALOR = 0,
            //        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            //    }, _context);

            //    ModelState.AddModelError(string.Empty, "Dados de login inválidos.");
            //    return Page();
            //    //}
            //}

            //return Page();
        }
Example #18
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            var _erroValid = false;
            var ip         = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var _ips       = new string[] { ip, "value2" };

            try
            {
                if (!Input.Termos)
                {
                    ModelState.AddModelError(string.Empty, "Leia e Aceite os Termos de Uso antes de prosseguir");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Email))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo EMAIL");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Password))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo SENHA");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.ConfirmPassword))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo CONFIRME SUA SENHA");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Nome))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo NOME");
                    _erroValid = true;
                }
                if (string.IsNullOrEmpty(Input.Sobrenome))
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo SOBRENOME");
                    _erroValid = true;
                }
                if (Convert.ToDateTime(Input.Nascimento).Year == 0001)
                {
                    ModelState.AddModelError(string.Empty, "Preencha o campo DATA DE NASCIMENTO");
                    _erroValid = true;
                }
                //if (Input.ImagemDocDigitalizado == null)
                //{
                //    ModelState.AddModelError(string.Empty, "Necessário o envio de um documento com sua foto");
                //    _erroValid = true;
                //}
                if (Input.ImagemSelfie == null)
                {
                    ModelState.AddModelError(string.Empty, "Necessário o envio de uma foto sua");
                    _erroValid = true;
                }
                //if (Input.ImagemComprovanteResidencia == null)
                //{
                //    ModelState.AddModelError(string.Empty, "Necessário o envio de um comprovante de residência");
                //    _erroValid = true;
                //}
                if (Input.Password != Input.ConfirmPassword)
                {
                    ModelState.AddModelError(string.Empty, "A nova senha e a sua confirmação não conferem. Digite novamente");
                    _erroValid = true;
                }

                if (_erroValid)
                {
                    return(Page());
                }

                var _config = _context.AppPerfil
                              .Include(x => x.AppConfiguracoes)
                              .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                              .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                              .FirstOrDefault();

                //if (Input.ImagemDocDigitalizado != null)
                //{
                //    var _imagemLogotipo =
                //        await VerificadoresRetornos
                //        .EnviarImagemAzure(Input.ImagemDocDigitalizado, 502000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                //    {
                //        Input.Sistema_URLFotoDoc = _imagemLogotipo;
                //    }
                //}

                if (Input.ImagemSelfie != null)
                {
                    var _imagemLogotipo =
                        await VerificadoresRetornos
                        .EnviarImagemAzure(Input.ImagemSelfie, 502000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                    {
                        Input.Sistema_URLSelfieDocVERSO = _imagemLogotipo;
                    }
                }

                //if (Input.ImagemComprovanteResidencia != null)
                //{
                //    var _imagemLogotipo =
                //        await VerificadoresRetornos
                //        .EnviarImagemAzure(Input.ImagemComprovanteResidencia, 502000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                //    if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                //    {
                //        Input.Sistema_URLComprovanteResidencia = _imagemLogotipo;
                //    }
                //}

                var user = new UsuarioApp
                {
                    AppConfiguracoesId = _context.AppConfiguracoes.FirstOrDefault().Id,
                    Nome                  = Input.Nome,
                    Sobrenome             = Input.Sobrenome,
                    Nascimento            = Input.Nascimento,
                    UserName              = Input.Email,
                    NormalizedUserName    = Input.Email,
                    Email                 = Input.Email,
                    NormalizedEmail       = Input.Email,
                    EmailConfirmed        = false,
                    PasswordHash          = Input.Password,
                    SecurityStamp         = string.Empty,
                    AvatarUsuario         = Input.Sistema_URLSelfieDocVERSO,
                    Sistema_FuncaoUsuario = "USUARIO",
                    Bio = "Olá mundo",
                    ContatoAutenticacao_Email            = Input.Email,
                    ContatoAutenticacao_EmailAlternativo = Input.ContatoAutenticacao_EmailAlternativo,
                    ContatoAutenticacao_Fone             = Input.Contato_FoneCelular,
                    ContatoAutenticacao_FoneAlternativo  = Input.Contato_FoneComercial,
                    Contato_Bairro        = Input.Contato_Bairro,
                    Contato_CEP           = Input.Contato_CEP,
                    Contato_Cidade        = Input.Contato_Cidade,
                    Contato_Complemento   = Input.Contato_Complemento,
                    Contato_Escritorio    = Input.Contato_Escritorio,
                    Contato_Estado        = Input.Contato_Estado,
                    Contato_FoneCelular   = Input.Contato_FoneCelular,
                    Contato_FoneComercial = Input.Contato_FoneComercial,
                    Contato_Logradouro    = Input.Contato_Logradouro,
                    Contato_LogradouroNum = Input.Contato_LogradouroNum,
                    Contato_Pais          = "BRASIL",
                    Contato_Website       = Input.Contato_Website,
                    Genero                              = Input.Genero,
                    EstadoCivil                         = Input.EstadoCivil,
                    ImagemFundoPerfil                   = "/images/fundo_padrao_perfil.png",
                    Documentacao_CNPJ                   = Input.Documentacao_CNPJ,
                    Documentacao_CPF                    = Input.Documentacao_CPF,
                    Documentacao_RG                     = Input.Documentacao_RG,
                    Documentacao_TPPessoa               = Input.Documentacao_TPPessoa,
                    Financeiro_Banco_Ag                 = string.IsNullOrEmpty(Input.Financeiro_Banco_Ag) ? "" : Input.Financeiro_Banco_Ag,
                    Financeiro_Banco_CC                 = string.IsNullOrEmpty(Input.Financeiro_Banco_CC) ? "" : Input.Financeiro_Banco_CC,
                    Financeiro_Banco_Nome               = string.IsNullOrEmpty(Input.Financeiro_Banco_Nome) ? "" : Input.Financeiro_Banco_Nome,
                    Sistema_AcessoBloqueado             = true,
                    Sistema_DataDeclaracaoCienciaTermos = DateTime.Now,
                    Sistema_DeclaracaoCienciaTermos     = Input.Termos,
                    Sistema_URLComprovanteResidencia    = Input.Sistema_URLComprovanteResidencia,
                    Sistema_URLSelfieDocFRENTE          = "",
                    MidiasSociais_Facebook              = "",
                    MidiasSociais_GooglePlus            = "",
                    MidiasSociais_Instagram             = "",
                    MidiasSociais_Linkedin              = "",
                    MidiasSociais_Pinterest             = "",
                    MidiasSociais_Twitter               = "",
                    MidiasSociais_Youtube               = "",
                    PhoneNumber                         = Input.Contato_FoneCelular,
                    PhoneNumberConfirmed                = true,
                    LockoutEnabled                      = false,
                    Trabalho_Empresa                    = "NÃO INFORMADO",
                    Trabalho_Cargo                      = "NÃO INFORMADO",
                    Trabalho_Profissao                  = "NÃO INFORMADO",
                    TwoFactorEnabled                    = false,
                    Sistema_URLFotoDoc                  = Input.Sistema_URLFotoDoc,
                    Sistema_URLSelfieDocVERSO           = Input.Sistema_URLSelfieDocVERSO,
                    Financeiro_Investidor_Perfil        = Input.Financeiro_Investidor_Perfil,
                    Sistema_DeclaracaoPessoaExposta     = Input.Sistema_DeclaracaoPessoaExposta,
                    Sistema_NaoAparecerListaProjetos    = Input.Sistema_NaoAparecerListaProjetos
                };

                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "USU");

                    _logger.LogInformation("Usuário criado.");

                    //------------------------------------
                    // LOGCENTRAL
                    //------------------------------------
                    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                    {
                        ICOMENS             = "<i class='fas fa-user-plus text-warning'></i>",
                        MENSAGEM            = $"<img src='{user.AvatarUsuario}' style='border-radius:100%;max-width:100%;height:24px;margin-right:5px;'/> <b>{user.Nome} {user.Sobrenome}</b>,<br> com o email <b>{user.Email}</b><br> <b style='color:green;'>CRIOU UMA CONTA</b> na plataforma.",
                        ACAO                = $"REGISTRO",
                        DTHR                = DateTime.Now,
                        IP                  = _ips.FirstOrDefault(),
                        STATUS              = "PENDENTE",
                        TIPO                = "ACESSO A PLATAFORMA",
                        UsuarioAppId        = user.Id,
                        VALOR               = 0,
                        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                    }, _context);

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { userId = user.Id, code },
                        protocol: Request.Scheme);

                    //var _conteudohtml = "<div style='font-size:20px;line-height:30px;'>";
                    var _conteudohtml = "<div style='line-height: 16px;'>";

                    _conteudohtml += $"Bem-vindo <b>{user.Nome} {user.Sobrenome}</b>,<br>";
                    _conteudohtml += $"Recebemos sua solicitação para cadastro na HOUSE2INVEST.<br>";
                    _conteudohtml += $"Para acessar a plataforma de investimentos da HOUSE2INVEST, você deve ativar o seu cadastro. Para isso, utilize o link abaixo e confirme os dados que você informou:<br>";
                    _conteudohtml += $"USUÁRIO: <b>{user.Email}</b> com o CPF: <b>{user.Documentacao_CPF}</b><br><br>";
                    _conteudohtml += $"Clique <a href='{callbackUrl}'>aqui</a> e ative a sua conta, ou copie e cole o link abaixo no seu navegador de preferência.<br><br><br>";
                    _conteudohtml += $"Atenciosamente,<br>";
                    _conteudohtml += $"Equipe House2Invest<br>";
                    _conteudohtml += $"<br><br>";

                    _conteudohtml += $"<div style='font-size:9px;font-style:italic;line-height:12px;'>";
                    _conteudohtml += $"Este é um e-mail automático gerado pelo sistema. Em caso de dúvidas, acesse nosso Atendimento Online. Para receber com sucesso nossos e-mails, é importante adicionar o e-mail [email protected] na sua lista de endereços confiáveis.<br>";
                    _conteudohtml += $"Nós valorizamos a sua privacidade. Estamos enviando esse email porque você entrou em contato com um de nossos usuários.<br>";
                    _conteudohtml += $"AVISO LEGAL: Algumas mensagens enviadas por nós podem conter conteúdos escritos e publicadas por usuários terceiros não ligados ao site, cuja responsabilidade pelas informações é exclusiva do autor - entre em contato conosco em caso de dúvidas. Ao ler este e-mail você declara que leu e aceita nossos <a href='https://depoisdalinha.blob.core.windows.net/house2invest/docs/novosdocs_usuarios/TERMO_DE_USO_H2I.pdf'>Termos de uso e privacidade</a>.<br>";
                    _conteudohtml += $"</div>";

                    _conteudohtml += $"</div>";

                    // instanciar objeto email
                    var _configAplicacoes =
                        _context.AppConfiguracoes_Aplicativo
                        .FirstOrDefault();
                    var _objemail = new ObjetoEmailEnvio()
                    {
                        ASSUNTO                   = "[CONFIRME SEU EMAIL] House2Invest",
                        COPIA                     = _configAplicacoes.mailToAdd,
                        mailFrom                  = _configAplicacoes.mailFrom,
                        MENSAGEM                  = _conteudohtml,
                        PARA                      = user.Email,
                        smtpCredentialsEmail      = _configAplicacoes.smtpCredentialsEmail,
                        smtpCredentialsSenha      = _configAplicacoes.smtpCredentialsSenha,
                        smtpEnableSsl             = _configAplicacoes.smtpEnableSsl,
                        smtpHost                  = _configAplicacoes.smtpHost,
                        smtpPort                  = _configAplicacoes.smtpPort,
                        smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
                    };
                    var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);

                    //----------------------------------------------------
                    // LOGCENTRAL
                    //----------------------------------------------------
                    await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                    {
                        ICOMENS             = "<i class='fas fa-envelope text-primary'></i>",
                        MENSAGEM            = "<i style='font-size:11px;font-family:monospace;line-height:10px;text-align:justify!important;'>" + _conteudohtml + "</i>" + $"<br> <div>    <a href='javascript:ReenviarEmailLog(0);' class='btn btn-sm bg-success' title='Reenviar email' style='padding:0.25rem 0.4rem;font-size:14px;'><i class='fas fa-paper-plane'></i></a></div>",
                        ACAO                = $"ENVIOU EMAIL",
                        DTHR                = DateTime.Now,
                        IP                  = _ips.FirstOrDefault(),
                        STATUS              = "AGUARDANDO CONFIRMAÇÃO",
                        TIPO                = "NOTIFICAÇÃO",
                        UsuarioAppId        = user.Id,
                        VALOR               = 0,
                        UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
                    }, _context);

                    //var _enviou =
                    //    await VerificadoresRetornos
                    //    .EnviarEmail(user.Email, callbackUrl, "[CONFIRME SEU EMAIL] House2Invest", _conteudohtml);

                    //var ip = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
                    //var _ips = new string[] { ip, "value2" };
                    //// LOGCENTRAL
                    //_context.LOGCENTRALs.Add(new LOGCENTRAL()
                    //{
                    //    ACAO = "ENVIO EMAIL - CONFIRME SEU EMAIL",
                    //    INVEST_LancamentoId = 0,
                    //    INVEST_ModeloDocId = 0,
                    //    TP = "",
                    //    URLDOC = "",
                    //    VALOR = 0,
                    //    STATUS = "",
                    //    UsuarioAppId = user.Id,
                    //    IP = _ips.FirstOrDefault()
                    //});
                    //await _context.SaveChangesAsync();

                    if (_enviou == "ok")
                    {
                        return(Redirect("/Identity/Account/RegisterAgradec?userId=" + user.Id + "&code=" + code));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, _enviou);
                    }
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            catch (Exception erro)
            {
                ModelState.AddModelError(string.Empty, erro.Message);
            }

            return(Page());
        }
Example #19
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            // USUÁRIO LOGADO
            var _usu = _context.Users
                       .Where(x => x.UserName == User.Identity.Name)
                       .FirstOrDefault();

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var _atualizaTransf =
                _context.Tranferencias
                .Include(x => x.BlocoProjInvestimentos)
                .Where(x => x.Id == modelo.Id)
                .FirstOrDefault();

            var _errosValidacoes = false;

            if (modelo.ArquivoComprovTransf != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(modelo.ArquivoComprovTransf, 614200, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (!_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                    _errosValidacoes = true;
                }
                else
                {
                    _atualizaTransf.URLComprovante = _imagemLogotipo;
                }
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Selecione uma imagem");
                _errosValidacoes = true;
            }

            if (_errosValidacoes)
            {
                return(Page());
            }

            _context.Attach(_atualizaTransf).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var _ips = new string[] { ip, "value2" };

            // PEGO O USUARIO DA TRANSFERENCIA, CASO EXISTA
            var _usuTransf = new UsuarioApp();

            if (!string.IsNullOrEmpty(_atualizaTransf.IdUsu))
            {
                _usuTransf = _context.Users
                             .Where(x => x.Id == _atualizaTransf.IdUsu)
                             .FirstOrDefault();
            }

            //// LOGCENTRAL
            await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
            {
                ICOMENS             = "<i class='fas fa-image text-success'></i>",
                MENSAGEM            = $"A transferência de <b>{_atualizaTransf.Valor.ToString("C2")}</b> para o investidor <b>{_usuTransf.Nome} {_usuTransf.Sobrenome}</b> foi <b style='color:green;'>EFETUADA COM SUCESSO</b>. O comprovante digitalizado da transação é <a href='{_atualizaTransf.URLComprovante}' target='_blank'>esse aqui</a>.",
                ACAO                = $"ENVIO DE COMPROVANTE (TRANSFERÊNCIA)",
                DTHR                = DateTime.Now,
                IP                  = _ips.FirstOrDefault(),
                STATUS              = "TRANSFERIDO",
                TIPO                = "CONFIRMAÇÕES",
                UsuarioAppId        = !string.IsNullOrEmpty(_atualizaTransf.IdUsu) ? _atualizaTransf.IdUsu : "b1aadecb-4357-457d-bfea-27e153505497",
                VALOR               = _atualizaTransf.Valor,
                UsuarioAppCriadorId = "b1aadecb-4357-457d-bfea-27e153505497"
            }, _context);

            if (!string.IsNullOrEmpty(_atualizaTransf.IdUsu))
            {
                //--------------------------------
                // APLICACAO PADRAO
                //--------------------------------
                var _appPadrao =
                    _context.AppConfiguracoes_Aplicativo
                    .FirstOrDefault();

                string _textoEmail = $"Prezado {_usuTransf.Nome} <br>";
                _textoEmail += $"A transferência no valor de <b>{_atualizaTransf.Valor.ToString("C2")}</b> foi <b style='color:green;'>EFETUADA COM SUCESSO</b>. <br>";
                _textoEmail += $"Abaixo está o link com o comprovante: <br>";
                _textoEmail += $"<a href='{_atualizaTransf.URLComprovante}' target='_blank'>Comprovante</a> <br><br>";
                _textoEmail += $"Atenciosamente, <br>";
                _textoEmail += $"<b>Equipe House2invest</b> <br>";
                // instanciar objeto email
                var _objemail = new ObjetoEmailEnvio()
                {
                    ASSUNTO                   = "[STATUS INVESTIMENTO] House2Invest",
                    COPIA                     = _appPadrao.mailToAdd,
                    mailFrom                  = _appPadrao.mailFrom,
                    MENSAGEM                  = _textoEmail,
                    PARA                      = _usuTransf.Email,
                    smtpCredentialsEmail      = _appPadrao.smtpCredentialsEmail,
                    smtpCredentialsSenha      = _appPadrao.smtpCredentialsSenha,
                    smtpEnableSsl             = _appPadrao.smtpEnableSsl,
                    smtpHost                  = _appPadrao.smtpHost,
                    smtpPort                  = _appPadrao.smtpPort,
                    smtpUseDefaultCredentials = _appPadrao.smtpUseDefaultCredentials
                };
                var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);

                await VerificadoresRetornos.PROC__GravaLOG(new LOGCENTRAL()
                {
                    ICOMENS             = "<i class='fas fa-envelope text-primary'></i>",
                    MENSAGEM            = "<i style='font-size:11px;font-family:monospace;line-height:10px;text-align:justify!important;'>" + _textoEmail + "</i>" + $"<br> <div>    <a href='javascript:ReenviarEmailLog({_atualizaTransf.Id});' class='btn btn-sm bg-success' title='Reenviar email' style='padding:0.25rem 0.4rem;font-size:14px;'><i class='fas fa-paper-plane'></i></a></div>",
                    ACAO                = $"ENVIOU EMAIL",
                    DTHR                = DateTime.Now,
                    IP                  = _ips.FirstOrDefault(),
                    STATUS              = "ENVIADO",
                    TIPO                = "NOTIFICAÇÃO",
                    UsuarioAppId        = !string.IsNullOrEmpty(_atualizaTransf.IdUsu) ? _atualizaTransf.IdUsu : "b1aadecb-4357-457d-bfea-27e153505497",
                    VALOR               = _atualizaTransf.Valor,
                    UsuarioAppCriadorId = _usu.Id
                }, _context);
            }

            //_context.LOGCENTRALs.Add(new LOGCENTRAL()
            //{
            //    ACAO = "TRANSFERÊNCIA INVESTIMENTO",
            //    INVEST_LancamentoId = 0,
            //    INVEST_ModeloDocId = 0,
            //    TP = "TRANSF",
            //    URLDOC = "",
            //    VALOR = _atualizaTransf.Valor,
            //    STATUS = "SUSPENSO",
            //    UsuarioAppId = _atualizaTransf.IdUsu,
            //    IP = _ips.FirstOrDefault()
            //});
            //await _context.SaveChangesAsync();


            return(RedirectToPage("./Index"));
        }
Example #20
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var _errosValidacoes = false;

            if (BlocoProjInvestimento.ImagemDestaque != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(BlocoProjInvestimento.ImagemDestaque, 550000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    BlocoProjInvestimento.UrlImgPrinc = _imagemLogotipo;
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                    _errosValidacoes = true;
                }
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Selecione uma imagem do seu computador");
                _errosValidacoes = true;
            }

            if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) > Convert.ToDouble(BlocoProjInvestimento.Valor))
            {
                ModelState.AddModelError(string.Empty, "O Lance mínimo deve ser INFERIOR ao VALOR TOTAL DO INVESTIMENTO");
                _errosValidacoes = true;
            }

            if (VerificadoresRetornos.ConverteStringParaDateTime(BlocoProjInvestimento.Contador_DataFinal) < DateTime.Now)
            {
                ModelState.AddModelError(string.Empty, "A data limite do contador deve ser SUPERIOR a data de hoje");
                _errosValidacoes = true;
            }

            if (Convert.ToDouble(BlocoProjInvestimento.Valor) <= 0)
            {
                ModelState.AddModelError(string.Empty, "Necessário: VALOR TOTAL DO INVESTIMENTO");
                _errosValidacoes = true;
            }

            if (Convert.ToDouble(BlocoProjInvestimento.LanceMinimo) <= 0)
            {
                ModelState.AddModelError(string.Empty, "Necessário: VALOR LANCE MÍNIMO");
                _errosValidacoes = true;
            }

            if (_errosValidacoes)
            {
                BlocoProjInvestimento.UrlImgPrinc = @"/images/sem-imagem.png";
                return(Page());
            }

            _context.BlocoProjInvestimentos.Add(BlocoProjInvestimento);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
Example #21
0
        public async Task <IActionResult> OnPostAsync()
        {
            var _errosValidacoes = false;

            if (!ModelState.IsValid)
            {
                _errosValidacoes = true;
            }

            var _config = _context.AppPerfil
                          .Include(x => x.AppConfiguracoes)
                          .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                          .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                          .FirstOrDefault();

            var registro =
                _context
                .Construtoras
                .Where(x => x.Id == Construtora.Id)
                .FirstOrDefault();

            registro.Bairro                       = Construtora.Bairro;
            registro.CEP                          = Construtora.CEP;
            registro.Cidade                       = Construtora.Cidade;
            registro.CNPJ                         = Construtora.CNPJ;
            registro.Complemento                  = Construtora.Complemento;
            registro.DTHR                         = Construtora.DTHR;
            registro.Email                        = Construtora.Email;
            registro.Estado                       = Construtora.Estado;
            registro.Fone                         = Construtora.Fone;
            registro.Logradouro                   = Construtora.Logradouro;
            registro.LogradouroNum                = Construtora.LogradouroNum;
            registro.NomeFantasia                 = Construtora.NomeFantasia;
            registro.Pais                         = Construtora.Pais;
            registro.RazaoSocial                  = Construtora.RazaoSocial;
            registro.Website                      = Construtora.Website;
            registro.AlertaSobreRiscos            = Construtora.AlertaSobreRiscos;
            registro.CaracOfertaTribuAplicavel    = Construtora.CaracOfertaTribuAplicavel;
            registro.ComunPrestInfoContAposOferta = Construtora.ComunPrestInfoContAposOferta;
            registro.EstudoViabEcoFinanc          = Construtora.EstudoViabEcoFinanc;
            registro.IncorpConstrut               = Construtora.IncorpConstrut;
            registro.InfoPlanoNegocios            = Construtora.InfoPlanoNegocios;
            registro.InfoRemunPlataforma          = Construtora.InfoRemunPlataforma;
            registro.InfoValorMobOfertado         = Construtora.InfoValorMobOfertado;
            registro.OutrasInfos                  = Construtora.OutrasInfos;
            registro.SetorAtuacaoHist             = Construtora.SetorAtuacaoHist;
            registro.SociedadeAdms                = Construtora.SociedadeAdms;
            if (Construtora.Imagem != null)
            {
                var _imagemLogotipo =
                    await VerificadoresRetornos
                    .EnviarImagemAzure(Construtora.Imagem, 550000, 0, 0, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey, _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz);

                if (_imagemLogotipo.ToLower().Trim().Contains("blob.core.windows.net"))
                {
                    registro.Logotipo = _imagemLogotipo;
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "A imagem é muito grande");
                    _errosValidacoes = true;
                }
            }

            if (_errosValidacoes)
            {
                return(Page());
            }

            _context.Attach(registro).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                //if (!BlocoProjInvestimentoExists(BlocoProjInvestimento.Id))
                //{
                //    return NotFound();
                //}
                //else
                //{
                //    throw;
                //}
            }

            return(RedirectToPage("./Index"));
        }
Example #22
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var registro = _context.Users
                           .Where(x => x.Id == modelo.Id)
                           .FirstOrDefault();

            try
            {
                var _oldAcessoBloqueado = registro.Sistema_AcessoBloqueado;
                var _newAcessoBloqueado = modelo.AcessoBloqueado;

                registro.EmailConfirmed          = modelo.EmailConfirmado;
                registro.Sistema_AcessoBloqueado = modelo.AcessoBloqueado;
                registro.LockoutEnabled          = modelo.Lockout;
                if (modelo.Lockout)
                {
                    registro.AccessFailedCount = 0;
                }

                registro.Financeiro_Investidor_Perfil = modelo.Financeiro_Investidor_Perfil;
                _context.Attach(registro).State       = EntityState.Modified;

                await _context.SaveChangesAsync();

                if (registro.Sistema_AcessoBloqueado)
                {
                    await _hubContext.Clients.All.SendAsync("ForceLogOff", $"{modelo.Id}");

                    //await _hubContextCMS.Clients.All.SendAsync("ForceLogOffCMS", $"{modelo.Id}");
                }

                if (_oldAcessoBloqueado && !_newAcessoBloqueado)
                {
                    // instanciar objeto email
                    var _configAplicacoes =
                        _context.AppConfiguracoes_Aplicativo
                        .FirstOrDefault();
                    var _objemail = new ObjetoEmailEnvio()
                    {
                        ASSUNTO                   = "[Documentação APROVADA] House2Invest",
                        COPIA                     = _configAplicacoes.mailToAdd,
                        mailFrom                  = _configAplicacoes.mailFrom,
                        MENSAGEM                  = string.Format($"Olá <b>{registro.Nome}</b>, td. em paz?{Environment.NewLine}Obaaa... Sua documentação está ok conosco!!!{Environment.NewLine}Nossa equipe de suporte entrará em contato com você. Fique de olho na sua caixa de entrada. ;)"),
                        PARA                      = registro.Email,
                        smtpCredentialsEmail      = _configAplicacoes.smtpCredentialsEmail,
                        smtpCredentialsSenha      = _configAplicacoes.smtpCredentialsSenha,
                        smtpEnableSsl             = _configAplicacoes.smtpEnableSsl,
                        smtpHost                  = _configAplicacoes.smtpHost,
                        smtpPort                  = _configAplicacoes.smtpPort,
                        smtpUseDefaultCredentials = _configAplicacoes.smtpUseDefaultCredentials
                    };
                    var _enviou = await VerificadoresRetornos.EnviarEmail(_objemail);

                    //var _enviou =
                    //    await VerificadoresRetornos
                    //    .EnviarEmail(registro.Email,
                    //    "",
                    //    "[Documentação APROVADA] House2Invest", string.Format($"Olá <b>{registro.Nome}</b>, td. em paz?{Environment.NewLine}Obaaa... Sua documentação está ok conosco!!!{Environment.NewLine}Nossa equipe de suporte entrará em contato com você. Fique de olho na sua caixa de entrada. ;)"));

                    var ip   = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();
                    var _ips = new string[] { ip, "value2" };

                    //// LOGCENTRAL
                    //_context.LOGCENTRALs.Add(new LOGCENTRAL()
                    //{
                    //    ACAO = "ENVIO EMAIL - DOCUMENTAÇÃO APROVADA",
                    //    INVEST_LancamentoId = 0,
                    //    INVEST_ModeloDocId = 0,
                    //    TP = "",
                    //    URLDOC = "",
                    //    VALOR = 0,
                    //    STATUS = "",
                    //    UsuarioAppId = registro.Id,
                    //    IP = _ips.FirstOrDefault()
                    //});
                    //await _context.SaveChangesAsync();
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                return(NotFound());
            }

            return(RedirectToPage("./Index"));
        }
Example #23
0
        public async Task <IActionResult> OnPostAsync()
        {
            var _totaldeelementos = Request.Form.Count - 1;
            var _listaimagens     = new List <ImagensEnvio>();
            var _idperfil         = AppPerfilId;

            // PEGO A LISTA DE IMAGENS QUE EXISTE NO BANCO PARA COMPARAR COM O MODELO ENVIADO
            var _Listaimagensalbum =
                _context.GaleriaPerfilImagem
                .Where(x => x.GaleriaPerfilAlbumId == GaleriaPerfilAlbum.Id)
                .ToList();

            // OBTENDO O REGISTRO EXISTENTE NO BANCO PARA ALTERACAO COM O MODELO ENVIADO
            var registro =
                _context
                .GaleriaPerfilAlbum
                .Where(x => x.Id == GaleriaPerfilAlbum.Id)
                .FirstOrDefault();

            registro.Nome      = GaleriaPerfilAlbum.Nome;
            registro.Descricao = GaleriaPerfilAlbum.Descricao;

            _context.Attach(registro).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            // CARREGO UMA LISTA COM AS IMAGENS ENVIADAS PELO MODELO
            var _listaModel = new List <GaleriaPerfilImagem>();

            for (int i = 0; i < _totaldeelementos; i++)
            {
                var _nomeimg = Request.Form["inputarq_" + i];
                var _des     = Request.Form["descricao_" + i].ToString();
                var _idimg   = Request.Form["idgaleriaimagem_" + i].ToString();
                var _urlimg  = Request.Form["urlgaleriaimagem_" + i].ToString();
                _des = string.IsNullOrEmpty(_des) ? "" : _des;

                if (!string.IsNullOrEmpty(_idimg))
                {
                    var _imagem = new GaleriaPerfilImagem()
                    {
                        Id                   = Convert.ToInt32(_idimg),
                        Descricao            = _des,
                        GaleriaPerfilAlbumId = GaleriaPerfilAlbum.Id,
                        Url                  = _urlimg
                    };

                    _listaModel.Add(_imagem);
                }
            }

            // RODO A LISTA CARREGADA E COMPARO COM A LISTA ENVIADA DO MODELO
            // VERIFICO SE FORAM EXCLUÍDAS IMAGENS DO ÁLBUM
            foreach (var _imagem in _Listaimagensalbum.OrderBy(x => x.Id))
            {
                var _imagemExiste = _listaModel.Where(x => x.Id == _imagem.Id).FirstOrDefault();

                // NÃO ACHEI NA LISTA ENVIADA
                if (_imagemExiste == null)
                {
                    // APAGO DO BANCO E REMOVO O BLOB DA NUVEM
                    var _exc_appgaleria_imagem =
                        _context.GaleriaPerfilImagem
                        .Where(x => x.Id == _imagem.Id).FirstOrDefault();

                    _context.GaleriaPerfilImagem.Remove(_exc_appgaleria_imagem);
                    await _context.SaveChangesAsync();

                    // PEGA NOME DO ARQUIVO
                    string _nomedoarq = "";
                    Uri    uri        = new Uri(_imagem.Url);
                    _nomedoarq = System.IO.Path.GetFileName(uri.LocalPath);

                    var _config = _context.AppPerfil
                                  .Include(x => x.AppConfiguracoes)
                                  .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                                  .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                                  .FirstOrDefault();

                    await VerificadoresRetornos
                    .ApagarBlob(
                        _nomedoarq,
                        _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName,
                        _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey,
                        _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz,
                        _config.AppConfiguracoes.AppConfiguracoes_Azure.UsarSimuladorLocal,
                        _config.AppConfiguracoes.AppConfiguracoes_Azure.EnderecoArmazLocal);
                }
                // ALTERO A DESCRICAO DA IMAGEM
                else
                {
                    var _ImagemEditada =
                        _context.GaleriaPerfilImagem
                        .Where(x => x.Id == _imagemExiste.Id).FirstOrDefault();

                    _ImagemEditada.Descricao = _imagemExiste.Descricao;

                    _context.Attach(_ImagemEditada).State = EntityState.Modified;
                    await _context.SaveChangesAsync();
                }
            }

            // NOVAS IMAGENS ADICIONADAS AO ALBUM
            if (Request.Form.Files.Count > 0)
            {
                for (int i = 0; i < _totaldeelementos; i++)
                {
                    var _nomeimg = Request.Form["inputarq_" + i];
                    var _des     = Request.Form["descricao_" + i].ToString();
                    _des = string.IsNullOrEmpty(_des) ? "" : _des;

                    var _buscafilearray =
                        Request.Form.Files
                        .Where(x => x.FileName == _nomeimg).FirstOrDefault();

                    if (_buscafilearray != null)
                    {
                        _listaimagens.Add(new ImagensEnvio()
                        {
                            GaleriaPerfilAlbumId = GaleriaPerfilAlbum.Id,
                            Url       = _buscafilearray.FileName.ToString(),
                            Descricao = _des,
                            Arquivo   = _buscafilearray
                        });
                    }
                }

                var _config = _context.AppPerfil
                              .Include(x => x.AppConfiguracoes)
                              .Include(x => x.AppConfiguracoes.AppConfiguracoes_Aplicativo)
                              .Include(y => y.AppConfiguracoes.AppConfiguracoes_Azure)
                              .FirstOrDefault();

                foreach (var item in _listaimagens)
                {
                    var _imagemLogotipo =
                        await VerificadoresRetornos
                        .EnviarImagemAzure(item.Arquivo, 512000, 0, 0,
                                           _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountName,
                                           _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_AccountKey,
                                           _config.AppConfiguracoes.AppConfiguracoes_Azure._azureblob_ContainerRaiz,
                                           _config.AppConfiguracoes.AppConfiguracoes_Azure.UsarSimuladorLocal,
                                           _config.AppConfiguracoes.AppConfiguracoes_Azure.EnderecoArmazLocal);

                    Uri  uriResult;
                    bool result = Uri.TryCreate(_imagemLogotipo, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
                    if (result)
                    {
                        item.Url = _imagemLogotipo;
                    }
                    else
                    {
                        item.Url = "";
                    }
                }

                var _listarange = new List <Models.GaleriaPerfilImagem>();
                foreach (var imagem in _listaimagens)
                {
                    if (!string.IsNullOrEmpty(imagem.Url))
                    {
                        _listarange.Add(new Models.GaleriaPerfilImagem()
                        {
                            GaleriaPerfilAlbumId = imagem.GaleriaPerfilAlbumId,
                            Descricao            = imagem.Descricao,
                            Url = imagem.Url
                        });
                    }
                }

                if (_listarange.Count > 0)
                {
                    await _context.GaleriaPerfilImagem.AddRangeAsync(_listarange);

                    await _context.SaveChangesAsync();
                }
            }

            return(RedirectToPage("./Index"));
        }