public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as DeleteFriendRequestProtocol; var toView = new ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.UserRequest, "request delete friend reationship with [user:"******"]"); int delete = 0; try { delete = Delete(ptc.UserRequest, ptc.UserDelete); } catch (Exception ex) { toView.Message += "error to delete relationship \n detail : " + ex.Message; return(toView.ToString()); } IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(ptc.UserDelete, out _client)) { var accounts = new List <Account>(); try { accounts = NewListFriend(ptc.UserDelete); } catch (Exception ex) { toView.Message += "error get list friend from db \n deltail : " + ex.Message; } _client.ResponseGetListFriends(accounts); } return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GroupMessageProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] send a message to group " + ptc.message.GroupReceive; try { InsertMessage(ptc.message); } catch (Exception ex) { toView += "\n insert group message failed \n detail : " + ex.Message; } var accounts = GetUserInGroupExceptMe(ptc.message.GroupReceive, ptc.message.Sender); foreach (var item in accounts) { IChatClient clt; if (Instance.OnlineUser.TryGetValue(item.Email, out clt)) { clt.SendGroupMessage(ptc.message); } } return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetFriendStreamingRequestProtocol; var toView = new ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "get list friends are streaming"); var listFriend = new List <ChatDataModel.Account>(); try { listFriend = GetListFriend(ptc.Email); } catch (Exception ex) { toView.Message += "error to use db\n detail : " + ex.Message; } var listFriendStreaming = new List <ChatDataModel.AccountStream>(); foreach (var item in listFriend) { lock (this) { string value = ""; if (Instance.Streaming.TryGetValue(item.Email, out value)) { Console.WriteLine(value); listFriendStreaming.Add(new ChatDataModel.AccountStream(item.Name, item.AvatarDriveID, value)); } } } client.ResponseListUserStreaming(listFriendStreaming); return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as LogoutProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] log out"; lock (syncLock) { Instance.OnlineUser.Remove(ptc.Email); } return(toView); }
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 LiveStreamRequestProtocol; var toView = new ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "request create a stream video"); var streamID = Guid.NewGuid().ToString(); client.ResponseStreamID(streamID); lock (synclock) { Instance.Streaming.Add(ptc.Email, streamID); } return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as AddUsersToGroupRequestProtocol; var toView = new ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), "null", "Add user to group " + ptc.GroupId); int isSuccess = 0; try { isSuccess = Insert(ptc.Email, ptc.GroupId); toView.Message = "Insert Successful"; } catch (Exception ex) { toView.Message = "Insert failed \n detail : " + ex.Message; } client.ResponseAddFriendToGroup(isSuccess, ptc.GroupId); if (isSuccess == 1) { var accounts = GetUserInGroup(ptc.GroupId); foreach (var item in accounts) { IChatClient _client = null; if (item.Email != ptc.EmailRequest && !Instance.OnlineUser.TryGetValue(item.Email, out client)) { _client.ResponseGetUserInGroup(ptc.GroupId, accounts); } } } List <Group> listGroup = new List <Group>(); try { listGroup = GetListGroup(ptc.Email); } catch (Exception) { } IChatClient cl; if (Instance.OnlineUser.TryGetValue(ptc.Email, out cl) && listGroup.Count > 0) { cl.ResponseGetGroups(listGroup); } return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetListFriendsRequestProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] get list friends "; var listFriends = ListFriends(ptc.Email); if (listFriends.Count == 0) { toView += "\n list friend is empty"; return(toView); } client.ResponseGetListFriends(listFriends); return(toView += "\n get list friend successful "); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as HistoryChatRequestProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] get chat history with [user:"******"\n Don't have conversation yet"; return(toView); } client.ResponseGetChatHistory(history); toView += "\n Get history successful"; return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetGroupChatRequestProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] get groups chat"; var listGroup = GetListGroup(ptc.Email); if (listGroup.Count == 0) { toView += "\n list group empty"; return(toView); } client.ResponseGetGroups(listGroup); toView += "\n get list group OK!"; return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetUserInGroupResquestProtocol; string toString = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] : Get All User in Group "; try { var listUser = GetUserInGroup(ptc.Email, ptc.GroupId); client.ResponseGetUserInGroup(ptc.GroupId, listUser); toString += "\n Get list user successfull"; } catch (Exception ex) { toString += "\n Get list failed \n detail : " + ex.Message; } return(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 UpdateAvatarRequestProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] request Change avatar "; int isSuccess = UpdateAvatar(ptc.Email, ptc.DriveFileId); if (isSuccess != 1) { // gửi về không thành công client.ResponseUpdateAvatar(0, ptc.DriveFileId); toView += "\n non successful"; return(toView); } client.ResponseUpdateAvatar(1, ptc.DriveFileId); toView += "\n update successful"; return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as AskBeFriendRequestProtocol; var toView = new ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.SenderEmail, "Send a friend requset to user[" + ptc.ReceiverEmail + "]"); try { var request = new FriendResquestNotExcept(ptc.SenderEmail, ptc.ReceiverEmail, DateTime.Now); Insert(request); toView.Message += "\n insert request successful"; } catch (Exception ex) { toView.Message += "\n insert request to db Failed \n detail : " + ex.Message;; return(toView.ToString()); } IChatClient _client = null; if (Instance.OnlineUser.TryGetValue(ptc.ReceiverEmail, out _client)) { _client.ResponseGetListUserRequestAddFriend(ListRequestOfUser(ptc.ReceiverEmail)); toView.Message += " send friend request successful!"; } var accounts = new List <Account>(); try { accounts = GetRequestIAsk(ptc.SenderEmail); } catch (Exception ex) { toView.Message += "error get list user 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 HistoryChatGroupRequestProtocol; var toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] get history with group chat [" + ptc.GroupId + "]"; try { var messages = GetMessages(ptc.GroupId); if (messages.Count != 0) { client.ResponseGetChatGroupHistory(messages); toView += "\n get history successul"; } } catch (Exception) { toView += "\n get history failed"; } return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as GetFriendNotInGroupRequestProtocol; var toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user: "******"] get list friend not in group [" + ptc.GroupId + "]"; List <Account> accounts = new List <Account>(); try { accounts = GetAccountNotInGroup(ptc.Email, ptc.GroupId); } catch (Exception ex) { toView += "\n Get List Account not in Group Failed \n detail: " + ex.Message; return(toView); } if (accounts.Count > 0) { client.ResponseFriendNotInGroup(accounts); } toView += "\n send list friend not in group chat successful"; return(toView); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as FindUserRequestProtocol; var toView = new Ulti.ToViewStringFormat(DateTime.Now, client.GetEndPoint().ToString(), ptc.Email, "find users has name is " + ptc.Query); var accounts = new List <Account>(); try { accounts = FindUsersResult(ptc.Email, ptc.Query); } catch (Exception ex) { toView.Message += "error to find user \n detail : " + ex.Message; return(toView.ToString()); } if (accounts.Count < 0) { toView.Message += "\n list empty"; } client.ResponseUserDugOut(accounts); return(toView.ToString()); }
public string Handling(IProtocol protocol, IChatClient client) { var ptc = protocol as MessageProtocol; string toView = "[" + DateTime.Now + "] [" + client.GetEndPoint() + "] [user:"******"] send a message to [user:"******"]"; try { InsertCall(ptc.Message.Call); } catch (Exception ex) { toView += "\n Can't not update this Message to database \n detail : " + ex.Message; } try { InsertMessage(ptc.Message); } catch (Exception ex) { toView += "\n Can't not update this Message to database \n detail : " + ex.Message; } if (!IsUserOnline(ptc.Message.Receiver)) { lock (lockInstance) { Instance.MessageHadNotSended.Add(ptc.Message); return(toView); } } GetUserOnline(ptc.Message.Receiver).SendMessage(ptc.Message); return(toView); }
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()); }
private static void _server_OnNewConnect(IChatClient obj) { Console.WriteLine(obj.GetEndPoint().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()); }
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()); }