public void Delete(User user)
 {
     var userForDeletion = _allUsers.Find(u => u.Id == user.Id);
     _allUsers.Remove(userForDeletion);
     Serialize();
     GetAllUsers();
 }
        public void Add(User user)
        {
            if (AllUsers.Any(u => u.Name == user.Name))
            {
                throw new InvalidOperationException("UserName is already used");
            }

            AllUsers.Add(user);
            Serialize();
            GetAllUsers();
        }
 public void Change(User user)
 {
     var userToChange = _allUsers.Find(u => u.Id == user.Id);
     if (AllUsers.Any(u => u.Name == user.Name))
     {
         throw new InvalidOperationException("UserName is already used");
     }
     _allUsers.Remove(userToChange);
     _allUsers.Add(user);
     Serialize();
     GetAllUsers();
 }
 public void EditUser(User user)
 {
 }
        public User LogIn(User user)
        {
            GetAllUsers();
            var loggedUser = _allUsers.Find(u => u.Password == user.Password && u.Name == user.Name);
            if (loggedUser == null)
            {
                throw new InvalidOperationException("UserName or password is incorrect");
            }

            return loggedUser;
        }
        public User GetUser(User user)
        {
            GetAllUsers();
            var userForEdition = _allUsers.Find(u => u.Name == user.Name);
            if (userForEdition == null)
            {
                throw new InvalidOperationException("Can't find such user");
            }

            return userForEdition;
        }