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); } }
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); } }