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(); }
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()); } } }
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); }
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("/")); }
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); }
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)); }