async public Task <List <Chat> > GetChannelChats(string channelId, DateTime since) { if (string.IsNullOrEmpty(channelId)) { return(null); } channelId = channelId.ToLower(); using (uChatDataContext db = new uChatDataContext()) { //string g = "9bb5d62f-2563-4d88-ba43-46fa09b04a1e"; //var user = await db.Users.FirstOrDefaultAsync(x => x.UserId == g); var channel = await db.Channels.FindAsync(channelId); var chats = (from c in db.Chats where c.Channel == channel && c.CreatedOn >= since.ToUniversalTime() orderby c.CreatedOn select c) .Include("User") .Include("Channel"); return(await chats.ToListAsync()); } }
async public Task <List <Channel> > GetChannels() { using (uChatDataContext db = new uChatDataContext()) { return(await db.Channels.ToListAsync()); } }
async public Task <Channel> GetChannel(string channelId) { using (uChatDataContext db = new uChatDataContext()) { channelId = channelId.ToLower(); return(await db.Channels.FindAsync(channelId)); } }
async public Task <Chat> GetChat(string id) { using (uChatDataContext db = new uChatDataContext()) { var chat = await db.Chats.FindAsync(id); return(chat); } }
async public Task <Channel> AddChannel(string name) { using (uChatDataContext db = new uChatDataContext()) { Channel ch = new Channel(name); db.Channels.Add(ch); await db.SaveChangesAsync(); return(ch); } }
async public Task <Chat> AddChat(Chat chat) { using (uChatDataContext db = new uChatDataContext()) { chat.ChatId = Guid.NewGuid().ToString(); chat.CreatedOn = chat.CreatedOn.ToUniversalTime(); db.Chats.Add(chat); await db.SaveChangesAsync(); return(chat); } }
async public Task <List <Mail> > GetMail(string userId, DateTime since) { using (uChatDataContext db = new uChatDataContext()) { userId = userId.ToLower(); var mb = await db.Mailboxes.FindAsync(userId); var mails = db.Mails.Where(x => x.ToUserId == userId && x.CreatedOn >= since); return(await mails.ToListAsync()); } }
async public Task <Mail> AddMail(Mail mail) { using (uChatDataContext db = new uChatDataContext()) { var mb = await db.Mailboxes.FindAsync(mail.FromUserId); mail.MailId = Guid.NewGuid().ToString().ToLower(); mail.CreatedOn = DateTime.UtcNow; mail.Mailbox = mb; mail.MailboxId = mb.MailboxId; db.Mails.Add(mail); return(mail); } }
async public Task <User> Authenticate(string userId, string password, string playFabId) { User user = null; using (var db = new uChatDataContext()) { if (!string.IsNullOrEmpty(playFabId)) { user = await db.Users.FirstOrDefaultAsync(x => x.PlayFabId == playFabId); } else { user = await db.Users.FirstOrDefaultAsync(x => x.UserId == userId); } return(user); } }
async public Task <User> CreateOrUpdateUser(string userId, string password, string name, string playFabId) { if (password.Length > 20) { password = password.Left(20); } Domain.User user = null; using (var db = new uChatDataContext()) { if (!string.IsNullOrEmpty(userId)) { user = await db.Users.FirstOrDefaultAsync(x => x.UserId == userId); } if (user == null) { user = new Domain.User(); user.CreatedOn = DateTime.UtcNow; user.UserId = userId; user.Name = name; user.UserId = Guid.NewGuid().ToString(); PasswordHash hash = new PasswordHash(password); byte[] hashBytes = hash.ToArray(); user.Password = hashBytes; user.PlayFabId = playFabId; db.Users.Add(user); await db.SaveChangesAsync(); } else { byte[] hashBytes = user.Password; //read from store. PasswordHash hash = new PasswordHash(hashBytes); if (!hash.Verify(password)) { return(null); } } return(user); } }