/// <summary> /// /// </summary> /// <param name="FriendRequest"></param> /// <returns></returns> public async Task <IHttpActionResult> AddFriendRequest(FriendRequestModel FriendRequest) { FriendRequest.UserID = CurrentUser.UserID; FriendRequest.CreatedOn = DateTime.Now; ModelState.Remove("FriendRequest.UserID"); ModelState.Remove("FriendRequest.CreatedOn"); FriendRequest.PostedByName = CurrentUser.FullName; FriendRequest.PostedByAvatar = CurrentUser.ProfilePicture; FriendRequest.UserInfo = CurrentUser.Gender; FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS; if (ModelState.IsValid) { try { BroadcastFriendRequest model = _page.AddFriendRequest(FriendRequest); await _broadcaster.AddFriendRequest(model, FriendRequest.broadCastType); return(Ok((byte)model.FriendRequest.PageRelationStatus)); } catch (Exception ex) { Logs.Error("Error adding friend request for page", ex); return(BadRequest(ex.Message)); } } else { return(BadRequest(ModelState.JsonValidation())); } }
public async Task <IHttpActionResult> CancelFriendRequest(FriendRequestModel FriendRequest) { FriendRequest.UserID = CurrentUser.UserID; FriendRequest.CreatedOn = DateTime.Now; ModelState.Remove("FriendRequest.PageID"); ModelState.Remove("FriendRequest.CreatedOn"); FriendRequest.PostedByName = CurrentUser.FullName; FriendRequest.PostedByAvatar = CurrentUser.ProfilePicture; FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS; if (ModelState.IsValid) { try { BroadcastFriendRequest model = _page.RejectUserFriendRequest(FriendRequest); await _broadcaster.CancelFriendRequest(model, FriendRequest.broadCastType); return(Ok(model.FriendRequest)); } catch (Exception ex) { ExceptionService.LogError("Error cancel friend request to page", ex); return(BadRequest(ex.Message)); } } else { return(BadRequest(ModelState.JsonValidation())); } }
private async Task BroadcastRejectUserFriendRequestToWeb(BroadcastFriendRequest model) { IList <string> connectionIDs = _user.GetFollowerList(model.FriendRequest.PageID, model.FriendRequest.UserID, model.FriendRequest.PageType, model.FriendRequest.PageRelationStatus) .Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).Select(x => x.ConnectionID).ToList(); await _headerBroadCaster.Clients.Clients(connectionIDs) .removeRequests(model.FriendRequest); }
public async Task RejectUserFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType) { try { switch (broadCastType) { case Enums.BroadCastType.Web: await BroadcastRejectUserFriendRequestToWeb(model); break; } } catch (Exception ex) { ExceptionService.LogError("Error broadcasting cancel to page", ex); } }
public async Task AcceptFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType) { try { switch (broadCastType) { case Enums.BroadCastType.Web: await BroadcastAcceptFriendRequestToWeb(model); break; } } catch (Exception ex) { ExceptionService.LogError("Error broadcasting comment to post", ex); } }
public async Task CancelFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType) { try { switch (broadCastType) { case Enums.BroadCastType.Web: await BroadcastCancelFriendRequestToWeb(model); break; } } catch (Exception ex) { Logs.Error("Error broadcasting cancel to page", ex); } }
private async Task BroadcastAcceptFriendRequestToWeb(BroadcastFriendRequest model) { var users = _user.GetFollowerList(model.FriendRequest.PageID, model.FriendRequest.UserID, model.FriendRequest.PageType, model.FriendRequest.PageRelationStatus); // .Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).Select(x => x.ConnectionID).ToList(); IList <string> requesterID = users.Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web && x.UserID == model.FriendRequest.UserID).Select(x => x.ConnectionID).ToList(); IList <string> connectionIDs = users.Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).SkipWhile(x => x.UserID == model.FriendRequest.UserID).Select(x => x.ConnectionID).ToList(); await _headerBroadCaster.Clients.Clients(connectionIDs) .newNotifications(model.Notification); await _chatBroadCaster.Clients.Clients(requesterID) .updateUserList(_user.GetUserInfoByUserID(model.FriendRequest.PageID)); await _headerBroadCaster.Clients.Clients(requesterID) .removeRequests(model.FriendRequest); }