예제 #1
0
        public int Connect(string name)
        {
            ServerUser user = new ServerUser()
            {
                ID               = nextId++,
                Name             = name,
                operationContext = OperationContext.Current
            };

            SendMessage($"{user.Name} подключился к чату!", 0);
            users.Add(user);
            return(user.ID);
        }
예제 #2
0
        public int Connect(string name)
        {
            ServerUser user = new ServerUser()
            {
                Id               = nextId,
                Name             = name,
                operationContext = OperationContext.Current
            };

            nextId++;
            SendMsg(" " + user.Name + " подключился к чату", 0);
            users.Add(user);
            return(user.Id);
        }
예제 #3
0
        public int Connect(string name)
        {
            ServerUser user = new ServerUser()
            {
                ID               = nextID,
                Name             = name,
                operationContext = OperationContext.Current
            };

            nextID++;

            SendMessage($": <{user.Name}> connected to chat.", 0);
            users.Add(user);

            return(user.ID);
        }
예제 #4
0
        public int Connect(string name)
        {
            ServerUser user = new ServerUser()
            {
                ID               = nextId,
                UserName         = name,
                operationContext = OperationContext.Current,
            };

            nextId++;

            SendMessage(": " + user.UserName + " подключился!", 0);
            users.Add(user);

            return(user.ID);
        }
예제 #5
0
        public ClientUser LogIn(string userName, string password, bool registrationRequired)
        {
            ClientUser user;

            try
            {
                user = registrationRequired
                    ? RegisterNewUser(userName, password)
                    : ValidateUserLogin(userName, password);
            }
            catch (UserAlreadyExistException e)
            {
                throw new FaultException(e.Message);
            }
            catch (UserNotRegisteredException e)
            {
                throw new FaultException(e.Message);
            }
            catch (WrongUserPasswordException e)
            {
                throw new FaultException(e.Message);
            }


            var userToConnect = new ServerUser()
            {
                Id               = user.Id,
                UserName         = user.UserName,
                OperationContext = OperationContext.Current
            };

            if (_onlineUsersList.FirstOrDefault(u => u.Id == userToConnect.Id) == null)
            {
                _onlineUsersList.Add(userToConnect);
                userToConnect.OperationContext.Channel.Faulted += (sender, e) => LogOff(userToConnect.Id);
                userToConnect.OperationContext.Channel.Closed  += (sender, e) => LogOff(userToConnect.Id);
            }

            Console.WriteLine($"{DateTime.Now}: User {userName} online.");
            Console.WriteLine($"{DateTime.Now}: Users online count: {_onlineUsersList.Count}.");

            return(user);
        }