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 <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); } }