Esempio n. 1
0
        public void InitializeGLFDb(string name, bool isConnString)
        {
            if (!DbIsInitialized)
            {
                DbName = name;
                IsConnString = isConnString;
                using (GLFDbContext db = new GLFDbContext(DbName, IsConnString)) { };
            }

            DbIsInitialized = true;
        }
        private static void testGenericLoginFrameworkDbContext()
        {
            System.Console.WriteLine("Testing database creation");

            using (GLFDbContext db = new GLFDbContext("shit", false))
            {
                //db.Users.Add(new User { ID = "glfUser" });
                //db.FacebookResources.Add(new OAuth.Resources.FacebookResource { ID = "GlfFbUser", UserID = "glfUser" });
                //db.GoogleResources.Add(new OpenID.Resources.GoogleResource { ID = "GlfGUser", UserID = "glfUser" });
                //db.SaveChanges();
            }
        }
Esempio n. 3
0
        public async Task<User> GetUserFromOAuthToken(OAuthProviderEnum pro, string token)
        {
            OAuthProvider provider = GetOAuthProvider(pro);
            OAuthResource resource = await provider.GetResourceFromToken(token);

            User user = null;

            using(GLFDbContext db = new GLFDbContext(DbName, IsConnString))
            {

                if (pro == OAuthProviderEnum.FacebookProvider)
                {
                    user = db.Users.Where(u => u.FacebookResource.ID == resource.ID)
                                   .Include(u => u.FacebookResource)
                                   .Include(u => u.GoogleResource)
                                   .FirstOrDefault();
                }


                if (user != null)
                {
                    if(pro == OAuthProviderEnum.FacebookProvider)
                    {
                        db.Entry(user.FacebookResource).CurrentValues.SetValues(resource);
                    }
                }
                else
                {
                    Type type = typeof(User);
                    PropertyInfo property = type.GetProperty(resource.GetType().Name, BindingFlags.Public | BindingFlags.Instance);
                    user = new User ();
                    property.SetValue(user, resource, null);
                    db.Users.Add(user);
                }
                db.SaveChanges();
            }

            return user;
        }