/// <summary> /// Removes the connection between the two user of frienship and updates the friend list of the both users. /// </summary> /// <param name="sender"></param> /// <param name="receiver"></param> public void RemoveFriend(string sender, string receiver) { UserInformation _Sender = Subscriber.getUser(sender); UserInformation _Receiver = Subscriber.getUser(receiver); using (DataBaseContainer context = new DataBaseContainer()) { User Sender = context.Users.ToList().Find(x => x.Username == sender); User Receiver = context.Users.ToList().Find(x => x.Username == receiver); History history = context.Histories.ToList().Find(x => x.User == Sender && x.User1 == Receiver || x.User == Receiver && x.User1 == Sender); Sender.Histories.Remove(history); Sender.Histories1.Remove(history); Receiver.Histories.Remove(history); Receiver.Histories1.Remove(history); context.Histories.Remove(history); context.SaveChanges(); } if (_Sender != null) { _Sender.CommunicationCallback.FriendRemoved(receiver); } if (_Receiver != null) { _Receiver.CommunicationCallback.FriendRemoved(sender); } }
public void Confirmation(string sender, string receiver, bool ok, bool isGroup) { if (isGroup) { GroupConversation group = Subscriber.GetGroup(receiver); if (ok) { group.UserJoinAudio(sender); } } else { UserInformation user = Subscriber.getUser(receiver); if (user != null && user.AudioCallback != null) { if (ok) { user.AudioCallback.ChannelAccepted(sender); } else { user.AudioCallback.ChannelDeclined(sender); } } } }
public GroupConversation(string creator, string groupName) { Creator = creator; GroupName = groupName; UserInformation user = Subscriber.getUser(Creator); Members.Add(user); }
public void EndShareScreen(string sender, string receiver) { UserInformation user = Subscriber.getUser(receiver); if (user != null && user.ScreenShareCallback != null) { user.ScreenShareCallback.EndShareScreen(sender); } }
public void RefuseShareScreen(string sender, string partner) { UserInformation Partner = Subscriber.getUser(partner); if (Partner != null && Partner.ScreenShareCallback != null) { Partner.ScreenShareCallback.SendRefuseNotification(sender); } }
/// <summary> /// Initialiaze a share screen with the partner. /// </summary> /// <param name="client"></param> /// <param name="partner"></param> /// <param name="connectionString"></param> public void InitShareScreen(string client, string partner, string connectionString) { UserInformation user = Subscriber.getUser(partner); if (user != null && user.ScreenShareCallback != null) { user.ScreenShareCallback.ShareScrennNotification(client, connectionString); } }
public void InviteToGroupConversation(string sender, string receiver, string groupName) { UserInformation user = Subscriber.getUser(receiver); if (user != null) { user.CommunicationCallback.SendGroupConversationNotification(sender, groupName); } }
public void UserJoinAudio(string username) { UserInformation user = Subscriber.getUser(username); if (!AudioMembers.Exists(x => x.Username == user.Username)) { AudioMembers.Add(user); } }
public void DeclineGroupRequest(string sender, string groupName) { UserInformation user = Subscriber.getUser(sender); GroupConversation group = Subscriber.GetGroup(groupName); if (group != null) { group.UserDeclined(sender); } }
public void LeaveGroup(string sender, string groupName) { UserInformation user = Subscriber.getUser(sender); GroupConversation group = Subscriber.GetGroup(groupName); if (group != null) { group.UserLeft(sender); if (group.Members.Count == 0) { Subscriber.GroupConversations.Remove(group); } } }
public void UserLeft(string username) { foreach (UserInformation member in Members) { if (member.Username != username) { member.CommunicationCallback.UserLeft(username, GroupName); } } UserInformation user = Subscriber.getUser(username); Members.Remove(user); }
public bool AcceptGroupRequest(string sender, string groupName) { UserInformation user = Subscriber.getUser(sender); GroupConversation group = Subscriber.GetGroup(groupName); if (group != null) { if (!group.UserExits(sender)) { group.UserJoined(sender); } return(true); } return(false); }
public void StopCall(string sender, string receiver, bool isGroup) { if (isGroup) { GroupConversation group = Subscriber.GetGroup(receiver); group.UserLeftAudio(sender); } else { UserInformation user = Subscriber.getUser(receiver); if (user != null && user.AudioCallback != null) { user.AudioCallback.StopCall(sender); } } }
public void UserLeftAudio(string username) { UserInformation user = Subscriber.getUser(username); AudioMembers.Remove(user); }
public void Unsubscribe(string username) { UserInformation user = Subscriber.getUser(username); user.AudioCallback = null; }