Exemple #1
0
        public async Task <AddFriendResponse> AddFriend(AddFriendRequest request)
        {
            AddFriendResponse addFriendResponse = new AddFriendResponse();

            try
            {
                addFriendResponse = (await App.Database.AddFriend(new AddFriendRequest
                {
                    Username = request.Username
                }));
            }
            catch (Exception e)
            {
                var exception = JsonConvert.DeserializeObject <ErrorMsg>(e.Message);
                switch (exception.err)
                {
                case ErrorType.PersonAlreadyFriend:
                    await _dialogService.ShowMessage($"Friend request already sent", "Error", "OK", null);

                    break;

                default:
                    await _dialogService.ShowMessage($"The server returned an error: {e.Message}", "Error", "OK", null);

                    break;
                }
            }
            return(addFriendResponse);
        }
Exemple #2
0
        public override Task <AddFriendResponse> AddFriend(AddFriendRequest request, ServerCallContext context)
        {
            _friendsService.AddFriend(Guid.Parse(request.UserId), Guid.Parse(request.FriendId));
            var response = new AddFriendResponse();

            return(Task.FromResult(response));
        }
 public AddFriendResponse AddFriend(string friendID)
 {
     AddFriendResponse response = new AddFriendResponse();
     RelationshipService relationshipSvc = new RelationshipService(_repository);
     try
     {
         relationshipSvc.ModifyFriendsList(RelationshipService.Operation.AddFriend, _currentTravelerId, new Guid(friendID));
         response.MarkSuccess();
     }
     catch (Exception ex)
     {
         ReportError(ex, response);
     }
     return response;
 }
        public async Task <AddFriendResponse> AddFriendAsync(string friendShortId, CancellationToken cancellationToken) =>
        await Task.Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            // Get friend profile.
            GetProfileResponse friendProfile = await _profileService.GetProfileByShortIdAsync(friendShortId, cancellationToken);

            if (friendProfile == null)
            {
                throw new Exception("Friend profile not found.");
            }

            AddFriendRequest addFriendRequest = new AddFriendRequest {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Url         = GlobalSettings.Instance.Endpoints.FriendEndPoints.AddFriendRequestEndPoint,
                Data        = new AddFriendDataModel {
                    FriendId    = friendProfile.Id,
                    ProfileId   = GlobalSettings.Instance.UserProfile.Id,
                    ProfileType = GlobalSettings.Instance.UserProfile.ProfileType.ToString()
                }
            };

            AddFriendResponse addFriendResponse = null;

            try {
                addFriendResponse = await _requestProvider.PostAsync <AddFriendRequest, AddFriendResponse>(addFriendRequest);
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception ex) {
                Crashes.TrackError(ex);

                Debug.WriteLine($"ERROR:{ex.Message}");
                throw new Exception((JsonConvert.DeserializeObject <AddFriendException>(ex.Message)).Empty.FirstOrDefault());
            }
            return(addFriendResponse);
        }, cancellationToken);
Exemple #5
0
        //接收信息
        private void ActiveMQ_Received(object sender, string e)
        {
            var package = JsonConvert.DeserializeObject <Package>(e);

            switch (package.Type)
            {
            case "Response":
            {
                switch (package.Method)
                {
                case nameof(RegisterUser):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(int)
                                });

                        RegisterUserResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                case nameof(UserLogin):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int, List <User> >)
                                });

                        UserLoginResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                case nameof(SearchFriends):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int, List <User> >)
                                });

                        FriendsSearchedResponse?.Invoke(this, data.Result.Item2);
                    }
                }
                break;

                case nameof(AddFriend):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int, User, User>)
                                });

                        AddFriendResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                case nameof(GetMyFriends):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int, List <User> >)
                                });

                        GetMyFriendsResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                case nameof(GetUserInfo):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int, User>)
                                });

                        GetUserInfoResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                case nameof(UpdateUserInfo):
                {
                    if (Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result = default(Tuple <int>)
                                });

                        UpdateUserInfoResponse?.Invoke(this, data.Result);
                    }
                }
                break;

                default:
                    break;
                }
            }
            break;

            case "Notice":
            {
                switch (package.Method)
                {
                case "AddFriend":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Result = default(Tuple <int, User, User>)
                            });

                    FriendAddedNotice?.Invoke(this, data.Result);
                }
                break;

                //好友登录广播地址
                case "FriendLoginNotice":
                {
                    if (!Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Username = default(string),
                                    Address  = default(string)
                                });;

                        FriendLoginNotice?.Invoke(this, new Tuple <string, string>(data.Username, data.Address));
                    }
                }
                break;

                case "Logout":
                {
                    if (!Sessions.ContainsKey(package.SessionID))
                    {
                        var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                                {
                                    Result   = default(int),
                                    UserName = default(string)
                                });

                        LogoutResponse?.Invoke(this, new Tuple <int, string>(data.Result, data.UserName));
                    }
                }
                break;
                }
            }
            break;

            case "Chat":
            {
                switch (package.Method)
                {
                case "Text":
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                        {
                            Username = default(string),
                            Message  = default(string)
                        });

                    ChatReceived?.Invoke(this, new Tuple <string, string>(data.Username, data.Message));
                    break;

                default:
                    break;
                }
            }
            break;

            default:
                break;
            }
        }