Пример #1
0
        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 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());
        }
Пример #3
0
        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 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());
        }