Example #1
0
 public InviteGroupRequest MapGroupRequestById(IDataReader record)
 {
     if (record.Read())
     {
         InviteGroupRequest request = new InviteGroupRequest();
         if (record["Id"] != DBNull.Value)
         {
             request.Id = record["Id"].ToString();
         }
         if (record["SenderId"] != DBNull.Value)
         {
             request.Sender = record["SenderId"].ToString();
         }
         if (record["ReceiverId"] != DBNull.Value)
         {
             request.Receiver = record["ReceiverId"].ToString();
         }
         if (record["GroupId"] != DBNull.Value)
         {
             request.GroupId = record["GroupId"].ToString();
         }
         if (record["DateTime"] != DBNull.Value)
         {
             request.Datetime = DateTime.Parse(record["DateTime"].ToString());
         }
         return(request);
     }
     return(null);
 }
Example #2
0
 public ChatResult InviteToGroupRespond(string connectionId, string requestId, bool agree)
 {
     if (m_mapConnectionIdCustomer.ContainsKey(connectionId))
     {
         if (m_InviteGroupRequestDict.ContainsKey(requestId))
         {
             InviteGroupRequest request = m_InviteGroupRequestDict[requestId];
             GroupInfo          group   = GetGroupByGroupId(request.GroupId);
             if (group != null)
             {
                 bool isInGroup = group.HasCustomer(request.Receiver);
                 if (!isInGroup)
                 {
                     if (agree)
                     {
                         m_customerInfoDict[request.Receiver].JoinGroup(request.GroupId);
                         group.JoinGroup(request.Receiver);
                         m_adapter.JoinGroup(request.Receiver, request.GroupId);//DB
                     }
                     InviteGroupRequest groupRequest;
                     m_InviteGroupRequestDict.TryRemove(requestId, out groupRequest);
                     m_adapter.DeleteGroupRequest(request.Id);//DB
                     return(new ChatResult(true, null));
                 }
                 return(new ChatResult(false, "Customer is already in group"));
             }
             return(new ChatResult(false, "Group not found."));
         }
         return(new ChatResult(false, "Request not found"));
     }
     return(new ChatResult(false, "Your ID doens't exist."));
 }
Example #3
0
        public Dictionary <string, InviteGroupRequest> MapGroupRequest(IDataReader record)
        {
            Dictionary <string, InviteGroupRequest> requestDict = new Dictionary <string, InviteGroupRequest>();

            while (record.Read())
            {
                InviteGroupRequest request = new InviteGroupRequest();
                if (record["Id"] != DBNull.Value)
                {
                    request.Id = record["Id"].ToString();
                }
                if (record["SenderId"] != DBNull.Value)
                {
                    request.Sender = record["SenderId"].ToString();
                }
                if (record["ReceiverId"] != DBNull.Value)
                {
                    request.Receiver = record["ReceiverId"].ToString();
                }
                if (record["GroupId"] != DBNull.Value)
                {
                    request.GroupId = record["GroupId"].ToString();
                }
                if (record["DateTime"] != DBNull.Value)
                {
                    request.Datetime = DateTime.Parse(record["DateTime"].ToString());
                }
                requestDict.Add(request.Id, request);
            }
            return(requestDict);
        }
Example #4
0
        public ChatResult <InviteGroupRequest> InviteToGroupRequest(string customerId, string groupId)
        {
            ChatResult <InviteGroupRequest> result = Manager.Instance.InviteToGroupRequest(Context.ConnectionId, customerId, groupId);

            if (result.Success)
            {
                InviteGroupRequest request = (InviteGroupRequest)result.Data;
                CustomerInfo       cus     = Manager.Instance.GetCustomerByCustomerId(customerId);
                Clients.Clients(cus.ConnectionList).OnInviteToGroupRequest(new List <InviteGroupRequest>()
                {
                    request
                });
            }
            return(result);
        }
Example #5
0
 public InviteGroupRequest GetGroupRequestById(string requestId)
 {
     if (m_InviteGroupRequestDict.ContainsKey(requestId))
     {
         return(m_InviteGroupRequestDict[requestId]);
     }
     else
     {
         InviteGroupRequest request = m_adapter.GetGroupRequestById(requestId);
         if (request != null)
         {
             return(request);
         }
     }
     return(null);
 }
Example #6
0
        public bool AddGroupRequest(InviteGroupRequest request)
        {
            string query = "CHAT.GROUPREQUEST_CREATE";

            try
            {
                OracleDataHelper helper = OracleHelper;
                helper.BeginTransaction();
                helper.ExecuteNonQuery(query, request.Id, request.Sender, request.Receiver, request.GroupId, request.Datetime);
                helper.Commit();
            }
            catch (Exception ex)
            {
                OracleHelper.Rollback();
                throw ex;
            }
            return(true);
        }
