public async Task UpdateLocalAuthIdentity(Auth0Identity user) { var db = Engine.Services.Resolve <HoodDbContext>(); db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Modified; await db.SaveChangesAsync(); }
public async Task <Auth0Identity> CreateLocalAuthIdentity(string fullAuthUserId, ApplicationUser user, string picture) { var authProviderName = fullAuthUserId.Split('|')[0]; var authUserId = fullAuthUserId.Split('|')[1]; User newAuthUser = null; try { newAuthUser = await GetUserById(fullAuthUserId); } catch (Auth0.Core.Exceptions.ErrorApiException) { } var primaryIdentity = user.GetPrimaryIdentity(); if (newAuthUser == null && primaryIdentity != null) { newAuthUser = await GetUserById(primaryIdentity.Id); } if (newAuthUser == null) { throw new Exception("Could not find the user on the remote service."); } var identity = newAuthUser.Identities.SingleOrDefault(i => i.UserId == authUserId); if (identity == null) { throw new Exception("Could not find the identity on the remote user profile."); } var newIdentity = new Auth0Identity(identity); if (primaryIdentity == null) { newIdentity.IsPrimary = true; } newIdentity.Id = fullAuthUserId; newIdentity.LocalUserId = user.Id; newIdentity.Picture = picture; var db = Engine.Services.Resolve <HoodDbContext>(); db.Add(newIdentity); await db.SaveChangesAsync(); return(newIdentity); }