Example #1
0
 public static RavenIdentityBuilder EnsureIdentityRols <TRole>(this RavenIdentityBuilder identityBuilder, params TRole[] rols)
     where TRole : IdentityRole
 {
     using (var identityDocumentStore = identityBuilder.Services.BuildServiceProvider().GetService <IDocumentStore>())
     {
         foreach (var role in rols)
         {
             TRole dbrole = null;
             try
             {
                 dbrole = identityDocumentStore.IdentitySession(session => session.Query <TRole>().FirstOrDefault(r => r.NormalizedName == role.NormalizedName));
             }
             catch (InvalidCastException ie)
             {
                 if (!ie.Message.Contains("seq"))
                 {
                     throw;
                 }
             }
             if (dbrole == null)
             {
                 identityDocumentStore.IdentitySession(session => session.Store(role));
             }
         }
     }
     return(identityBuilder);
 }
Example #2
0
 public static RavenIdentityBuilder EnsureUserRols <TUser, TRole>(this RavenIdentityBuilder identityBuilder, TUser user, params TRole[] rols)
     where TRole : IdentityRole
     where TUser : IdentityUser
 {
     identityBuilder.EnsureIdentityRols(rols);
     identityBuilder.EnsureIdentityUser(ref user);
     using (var userManager = identityBuilder.Services.BuildServiceProvider().GetService <UserManager <TUser> >())
     {
         Task.WaitAll(userManager.AddToRolesAsync(user, rols.Select(r => r.Name)));
     }
     return(identityBuilder);
 }
Example #3
0
        public static RavenIdentityBuilder EnsureIdentityUser <TUser>(this RavenIdentityBuilder identityBuilder, ref TUser user)
            where TUser : IdentityUser
        {
            var NormalizedUserName = user.NormalizedUserName;

            using (var identityDocumentStore = identityBuilder.Services.BuildServiceProvider().GetService <IDocumentStore>())
            {
                {
                    TUser dbuser = null;
                    try
                    {
                        dbuser = identityDocumentStore.IdentitySession(session => session.Query <TUser>().FirstOrDefault(u => u.NormalizedUserName == NormalizedUserName));
                    }
                    catch (InvalidCastException ie)
                    {
                        if (!ie.Message.Contains("seq"))
                        {
                            throw;
                        }
                    }
                    if (dbuser == null)
                    {
                        using (var session = identityDocumentStore.OpenSession())
                        {
                            session.Store(user);
                            session.SaveChanges();
                        }
                    }
                    else
                    {
                        user = dbuser;
                    }
                }
            }
            return(identityBuilder);
        }