コード例 #1
0
        public void UpdateUser(User user)
        {
            using (var context = new PhotographContext())
            {
                var dbUser = _entities.Include("Roles").FirstOrDefault(x => x.Id.Equals(user.Id));

                if (dbUser != null)
                {
                    if (user.Password != null && user.Password.Length > 0)
                    {
                        dbUser.Password = user.Password.Sha256();
                    }
                    dbUser.UserName   = user.UserName;
                    dbUser.ValidUntil = user.ValidUntil;
                    dbUser.FirstName  = user.FirstName;
                    dbUser.LastName   = user.LastName;

                    if (dbUser.Roles.FirstOrDefault(x => x.Id.Equals(user.Roles[0].Id)) == null)
                    {
                        dbUser.Roles.RemoveAll(x => true);
                        context.SaveChanges();

                        if (context.Entry(user.Roles[0]).State == EntityState.Detached)
                        {
                            context.Roles.Attach(user.Roles[0]);
                        }

                        dbUser.Roles.Add(user.Roles[0]);
                    }
                }
                context.SaveChanges();
            }
        }
コード例 #2
0
 public int Count(Guid id)
 {
     using (var db = new PhotographContext())
     {
         return(db.Photos.Count(x => x.AlbumId == id));
     }
 }
コード例 #3
0
 public async Task AddScope(Scope scope)
 {
     using (var context = new PhotographContext())
     {
         context.Scopes.Add(scope);
         await context.SaveChangesAsync();
     }
 }
コード例 #4
0
 public async Task AddClient(Client client)
 {
     using (var context = new PhotographContext())
     {
         client.ClientSecrets = client.ClientSecrets.Sha256();
         context.Clients.Add(client);
         await context.SaveChangesAsync();
     }
 }
コード例 #5
0
        public async Task DeleteScope(int id)
        {
            using (var context = new PhotographContext())
            {
                var scope = await context.Scopes.FirstOrDefaultAsync(x => x.Id.Equals(id));

                context.Scopes.Remove(scope);
                await context.SaveChangesAsync();
            }
        }
コード例 #6
0
        public async Task <IEnumerable <Scope> > GetAllScopes()
        {
            IEnumerable <Scope> scopes;

            using (var context = new PhotographContext())
            {
                scopes = await context.Scopes.ToListAsync();
            }
            return(scopes);
        }
コード例 #7
0
        public async Task <Scope> GetScopeById(int id)
        {
            Scope scope;

            using (var context = new PhotographContext())
            {
                scope = await context.Scopes.FirstOrDefaultAsync(x => x.Id.Equals(id));
            }
            return(scope);
        }
コード例 #8
0
        public async Task DeleteClient(int id)
        {
            using (var context = new PhotographContext())
            {
                var client = await context.Clients.FirstOrDefaultAsync(x => x.Id.Equals(id));

                context.Clients.Remove(client);
                await context.SaveChangesAsync();
            }
        }
コード例 #9
0
        public async Task <IEnumerable <Client> > GetAllClients()
        {
            IEnumerable <Client> clients;

            using (var context = new PhotographContext())
            {
                clients = await context.Clients.Include("AllowedScopes").ToListAsync();
            }
            return(clients);
        }
コード例 #10
0
        public async Task <Client> GetClientById(int id)
        {
            Client client;

            using (var context = new PhotographContext())
            {
                client = await context.Clients.Include("AllowedScopes").FirstOrDefaultAsync(x => x.Id.Equals(id));
            }
            return(client);
        }
コード例 #11
0
        public override void Update(Photo entity)
        {
            using (var context = new PhotographContext())
            {
                var dbPhoto = context.Photos.Include(x => x.SelectedByUsers).SingleOrDefault(x => x.Id.Equals(entity.Id));

                foreach (var user in entity.SelectedByUsers)
                {
                    dbPhoto.SelectedByUsers.Add(context.Users.SingleOrDefault(u => u.Id.Equals(user.Id)));
                }

                context.SaveChanges();
            }
        }
コード例 #12
0
        public async Task UpdateScope(Scope scope)
        {
            using (var context = new PhotographContext())
            {
                var dbScope = await context.Scopes.FirstOrDefaultAsync(x => x.Id.Equals(scope.Id));

                if (dbScope != null)
                {
                    dbScope.IncludeAllClaimsForUser = scope.IncludeAllClaimsForUser;
                    dbScope.Name = scope.Name;
                }

                await context.SaveChangesAsync();
            }
        }