Example #7
0
        public RespondForm(int requestType, object request)
        {
            InitializeComponent();

            m_requestType = requestType;
            if (requestType == 0)
            {
                m_friendrequest = (AddFriendRequest)request;
                string sender = m_friendrequest.Sender;
                lbText.Text = sender + " wants to add you as friend.\n Agree?";
            }
            else if (requestType == 1)
            {
                m_grouprequest = (InviteGroupRequest)request;
                string sender    = m_grouprequest.Sender;
                string groupName = "";
                if (m_grouprequest.GroupName != null)
                {
                    groupName = m_grouprequest.GroupName;
                }
                lbText.Text = sender + " wants to add you to group +" + groupName + "+.\n Agree?";
            }
        }
Example #8
0
        public ChatResult <InviteGroupRequest> InviteToGroupRequest(string connectionId, string newCustomerId, string groupId)
        {
            if (m_mapConnectionIdCustomer.ContainsKey(connectionId))
            {
                string    myCustomerId = m_mapConnectionIdCustomer[connectionId];
                GroupInfo gr           = GetGroupByGroupId(groupId);//check group exist or not
                if (gr != null)
                {
                    if (!m_groupInfoDict[groupId].HasCustomer(newCustomerId))//check customer in group not not
                    {
                        //check request in cache and add to cache
                        foreach (InviteGroupRequest request in m_InviteGroupRequestDict.Values)
                        {
                            m_InviteGroupRequestDict.TryAdd(request.Id, request);
                        }
                        //checkrequest in DB
                        Dictionary <string, InviteGroupRequest> dict = m_adapter.GetGroupRequest(newCustomerId);
                        foreach (InviteGroupRequest request in dict.Values)
                        {
                            if (request.Receiver.Equals(newCustomerId) && request.GroupId.Equals(groupId))
                            {
                                return(new ChatResult <InviteGroupRequest>(false, "Request is already sent", null));
                            }
                        }

                        InviteGroupRequest newrequest = new InviteGroupRequest(Guid.NewGuid().ToString(), myCustomerId, newCustomerId, groupId, DateTime.Now);
                        newrequest.GroupName = gr.GroupName;
                        m_InviteGroupRequestDict.TryAdd(newrequest.Id, newrequest);
                        m_adapter.InviteToGroupRequest(newrequest);//DB
                        return(new ChatResult <InviteGroupRequest>(true, null, newrequest));
                    }
                    return(new ChatResult <InviteGroupRequest>(false, "Customer is already in group.", null));
                }
                return(new ChatResult <InviteGroupRequest>(false, "Group not found.", null));
            }
            return(new ChatResult <InviteGroupRequest>(false, "Your ID doens't exist.", null));
        }
Example #9
0
        public ChatResult InviteToGroupRespond(string requestId, bool agree)
        {
            InviteGroupRequest request = Manager.Instance.GetGroupRequestById(requestId);

            if (request == null)
            {
                return(new ChatResult(false, "Request not found."));
            }
            string groupId    = request.GroupId;
            string senderId   = request.Sender;
            string receiverId = request.Receiver;

            ChatResult result = Manager.Instance.InviteToGroupRespond(Context.ConnectionId, requestId, agree);

            if (result.Success)
            {
                GroupInfo group = GetGroupByGroupId(groupId);
                if (group != null)
                {
                    if (agree)
                    {
                        List <string> memberIdList = group.CustomerList;
                        foreach (string memberId in memberIdList)
                        {
                            CustomerInfo cus = Manager.Instance.GetCustomerByCustomerId(memberId);
                            Clients.Clients(cus.ConnectionList).OnInviteToGroupRespond(receiverId, group, agree);
                        }
                    }
                    else
                    {
                        CustomerInfo cus = Manager.Instance.GetCustomerByCustomerId(senderId);
                        Clients.Clients(cus.ConnectionList).OnInviteToGroupRespond(receiverId, group, agree);
                    }
                }
            }
            return(result);
        }
Example #10
0
        private void ExecuteInviteGroupRequest(InviteGroupRequest request)
        {
            RespondForm invitegroupForm = new RespondForm(1, request);

            invitegroupForm.Show();
        }
Example #11
0
 public static bool AddGroupRequest(InviteGroupRequest request)
 {
     return(ObjectController.DataProvider.AddGroupRequest(request));
 }
Example #12
0
 public void InviteToGroupRequest(InviteGroupRequest request)
 {
     DBManager.Instance.Enqueue(new DBQueueObject(EnqueueType.InviteGroupRequest, request));
 }