public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as LeaveGroupRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "leave group [" + ptc.GroupId + "]"); int rowAffect = 0; try { rowAffect = Delete(ptc.Email, ptc.GroupId); toView.Message += "\n delete in db successful , " + rowAffect + " " + ptc.Email; } catch (Exception ex) { toView.Message = "\n delete failed \n Detail : " + ex.Message; return(toView.ToString()); } //gửi lại đã xóa được hay chưa client.ResponseLeaveGroup(rowAffect, ptc.GroupId); if (rowAffect == 0) { return(toView.Message); } //gửi lại cho các member trong nhóm danh sách thành viên mới List <Account> accounts = new List <Account>(); try { accounts = GetUserExceptMe(ptc.Email, ptc.GroupId); } catch (Exception ex) { toView.Message += "\n failed get list account to send new list uer in group \n Detail: " + ex.Message; return(toView.ToString()); } if (accounts.Count > 0) { foreach (var item in accounts) { IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(item.Email, out _client)) { _client.ResponseGetUserInGroup(ptc.GroupId, accounts); } } } toView.Message += "\n send new list accounts succesful"; return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as AskBeFriendRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.SenderEmail, " delete friend invitation with [user: "******"]"); int delete = 0; try { delete = Delete(new FriendResquestNotExcept(ptc.SenderEmail, ptc.ReceiverEmail, DateTime.Now)); } catch (Exception ex) { toView.Message += "Error to Delete request from db \n deltai : " + ex.Message; return(toView.ToString()); } var accounts = new List <Account>(); try { accounts = ListUserISendFriendRequest(ptc.SenderEmail); } catch (Exception ex) { toView.Message += "error get list account from db \n deltail : " + ex.Message; return(toView.ToString()); } client.ResponseGetListUserIRequestAddFriend(accounts); var accs = new List <Account>(); try { accs = ListUserRequestAddFriendOfReceiveUser(ptc.ReceiverEmail); } catch (Exception ex) { toView.Message += "error get list account from db \n deltail : " + ex.Message; return(toView.ToString()); } IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(ptc.ReceiverEmail, out _client)) { _client.ResponseGetListUserRequestAddFriend(accs); } toView.Message += " handling successful!"; return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetListAskBeFriendRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "get list user that this user sended friend request"); var accounts = new List <Account>(); try { accounts = ListUserIAskBeFriend(ptc.Email); } catch (Exception ex) { toView.Message += "error get list account from db \n detail : " + ex.Message; return(toView.ToString()); } client.ResponseGetListUserIRequestAddFriend(accounts); return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetListAskBeFriendRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "request get all request add be friend"); var accounts = new List <Account>(); try { accounts = ListAccountSendFriendRequest(ptc.Email); } catch (Exception ex) { toView.Message += " db error \n detail : " + ex.Message; return(toView.ToString()); } client.ResponseGetListUserRequestAddFriend(accounts); return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as CreateGroupRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Group.UserCreate, " request create a group with name " + ptc.Group.Name); int insert = 0; try { insert = Insert(ptc.Group); } catch (Exception ex) { toView.Message += "\n cannot insert Group to database \n detail: " + ex.Message; return(toView.ToString()); } if (insert == 0) { client.ResponseCreateGroupChat(insert, new List <Group>()); return(toView.ToString()); } try { InsertUserToGroup(ptc.Group.UserCreate, ptc.Group.Id); } catch (Exception ex) { toView.Message += "\n Error add user " + ptc.Group.UserCreate + " to groups " + ptc.Group.Id + " \n detail : " + ex.Message; } foreach (var item in ptc.Accounts) { try { InsertUserToGroup(item, ptc.Group.Id); } catch (Exception ex) { toView.Message += "\n Error add user " + item + " to groups " + ptc.Group.Id + " \n detail : " + ex.Message; } } var listGroup = new List <Group>(); try { listGroup = GetListGroup(ptc.Group.UserCreate); } catch (Exception ex) { toView.Message += "\n Error get list group \n detail : " + ex.Message; } client.ResponseGetGroups(listGroup); foreach (var item in ptc.Accounts) { IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(item, out _client)) { _client.ResponseGetGroups(GetListGroup(item)); } } toView.Message += "\n Create Group Successful"; return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as KickUserOutGroupRequestProtocol; ChatProtocol.Ulti.ToViewStringFormat toVIew = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.EmailRequest, " request kick [user:"******"] out group [" + ptc.GroupId + "]"); //check is this user create group bool _isUserCreateGroup; try { _isUserCreateGroup = IsUserCreateGroup(ptc.EmailRequest, ptc.GroupId); } catch (Exception ex) { toVIew.Message += "\n Check is user create group failed. \n detail : " + ex.Message; return(toVIew.ToString()); } if (!_isUserCreateGroup) { client.ResponseKickUserOutGroup(0, ptc.GroupId, ptc.KickEmail, "Only the creator of the group can invite others out of the group"); toVIew.Message += "User is not creator. Can not kick user out of group"; return(toVIew.ToString()); } int rowAffect = 0; try { rowAffect = DeleteUser(ptc.KickEmail, ptc.GroupId); } catch (Exception ex) { toVIew.Message += "\n can not delete user in group from database \n detail:" + ex.Message; return(toVIew.ToString()); } client.ResponseKickUserOutGroup(1, ptc.GroupId, ptc.KickEmail, "kick successful"); // gửi thông báo đến các user khác List <Group> group = new List <Group>(); try { group = GetListGroup(ptc.KickEmail); } catch (Exception ex) { toVIew.Message += "can not get group \n detail: " + ex.Message; return(toVIew.ToString()); } IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(ptc.KickEmail, out _client)) { _client.ResponseGetGroups(group); } var accounts = new List <Account>(); try { accounts = GetListAccountInGroup(ptc.GroupId, ptc.EmailRequest); } catch (Exception ex) { toVIew.Message += " error \n detail : " + ex.Message; return(toVIew.ToString()); } foreach (var item in accounts) { IChatClient _cl = null; if (Instance.OnlineUser.TryGetValue(item.Email, out _cl)) { _cl.ResponseGetUserInGroup(ptc.GroupId, accounts); } } return(toVIew.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as AcceptFriendRequestProtocol; var toView = new ChatProtocol.Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.UserAccept, ""); //xóa record trong list lời mời int delete = 0; try { delete = DeleteRecord(new FriendResquestNotExcept(ptc.UserRequest, ptc.UserAccept, DateTime.Now)); } catch (Exception ex) { toView.Message += "error to delete record \n detail : " + ex.Message; return(toView.ToString()); } int insert = 0; if (ptc.IsAccept == 1) { try { insert = InsertFriend(ptc.UserRequest, ptc.UserAccept); } catch (Exception ex) { toView.Message += "error Insert Friend to db \n detail : " + ex.Message; return(toView.ToString()); } } /* * var requests = new List<Account>(); * try * { * requests = ListRequest(ptc.UserAccept); * } * catch (Exception ex) * { * toView.Message += "error get from db \n detail : " + ex.Message; * } * * client.ResponseGetListUserRequestAddFriend(requests); */ var accs = new List <Account>(); try { accs = NewListFriend(ptc.UserAccept); } catch (Exception ex) { toView.Message += ex.Message; } client.ResponseGetListFriends(accs); IChatClient _client = null; if (!Instance.OnlineUser.TryGetValue(ptc.UserRequest, out _client)) { return(toView.ToString()); } var accounts = new List <Account>(); try { accounts = NewListFriend(ptc.UserRequest); } catch (Exception ex) { toView.Message += ex.Message; } _client.ResponseGetListFriends(accounts); return(toView.ToString()); }