Exemple #1
0
        internal Mappings WithFailed(Mapping mapping)
        {
            var created = Created.Contains(mapping) ? Array.AsReadOnly(Created.Where(t => t != mapping).ToArray()) : Created;
            var failed  = !Failed.Contains(mapping) ? Array.AsReadOnly(Failed.Concat(new[] { mapping }).ToArray()) : Failed;
            var pending = Pending.Contains(mapping) ? Array.AsReadOnly(Pending.Where(t => t != mapping).ToArray()) : Pending;

            return(new Mappings(created, pending, failed));
        }
Exemple #2
0
        internal Mappings Remove(Mapping mapping, out bool wasCreated)
        {
            wasCreated = Created.Contains(mapping);
            var created = Created.Contains(mapping) ? Created.Except(new[] { mapping }).ToArray() : Created;
            var pending = Pending.Contains(mapping) ? Pending.Except(new[] { mapping }).ToArray() : Pending;
            var failed  = Failed.Contains(mapping) ? Failed.Except(new[] { mapping }).ToArray() : Failed;

            return(new Mappings(created, pending, failed));
        }
Exemple #3
0
 public void DeclineFriendship(FriendModel user, [CanBeNull] Action <FriendModel> onSuccess = null, [CanBeNull] Action <Error> onError = null)
 {
     if (!Pending.Contains(user))
     {
         RaiseOnError($"Can not accept friendship from the user = {user.Nickname}. They are not a pending user.", onError);
     }
     else
     {
         SdkFriendsLogic.Instance.DeclineFriendship(user, u =>
         {
             RemoveUserFromMemory(user);
             onSuccess?.Invoke(u);
         }, onError);
     }
 }
Exemple #4
0
 public void AddFriend(FriendModel user, [CanBeNull] Action <FriendModel> onSuccess = null, [CanBeNull] Action <Error> onError = null)
 {
     if (Friends.Contains(user) || Blocked.Contains(user) || Pending.Contains(user) || Requested.Contains(user))
     {
         RaiseOnError($"Can not add friend with this nickname = {user.Nickname}. This friend is not in the 'initial' state.", onError);
     }
     else
     {
         SdkFriendsLogic.Instance.SendFriendshipInvite(user, u =>
         {
             RemoveUserFromMemory(user);
             UpdateRequestedUsers(onError: onError);
             onSuccess?.Invoke(u);
         }, onError);
     }
 }
Exemple #5
0
 private void RemoveUserFromMemory(FriendModel user)
 {
     if (Friends.Contains(user))
     {
         Friends.Remove(user);
         UserFriendsUpdatedEvent?.Invoke();
     }
     if (Pending.Contains(user))
     {
         Pending.Remove(user);
         PendingUsersUpdatedEvent?.Invoke();
     }
     if (Requested.Contains(user))
     {
         Requested.Remove(user);
         RequestedUsersUpdatedEvent?.Invoke();
     }
     if (Blocked.Contains(user))
     {
         Blocked.Remove(user);
         BlockedUsersUpdatedEvent?.Invoke();
     }
 }
Exemple #6
0
 public bool PendingContains(T obj)
 {
     return(Pending.Contains(obj));
 }