public Task <Channel> FindByNameAsync(string name) { var foundChannel = _context .Channels .FirstOrDefault(c => c.Name == name); if (foundChannel == null) { return(Task.FromResult <Channel>(null)); } var result = new Channel() { Name = foundChannel.Name, Version = foundChannel.Version, Members = foundChannel.Users.Select(u => new UserId(u.UserId)).ToList(), Messages = foundChannel.Messages .Select(m => new ChannelMessage { From = new UserId(m.UserId), Text = m.Text, Timestamp = m.TimeStamp }).ToList() }; return(Task.FromResult(result)); }
public Task CreateAsync(Channel channel) { _context.Channels.Add(new Model.Channel { Name = channel.Name, Type = 0, Version = 0 }); _context.SaveChanges(); return(Task.FromResult(0)); }
public Task RemoveUserAsync(Channel channel, UserId user) { var foundChannel = _context .Channels .FirstOrDefault(c => c.Name == channel.Name); if (foundChannel != null) { var foundChannelUser = foundChannel .Users .FirstOrDefault(u => u.UserId == user.Id); foundChannel.Users.Remove(foundChannelUser); _context.SaveChanges(); } return(Task.FromResult(0)); }
public Task AddUserAsync(Channel channel, UserId user) { var foundChannel = _context .Channels .FirstOrDefault(c => c.Name == channel.Name); if (foundChannel != null) { foundChannel.Users.Add(new ChannelUser { ChannelId = foundChannel.Id, UserId = user.Id }); _context.SaveChanges(); } return(Task.FromResult(0)); }
public Task AddMessageAsync(Channel channel, ChannelMessage channelMessage) { var foundChannel = _context .Channels .FirstOrDefault(c => c.Name == channel.Name); if (foundChannel != null) { foundChannel.Version++; foundChannel.Messages.Add(new Model.ChannelMessage { ChannelId = foundChannel.Id, UserId = channelMessage.From.Id, Text = channelMessage.Text, TimeStamp = channelMessage.Timestamp, Version = foundChannel.Version }); _context.SaveChanges(); } return(Task.FromResult(0)); }