コード例 #13
0
        public async Task UpdateClient(Client client)
        {
            using (var context = new PhotographContext())
            {
                var dbClient = await context.Clients.FirstOrDefaultAsync(x => x.Id.Equals(client.Id));

                if (dbClient != null)
                {
                    dbClient.Flow                = client.Flow;
                    dbClient.Enabled             = client.Enabled;
                    dbClient.ClientSecrets       = client.ClientSecrets.Sha256();
                    dbClient.ClientName          = client.ClientName;
                    dbClient.AccessTokenLifetime = client.AccessTokenLifetime;
                    dbClient.ClientId            = client.ClientId;
                    dbClient.AllowedScopes.AddRange(client.AllowedScopes);
                }

                context.SaveChanges();
            }
        }
コード例 #14
0
        private static void BuildIds(PhotographContext context)
        {
            var photographScope = new Scope()
            {
                Id   = Guid.NewGuid(),
                Name = "Photograph",
                IncludeAllClaimsForUser = true
            };

            context.Scopes.Add(photographScope);
            context.SaveChanges();

            var client = new Client()
            {
                Id                  = Guid.NewGuid(),
                ClientName          = "Photograph",
                ClientId            = "PhotographId",
                Flow                = Flows.ResourceOwner,
                Enabled             = true,
                ClientSecrets       = "jm8B+rcdwALtH8VN8XYAvDQWBQbWGq78AYIYJgP81IQ=",
                AccessTokenLifetime = 86400,
                AllowedScopes       = new List <Scope>()
                {
                    photographScope
                }
            };

            context.Clients.Add(client);
            context.SaveChanges();

            var adminRole = new Role()
            {
                Id   = Guid.NewGuid(),
                Name = "Admin"
            };
            var subscriberRole = new Role()
            {
                Id   = Guid.NewGuid(),
                Name = "Subscriber"
            };
            var userRole = new Role()
            {
                Id   = Guid.NewGuid(),
                Name = "User"
            };

            context.Roles.Add(adminRole);
            context.Roles.Add(subscriberRole);
            context.Roles.Add(userRole);
            context.SaveChanges();

            var adminRoleDb = context.Roles.FirstOrDefault(x => x.Name.Equals("Admin"));

            var adminUserTomislav = new User()
            {
                Id        = Guid.NewGuid(),
                UserName  = "******",
                Password  = "******",
                Email     = "*****@*****.**",
                FirstName = "Admin",
                LastName  = "Admin",
                Roles     = new List <Role>()
                {
                    adminRole
                }
            };

            context.Users.Add(adminUserTomislav);
            context.SaveChanges();

            var subRoleDb = context.Roles.FirstOrDefault(x => x.Name.Equals("Subscriber"));

            var subUserTomislav = new User()
            {
                Id        = Guid.NewGuid(),
                UserName  = "******",
                Password  = "******",
                Email     = "*****@*****.**",
                FirstName = "Sub",
                LastName  = "Sub",
                Roles     = new List <Role>()
                {
                    subRoleDb
                }
            };

            context.Users.Add(subUserTomislav);
            context.SaveChanges();

            var userRoleDb = context.Roles.FirstOrDefault(x => x.Name.Equals("User"));

            for (var i = 0; i < 100; i++)
            {
                var id = Guid.NewGuid();

                var userTomislav = new User()
                {
                    Id        = id,
                    UserName  = id.ToString(),
                    Password  = "******",
                    Email     = $"{id}@mailinator.com",
                    FirstName = "Sub",
                    LastName  = "Sub",
                    Roles     = new List <Role>()
                    {
                        userRoleDb
                    }
                };
                context.Users.Add(userTomislav);
            }
            context.SaveChanges();


            //var user = context.Users.FirstOrDefault(x => x.UserName.Equals("Admin"));

            //var subs = new Subscriber
            //{
            //	UserId = user.Id,
            //	User = user
            //};

            //context.Subscribers.Add(subs);
            //context.SaveChanges();

            //var user1 = context.Users
            //	.Include(x => x.Subscriber)
            //	.Include(x => x.Roles)
            //	.FirstOrDefault(x => x.UserName.Equals("Admin"));
            //var sub = context.Subscribers.Include(x => x.User).FirstOrDefault(x => x.UserId.Equals(user1.Id));

            //context.Subscribers.Remove(sub);

            //context.SaveChanges();
        }
コード例 #15
0
 protected override void Seed(PhotographContext context)
 {
     //BuildIds(context);
 }