Beispiel #1
0
        public void appServer_NewSessionConnected(WebSocketSession session)
        {
            try
            {
                var GroupId = session.Path.Split(',')[1].Split(':')[1];
                var UserId  = session.Path.Split(',')[0].Split(':')[1];

                using (LystenEntities db = new LystenEntities())
                {
                    int gid = Convert.ToInt32(GroupId);
                    int uid = Convert.ToInt32(UserId);


                    var obj = db.Groups.Where(x => x.Id == gid).FirstOrDefault();
                    if (obj.GroupTypeId == 1)
                    {
                        if (!db.Groups.Any(x => x.CreatorId == uid && x.Id == gid))
                        {
                            if (!db.UserGroupMappings.Any(x => x.UserId == uid && x.GroupId == gid))
                            {
                                UserGroupMapping ugm = new UserGroupMapping()
                                {
                                    GroupId = gid,
                                    UserId  = uid
                                };
                                db.UserGroupMappings.Add(ugm);
                                db.SaveChanges();
                            }
                        }
                    }
                    WebSocketSessionDb webs = new WebSocketSessionDb();

                    if (db.WebSocketSessionDbs.Any(x => x.GroupID == gid && x.UserId == uid))
                    {
                        webs                 = db.WebSocketSessionDbs.Where(x => x.GroupID == gid && x.UserId == uid).FirstOrDefault();
                        webs.GroupID         = Convert.ToInt32(GroupId);
                        webs.UserId          = Convert.ToInt32(UserId);
                        webs.SessionId       = session.SessionID;
                        db.Entry(webs).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        webs.GroupID   = Convert.ToInt32(GroupId);
                        webs.UserId    = Convert.ToInt32(UserId);
                        webs.SessionId = session.SessionID;
                        db.WebSocketSessionDbs.Add(webs);
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                CommonServices.ErrorLogging(ex);
            }
        }
Beispiel #2
0
        public override void OnOpen()
        {
            try
            {
                clients.Add(this);
                if (this.WebSocketContext.RequestUri.Query.Split(',')[1].Split(':').Contains("GroupId"))
                {
                    var GroupId = this.WebSocketContext.RequestUri.Query.Split(',')[1].Split(':')[1];
                    var UserId  = this.WebSocketContext.RequestUri.Query.Split(',')[0].Split(':')[1];
                    using (LystenEntities db = new LystenEntities())
                    {
                        int gid = Convert.ToInt32(GroupId);
                        int uid = Convert.ToInt32(UserId);

                        //var obj = db.Groups.Where(x => x.Id == gid).FirstOrDefault();
                        //if (obj.GroupTypeId == 1)
                        //{
                        //    if (!db.Groups.Any(x => x.CreatorId == uid && x.Id == gid))
                        //    {
                        //        if (!db.UserGroupMappings.Any(x => x.UserId == uid && x.GroupId == gid))
                        //        {
                        //            UserGroupMapping ugm = new UserGroupMapping()
                        //            {
                        //                GroupId = gid,
                        //                UserId = uid
                        //            };
                        //            db.UserGroupMappings.Add(ugm);
                        //            db.SaveChanges();
                        //        }
                        //    }
                        //}
                        WebSocketSessionDb webs = new WebSocketSessionDb();

                        if (db.WebSocketSessionDbs.Any(x => x.GroupID == gid && x.UserId == uid))
                        {
                            webs                 = db.WebSocketSessionDbs.Where(x => x.GroupID == gid && x.UserId == uid).FirstOrDefault();
                            webs.GroupID         = Convert.ToInt32(GroupId);
                            webs.UserId          = Convert.ToInt32(UserId);
                            webs.SessionId       = this.WebSocketContext.SecWebSocketKey;
                            db.Entry(webs).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        else
                        {
                            webs.GroupID   = Convert.ToInt32(GroupId);
                            webs.UserId    = Convert.ToInt32(UserId);
                            webs.SessionId = this.WebSocketContext.SecWebSocketKey;
                            db.WebSocketSessionDbs.Add(webs);
                            db.SaveChanges();
                        }
                    }
                }
                else
                {
                    var ReceiptionId = this.WebSocketContext.RequestUri.Query.Split(',')[1].Split(':')[1];
                    var UserId       = this.WebSocketContext.RequestUri.Query.Split(',')[0].Split(':')[1];
                    using (LystenEntities db = new LystenEntities())
                    {
                        int rid = Convert.ToInt32(ReceiptionId);
                        int uid = Convert.ToInt32(UserId);


                        WebSocketSessionDb webs = new WebSocketSessionDb();

                        if (db.WebSocketSessionDbs.Any(x => x.RecipientId == rid && x.UserId == uid))
                        {
                            webs                 = db.WebSocketSessionDbs.Where(x => x.RecipientId == rid && x.UserId == uid).FirstOrDefault();
                            webs.RecipientId     = Convert.ToInt32(rid);
                            webs.UserId          = Convert.ToInt32(UserId);
                            webs.SessionId       = this.WebSocketContext.SecWebSocketKey;
                            db.Entry(webs).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        else
                        {
                            webs.RecipientId = Convert.ToInt32(rid);
                            webs.UserId      = Convert.ToInt32(UserId);
                            webs.SessionId   = this.WebSocketContext.SecWebSocketKey;
                            db.WebSocketSessionDbs.Add(webs);
                            db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CommonServices.ErrorLogging(ex);
            }
        }