Ejemplo n.º 1
0
        public async Task <IActionResult> NovoCliente(ClienteVM cliente)
        {
            try
            {
                string       empresa_Global       = Request.Cookies["empresa_global"];
                IdentityUser usuarioIdentity      = CarregarIdentityUser(cliente);
                var          resultCreateIdentity = await _userManager.CreateAsync(usuarioIdentity, cliente.Cnpj.ToString());

                if (resultCreateIdentity.Succeeded)
                {
                    var userGetId = await _userManager.FindByNameAsync(cliente.Cnpj.ToString());

                    var enderecoCriado = _clienteService.AddEnderecoCliente(cliente);
                    var usuarioCriado  = _clienteService.AddUsuarioCliente(userGetId, cliente, enderecoCriado.Id_Endereco, empresa_Global);

                    cliente.Id_Usuario = usuarioCriado.Id_Usuario;
                    var clienteEntidade = _clienteService.AddCliente(cliente);
                    _clienteSerieService.CadastroClienteSerie(clienteEntidade.Id_Cliente, cliente.Series);

                    var resultRole = await _userManager.AddClaimsAsync(usuarioIdentity, new Claim[] {
                        new Claim(EnumTypeClaims.Perfil.ToString(), EnumPerfil.Cliente.ToString()),
                        new Claim(EnumTypeClaims.Nome.ToString(), cliente.Nome),
                        new Claim(EnumTypeClaims.Id_Usuario.ToString(), usuarioCriado.Id_Usuario.ToString())
                    });

                    if (resultRole.Succeeded)
                    {
                        return(Redirect("Index"));
                    }

                    return(View(cliente));
                }

                return(View(cliente));
            }
            catch (Exception)
            {
                throw;
            }
        }