예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }