public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { IdentityUser user; user = new IdentityUser() { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var cliente = await clienteRepositorio.BuscarClientePorEmail(Input.Email); if (cliente != null) { cliente.RegistrarCliente(Input.Nome, Input.Codigo); await cobrancaRepositorio.CriarCliente(cliente); await clienteRepositorio.Atualizar(cliente); } else { cliente = new Cliente(Input.Email); cliente.RegistrarCliente(Input.Nome, Input.Codigo); await cobrancaRepositorio.CriarCliente(cliente); await clienteRepositorio.Adicionar(cliente); } await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(Page()); }
public async Task <IActionResult> Realizar(FormularioPrincipalViewModel model) { if (ModelState.IsValid) { var cliente = await clienteRepositorio.BuscarClientePorEmail(model.Email); if (cliente == null) { cliente = new Cliente(model.Email); } var controleDeValor = await controleDeValorRepositorio.BuscarControleDeValor(); var solicitacao = new Solicitacao(model.TipoDeSolicitacao, Models.Configuration.Data.ConverterData(model.PrevisaoDeEntrega), model.Destino, model.Origem, model.ApostilaDeHaia); if (!string.IsNullOrWhiteSpace(model.Documentos)) { var documentos = model.Documentos.Split(','); foreach (var documento in documentos) { var id = Guid.Parse(documento); var documentoEmBanco = await documentoRepositorio.BuscarDocumento(id); solicitacao.AdicionarDocumento(documentoEmBanco); solicitacao.CalcularSolicitacao(controleDeValor); } } else { solicitacao.RealizarSemDocumento(model.QuantidadeDeCaracteres, controleDeValor); } if (solicitacao.PodeSerSalva()) { solicitacao.DefinirCliente(cliente); await solicitacaoRepositorio.Adicionar(solicitacao); } return(RedirectToAction("Finalizar", new { id = solicitacao.Id })); } CarregarViewBags(); return(View(model)); }