public async Task AddUserToChannelAsync(string userId, string channelId)
        {
            var channel = this.context.Channels
                          .FirstOrDefault(x => x.Id == channelId && x.IsDeleted == false);

            if (channel == null)
            {
                return;
            }

            if (this.context.UserChannels
                .Any(x => x.ChannelId == channelId && x.UserId == userId))
            {
                return;
            }

            var userChannel = new UserChannels()
            {
                UserId    = userId,
                ChannelId = channelId,
            };

            if (this.IsUserOwner(channel.Name, userId))
            {
                userChannel.Role = ChannelUserRole.Administrator;
            }
            else
            {
                userChannel.Role = ChannelUserRole.User;
            }

            await this.context.UserChannels.AddAsync(userChannel);

            await this.context.SaveChangesAsync();
        }
Esempio n. 2
0
 private void AddUserChannels(SocketGuildUser socketGuildUser)
 {
     if (socketGuildUser.Guild.Id == Config.GuildId)
     {
         if (UserChannels.Keys.Any(x => x == socketGuildUser.Id))
         {
             var channels        = UserChannels[socketGuildUser.Id].ToList();
             var removedChannels = socketGuildUser.GetRemovedChannels(channels).ToList();
             var newChannels     = socketGuildUser.GetNewChannels(channels).ToList();
             UserChannels[socketGuildUser.Id].AddRange(newChannels);
             UserChannels[socketGuildUser.Id].RemoveAll(x => removedChannels.Any(y => y.Id == x.Id));
         }
         else
         {
             UserChannels.Add(socketGuildUser.Id, socketGuildUser.GetChannels().ToList());
         }
     }
 }
Esempio n. 3
0
        public async Task <bool> SaveUserChannelsAsync(UserChannels channels)
        {
            // context
            DynamoDBContext context = new DynamoDBContext(_dynamoDBClient);

            // save
            await context.SaveAsync(new UserChannels
            {
                UserId = channels.UserId,
                Queues = channels.Queues,
                Topics = channels.Topics
            });

            // dispose context
            context.Dispose();

            return(true);
        }
Esempio n. 4
0
        public IActionResult Follow(int id)
        {
            if (!this.IsAuthenticated())
            {
                return(this.View());
            }

            var user = this.db.Users.FirstOrDefault(x => x.Username == this.Identity.Username);

            var userChannel = new UserChannels
            {
                User      = user,
                ChannelId = id
            };

            db.Add(userChannel);
            db.SaveChanges();

            return(this.RedirectToAction("/"));
        }
Esempio n. 5
0
        public async Task <bool> DeleteChannelsFromUserIdAsync(string userId)
        {
            // context
            DynamoDBContext context = new DynamoDBContext(_dynamoDBClient);

            // creating an UserChannels object just for its UserId
            // DynamoDb will delete the record matching has this UserId
            UserChannels userChannels = new UserChannels
            {
                UserId = userId
            };

            // delete
            await context.DeleteAsync(userChannels);

            // dispose context
            context.Dispose();

            return(true);
        }
Esempio n. 6
0
        private static void SeedData()
        {
            var db = new MishMashDbContext();

            var user1 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.User
            };

            var user2 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.User
            };

            var user3 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.Admin
            };

            db.Add(user1);
            db.Add(user2);
            db.Add(user3);
            db.SaveChanges();

            var channel1 = new Channel
            {
                Name        = "Markiplier",
                Description = "Gaming stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "games"
                    }, new Tag {
                        Content = "fun"
                    }, new Tag {
                        Content = "shooter"
                    }
                },
                Type = Type.Game
            };

            var channel2 = new Channel
            {
                Name        = "NiggaHigga",
                Description = "Comedy stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "laugh"
                    }, new Tag {
                        Content = "fun"
                    }, new Tag {
                        Content = "jokes"
                    }
                },
                Type = Type.Other
            };

            var channel3 = new Channel
            {
                Name        = "SoftUni",
                Description = "IT stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "programming"
                    }, new Tag {
                        Content = "IT"
                    }, new Tag {
                        Content = ".net"
                    }
                },
                Type = Type.Lessons
            };

            var channel4 = new Channel
            {
                Name        = "Trainings",
                Description = "Sports stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "exercises"
                    }, new Tag {
                        Content = "jogging"
                    }, new Tag {
                        Content = "sports"
                    }
                },
                Type = Type.Motivation
            };

            db.Add(channel1);
            db.Add(channel2);
            db.Add(channel3);
            db.Add(channel4);
            db.SaveChanges();

            var userchannels1 = new UserChannels()
            {
                Channel = channel1,
                User    = user1
            };

            var userchannels2 = new UserChannels()
            {
                Channel = channel2,
                User    = user2
            };

            var userchannels3 = new UserChannels()
            {
                Channel = channel3,
                User    = user2
            };

            var userchannels4 = new UserChannels()
            {
                Channel = channel1,
                User    = user3
            };

            var userchannels5 = new UserChannels()
            {
                Channel = channel2,
                User    = user3
            };
            var userchannels6 = new UserChannels()
            {
                Channel = channel4,
                User    = user3
            };

            db.Add(userchannels1);
            db.Add(userchannels2);
            db.Add(userchannels3);
            db.Add(userchannels4);
            db.Add(userchannels5);
            db.SaveChanges();
        }
        public async Task <ActionResult <bool> > UpdateUserChannels([FromBody] UserChannels channels)
        {
            await _dynamoDBService.DeleteChannelsFromUserIdAsync(channels.UserId);

            return(await _dynamoDBService.SaveUserChannelsAsync(channels));
        }