private void ProcessNewUsers(IEnumerable <User> users)
        {
            if (users == null)
            {
                return;
            }

            var usersArray = users as User[] ?? users.ToArray();

            if (!usersArray.Any())
            {
                return;
            }

            _lastUserId = usersArray.Last().Id;
            lock (UsersStorage)
            {
                foreach (var user in usersArray)
                {
                    if (!UsersStorage.ContainsKey(user.Id))
                    {
                        UsersStorage.Add(user.Id, user);
                    }
                }
            }
            NewUsersEvent?.Invoke(this, usersArray);
        }
예제 #2
0
 private void GenerateUsers()
 {
     UsersStorage.Add(new User {
         ID = 1, Login = "******", Password = "******"
     });
     UsersStorage.Add(new User {
         ID = 1, Login = "******", Password = "******"
     });
     UsersStorage.Add(new User {
         ID = 1, Login = "******", Password = "******"
     });
 }
 public void SetUser(User user)
 {
     lock (UsersStorage)
     {
         if (UsersStorage.ContainsKey(user.Id))
         {
             UsersStorage[user.Id] = user;
             if (_newUserInfoHandlers.ContainsKey(user.Id))
             {
                 _newUserInfoHandlers[user.Id]?.Invoke(this, user);
             }
         }
         else
         {
             UsersStorage.Add(user.Id, user);
             NewUsersEvent?.Invoke(this, new[] { user });
         }
     }
 }
예제 #4
0
 public Result <ViewModel.Doctor> Enter(string login, string password)
 {
     try
     {
         var doctorDataBase = new DoctorDataBase(ConnectionStringPattern, Login, Password);
         var doctor         = doctorDataBase.GetUser(login);
         var accessToken    = Guid.NewGuid().ToString();
         var user           = new User()
         {
             Id = doctor.Id, AccessToken = accessToken, DateTime = DateTime.Now, Login = login, Password = password
         };
         UsersStorage.Add(user);
         return(new Result <ViewModel.Doctor>(new ViewModel.Doctor()
         {
             access_token = accessToken,
             fio = doctor.Fio
         }));
     }
     catch (Exception e)
     {
         return(new Result <ViewModel.Doctor>(e.Message));
     }
 }