private async Task <IActionResult> Enregistre(string type, VueBase vue) { RésultatEnregistrement résultat = null; try { résultat = await CréeUtilisateur(type, vue); if (résultat.ActionResult != null) { return(résultat.ActionResult); } résultat.Role = await _roleService.CréeRole(résultat.Utilisateur); CréeEntité(résultat, type, vue); await ValideEntité(résultat, type); if (!ModelState.IsValid) { if (résultat.ACréé) { await _service.Supprime(résultat.Utilisateur); } return(BadRequest(ModelState)); } _roleService.AjouteSansSauver(résultat.Role); AjouteEntitéSansSauver(résultat, type); RetourDeService retour = await _service.SaveChangesAsync(); if (retour.Type != TypeRetourDeService.Ok && résultat.ACréé) { await _service.Supprime(résultat.Utilisateur); return(SaveChangesActionResult(retour)); } } catch (Exception ex) { if (résultat != null && résultat.ACréé) { await _service.Supprime(résultat.Utilisateur); } throw ex; } return(await Connecte(résultat.applicationUser, true)); }