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); }
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);
//接收信息 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; } }