public RegistroView()
        {
            InitializeComponent();

            BindingContext = new RegistroViewModel();
        }
Exemple #2
0
        public async Task <IActionResult> Registro(RegistroViewModel model, IFormFile foto)
        {
            if (ModelState.IsValid)
            {
                if (foto != null)
                {
                    //Variavel para o diretorio da pasta Imagens
                    string diretorioPasta = Path.Combine(_webHostEnvironment.WebRootPath, "Imagens");
                    //Variavel para o nome da foto
                    string nomeFoto = Guid.NewGuid().ToString() + foto.FileName;

                    //Salvar foto no diretorio
                    using (FileStream fileStream = new FileStream(Path.Combine(diretorioPasta, nomeFoto), FileMode.Create))
                    {
                        await foto.CopyToAsync(fileStream);

                        model.Foto = "~/Imagens/" + nomeFoto;
                    }
                }

                Usuario        usuario = new Usuario();
                IdentityResult usuarioCriado;

                //Se o repositorio não possui registro o usario sera criado como administrador
                if (_usuarioRepositorio.VerificarSeExisteRegistro() == 0)
                {
                    usuario.UserName       = model.Nome;
                    usuario.CPF            = model.CPF;
                    usuario.Email          = model.Email;
                    usuario.PhoneNumber    = model.Telefone;
                    usuario.Foto           = model.Foto;
                    usuario.PrimeiroAcesso = false;
                    usuario.Status         = StatusConta.Aprovado;

                    usuarioCriado = await _usuarioRepositorio.CriarUsuario(usuario, model.Senha);

                    if (usuarioCriado.Succeeded)
                    {
                        await _usuarioRepositorio.IncluirUsuarioEmFuncao(usuario, "Administrador");

                        await _usuarioRepositorio.LogarUsuario(usuario, false);

                        return(RedirectToAction("Index", "Usuario"));
                    }
                }
                usuario.UserName       = model.Nome;
                usuario.CPF            = model.CPF;
                usuario.Email          = model.Email;
                usuario.PhoneNumber    = model.Telefone;
                usuario.Foto           = model.Foto;
                usuario.PrimeiroAcesso = true;
                usuario.Status         = StatusConta.Analisando;

                usuarioCriado = await _usuarioRepositorio.CriarUsuario(usuario, model.Senha);

                if (usuarioCriado.Succeeded)
                {
                    return(View("Analise", usuario.UserName));
                }
                else
                {
                    foreach (IdentityError erro in usuarioCriado.Errors)
                    {
                        ModelState.AddModelError("", erro.Description);
                    }
                    return(View(model));
                }
            }
            return(View(model));
        }