public async Task <IActionResult> registra(RegistrazioneValidator data) { if (ModelState.IsValid) { IdentityResult result = null; if (data.TipoProfilo == TipoProfilo.AZIENDA) { ProfiloAzienda azienda = new ProfiloAzienda(); azienda.Id = Guid.NewGuid().ToString(); azienda.UserName = azienda.Id; azienda.Email = data.EmailAzienda; azienda.NomeAzienda = data.NomeAzienda; azienda.PartitaIVa = data.PartitaIva; result = await _userManager.CreateAsync(azienda, data.PasswordAzienda); if (result.Succeeded) { var roleResult = await _userManager.AddToRoleAsync(azienda, "Azienda"); _logger.LogInformation("Registrazione esito:" + roleResult.Succeeded); return(RedirectToAction("Index", "Account")); } else { _logger.LogError("Registrazione fallita: " + result.Errors); ViewData["Error"] = result.Errors.ToString(); return(View("Views/Shared/Error.cshtml")); } } else if (data.TipoProfilo == TipoProfilo.PRIVATO) { ProfiloPrivato privato = new ProfiloPrivato(); privato.Id = Guid.NewGuid().ToString(); privato.UserName = privato.Id; privato.Email = data.EmailPrivato; privato.Nome = data.Nome; privato.Cognome = data.Cognome; privato.DataNascita = DateTime.Parse(data.DataNascita); privato.Recapiti.Tel1 = data.TelefonoPrivato; result = await _userManager.CreateAsync(privato, data.PasswordPrivato); if (result.Succeeded) { var roleResult = await _userManager.AddToRoleAsync(privato, "Privato"); _logger.LogInformation("Registrazione esito:" + roleResult.Succeeded); return(RedirectToAction("Index", "CercaAnnunci")); } else { _logger.LogError("Registrazione fallita: " + result.Errors); ViewData["Error"] = result.Errors.ToString(); return(View("Views/Shared/Error.cshtml")); } } else { _logger.LogError(data.TipoProfilo + " valori passati"); result = IdentityResult.Failed(); } } return(View("Views/Account/Registrazione.cshtml")); }
public async Task <IActionResult> Registrazione(RegistrazioneValidator data) { return(await _registrazione.registra(data)); }