private dynamic OnAddFriendRequest(dynamic arg) { var friendRequest = new SerializeHelper().DeserializeObject <FriendRequest>(Request.Body); $"Got a friend request from { friendRequest.RequesterAccount.Name } to { friendRequest.TargetAccount.Name }".WriteToConsole(); RegistrationService registrationService = RegistrationService.Instance; FriendRequestService friendRequestService = FriendRequestService.Instance; if (registrationService.FindByName(friendRequest.RequesterAccount.Name) != null) { ComplexFriendRequest result = friendRequestService.Save(friendRequest); friendRequest.RequestState = result.RequestState; $"Saved request with result '{ friendRequest.RequestState }'".WriteToConsole(); string serialized = new SerializeHelper().Serialize(friendRequest); Task.Run(() => { UserInformerService.Instance.NotifyUserAboutFriendRequest(friendRequest.TargetAccount.Id, friendRequest); }); return(serialized); } $"Target acount { friendRequest.TargetAccount.Name } doesnt exist".WriteToConsole(); friendRequest.RequestState = FriendRequestState.DoesntExist; return(friendRequest); }
private dynamic OnFriendRequestReply(dynamic arg) { var helper = new SerializeHelper(); var requestReply = helper.DeserializeObject <FriendRequestReply>(Request.Body); $"Got a friend request reply from { requestReply.Request.TargetAccount.Name } to { requestReply.Request.RequesterAccount.Name }" .WriteToConsole(); Guid senderId = requestReply.Id; SessionAuth clientAuth = Request.Headers.GetSessionAuth(); if (!AccountStateService.Instance.IsAuthorized(senderId, clientAuth.ClientToken)) { throw new ClientNotAuthorizedException(senderId); } AccountStateService stateService = AccountStateService.Instance; UserInformerService informerService = UserInformerService.Instance; FriendRequestService friendRequestService = FriendRequestService.Instance; ComplexFriendRequest processedRequest = friendRequestService.ReplyToRequest(requestReply); Task.Run(() => { informerService.NotifyUserAboutFriendReply(requestReply.Request.RequesterAccount.Id, requestReply); }); requestReply.EstablishedDate = processedRequest.DecisionDate; var serialized = helper.Serialize(requestReply); return(serialized); }
private dynamic OnSearchFriendRequestRequest(dynamic arg) { var searchRequest = new SerializeHelper().DeserializeObject <SearchRequest>(Request.Body); SearchEntity searchEntity = searchRequest.Entity; if (searchEntity != SearchEntity.IncomingFriendRequests && searchEntity != SearchEntity.OutgoingFriendRequests) { throw new InvalidOperationException($"Search entity '{ searchEntity }' must not be sent to this controller"); } AccountStateService stateService = AccountStateService.Instance; FriendRequestService requestService = FriendRequestService.Instance; SessionAuth clientAuth = Request.Headers.GetSessionAuth(); if (!stateService.IsAuthorized(searchRequest.SenderId, clientAuth.ClientToken)) { throw new ClientNotAuthorizedException(searchRequest.SenderId); } IEnumerable <ComplexFriendRequest> requests = searchEntity == SearchEntity.IncomingFriendRequests ? requestService.GetIncomingRequests(searchRequest.SenderId) : requestService.GetOutgoingRequests(searchRequest.SenderId); IEnumerable <FriendRequest> clientModels = requests.Select(complexModel => complexModel.ToSimple()); string serialized = new SerializeHelper().Serialize(clientModels); return(serialized); }
//发起一次用户好友请求 public ActionResult SendFriendRequest() { bool state = false; string message = string.Empty; try { FriendRequestService.AddFriendRequest(sessionModel.User.UserId, Convert.ToInt32(Request["friendid"]), sessionModel.User.UserName, Convert.ToInt32(Request["gid"]), Request["note"]); } catch (UserException e) { message = e.Message; state = true; } return(Content(JsonString.GetString(new { state = state, message = message }))); }
public ActionResult PassRequest() { int friendrequestid = Convert.ToInt32(Request["frid"]); int gid = Convert.ToInt32(Request["gid"]); string message = string.Empty; bool state = false; try { FriendRequestService.PassFriendRequest(friendrequestid, sessionModel.User.UserId, sessionModel.User.UserName, gid, Request["note"]); state = true; message = "添加好友成功"; } catch (UserException e) { message = e.Message; } return(Content(JsonString.GetString(new { state = state, message = message }))); }