/// <summary> /// Сообщить пользователю о новом запросе в друзья. /// </summary> /// <param name="userId">Идентификатор пользователя, которому поступил запрос в друзья.</param> /// <param name="request">Поступивший запрос в друзья.</param> public void NotifyUserAboutFriendRequest(Guid userId, FriendRequest request) { ComplexAccountState targetUserState = AccountStateService.Instance.GetStatusOf(userId); if (targetUserState == null) { throw new InvalidOperationException($"Got null target user state"); } if (targetUserState.OnlineStatus == AccountOnlineStatus.Online) { using (IHttpActor actor = new HttpActor()) { string requesterAddress = $"{ targetUserState.Address }{ Subroutes.NotifyClient.NotifyFriendRequest }"; actor.SetRequestAddress(requesterAddress); actor.AddHeader(FreengyHeaders.Server.ServerSessionTokenHeaderName, targetUserState.ClientAuth.ServerToken); var result = actor.PostAsync <FriendRequest, FriendRequest>(request).Result; string resultMessage = result.Success ? "Success" : result.Error.Message; ( $"Sent friendrequest notification from '{ request.RequesterAccount.Name }' to " + $"{ request.TargetAccount.Name }:{ Environment.NewLine } { resultMessage }" ) .WriteToConsole(ConsoleColor.DarkBlue); } } }
/// <summary> /// Notify user about appeared reaction for his friendrequest. /// </summary> /// <param name="requesterId"></param> /// <param name="requestReply"></param> public void NotifyUserAboutFriendReply(Guid requesterId, FriendRequestReply requestReply) { ComplexAccountState requesterState = AccountStateService.Instance.GetStatusOf(requesterId); if (requesterState == null) { throw new InvalidOperationException($"Got null requester state"); } if (requesterState.OnlineStatus == AccountOnlineStatus.Online) { using (IHttpActor actor = new HttpActor()) { string requesterAddress = $"{requesterState.Address}{Subroutes.NotifyClient.NotifyFriendRequestState}"; actor.SetRequestAddress(requesterAddress); actor.AddHeader(FreengyHeaders.Server.ServerSessionTokenHeaderName, requesterState.ClientAuth.ServerToken); var result = actor.PostAsync <FriendRequestReply, FriendRequestReply>(requestReply).Result; string resultMessage = result.Success ? "Success" : result.Error.Message; $"Sent friendrequest reply '{ requestReply.Reaction }' to { requesterState.ComplexAccount.Name }:{ Environment.NewLine } { resultMessage }" .WriteToConsole(ConsoleColor.Blue); } } }
private static void NotifyFriendAboutUser(ComplexAccountState userState, ComplexAccountState friendAccountState) { using (IHttpActor actor = new HttpActor()) { string targetFriendAddress = $"{friendAccountState.Address}{Subroutes.NotifyClient.NotifyFriendState}"; actor.SetRequestAddress(targetFriendAddress); actor.AddHeader(FreengyHeaders.Server.ServerSessionTokenHeaderName, friendAccountState.ClientAuth.ServerToken); var result = actor.PostAsync <AccountStateModel, AccountStateModel>(userState.ToSimple()).Result; } }
public void NotifyUserOfExpAddition(ComplexAccountState userState, GainExpModel expModel) { using (IHttpActor actor = new HttpActor()) { //TODO добавить начисление экспы string address = $"{userState.Address}{Subroutes.NotifyClient.SyncExp}"; actor.SetRequestAddress(address); actor.AddHeader(FreengyHeaders.Server.ServerSessionTokenHeaderName, userState.ClientAuth.ServerToken); $"Giving { expModel.Amount } exp to { userState.ComplexAccount.Name } for { expModel.GainReason }" .WriteToConsole(ConsoleColor.Yellow); var result = actor.PostAsync <GainExpModel, GainExpModel>(expModel).Result; } }