コード例 #1
0
        public int LoginUser(User user)
        {
            if (!RegisteredUsers.Exists(x => x.UserName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase)))
            {
                return((int)LoginEnum.WrongUsernameOrPassword);
            }

            var offlineId      = (int)UserStateEnum.Offline;
            var registeredUser = RegisteredUsers.FirstOrDefault(x => x.StateId != offlineId && x.UserName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase));

            if (registeredUser != null)
            {
                return((int)LoginEnum.AlreadyLoggedIn);
            }

            using (ChatAppDBEntities context = new ChatAppDBEntities())
            {
                var credentials = context.GetUserCredentials(user.UserName).ToList().FirstOrDefault();
                if (credentials != null)
                {
                    if (!(credentials.UserName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase) && credentials.Password.Equals(user.Password)))
                    {
                        return((int)LoginEnum.WrongUsernameOrPassword);
                    }
                }
                else
                {
                    return((int)LoginEnum.WrongUsernameOrPassword);
                }
            }

            var authUser = RegisteredUsers.FirstOrDefault(x => x.UserName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase));

            if (authUser != null)
            {
                authUser.StateId = (int)UserStateEnum.Online;
                user.FirstName   = authUser.FirstName;
                user.LastName    = authUser.LastName;
                userChangedState(authUser.UserName, authUser.StateId);
                _userCallbacks.Add(user, OperationContext.Current.GetCallbackChannel <IChatServiceCallback>());
            }
            else
            {
                return((int)LoginEnum.WrongUsernameOrPassword);
            }
            return((int)LoginEnum.Successful);
        }
コード例 #2
0
 public UserRepository()
 {
     _Context = new ChatAppDBEntities();
 }
コード例 #3
0
 public AppService()
 {
     _Context = new ChatAppDBEntities();
 }