Beispiel #1
0
 public static bool JoinChatRoom(Guid ChatRoomID, HttpContext context,
                                 string alias)
 {
     if (!ChatManager.IsRoomFull(ChatRoomID))
     {
         SessionDBDataContext db = new SessionDBDataContext();
         if (db.tblSessions.Count(
                 s => s.SessionID == context.Session.SessionID) == 0)
         {
             ChatManager.CreateSession(context, alias);
         }
         var session = ChatManager.GetSession(context);
         if (db.tblTalkers.Count(t => t.ChatRoomID == ChatRoomID &&
                                 t.SessionID == session.UID && t.CheckOutTime == null) > 0)
         {
             return(false);
         }
         else
         {
             tblTalker talker = new tblTalker();
             talker.ChatRoomID   = ChatRoomID;
             talker.CheckInTime  = DateTime.Now;
             talker.CheckOutTime = null;
             talker.SessionID    = session.UID;
             db.tblTalkers.InsertOnSubmit(talker);
             db.SubmitChanges();
             return(true);
         }
     }
     else
     {
         return(false);
     }
 }
 public static List<tblTalker> GetnetworkTalkerList(Guid wakeupnetworkID)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     var rsl = from d in db.tblTalkers
               where d.CheckOutTime == null && d.wakeupnetworkID == wakeupnetworkID
               select d;
     return rsl.ToList();
 }
Beispiel #3
0
        public static tblSession GetSession(HttpContext context)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            var session             = db.tblSessions.FirstOrDefault(
                s => s.SessionID == context.Session.SessionID);

            return(session);
        }
 public static tblTalker FindTalker(Guid wakeupnetworkID, HttpContext context)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     var rsl = db.tblTalkers.FirstOrDefault(
         t => t.wakeupnetworkID == wakeupnetworkID &&
         t.SessionID == wakeupManager.GetSession(context).UID);
     return rsl;
 }
Beispiel #5
0
        public static tblTalker FindTalker(Guid ChatRoomID, HttpContext context)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            var rsl = db.tblTalkers.FirstOrDefault(
                t => t.ChatRoomID == ChatRoomID &&
                t.SessionID == ChatManager.GetSession(context).UID);

            return(rsl);
        }
Beispiel #6
0
        public static List <tblTalker> GetRoomTalkerList(Guid ChatRoomID)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            var rsl = from d in db.tblTalkers
                      where d.CheckOutTime == null && d.ChatRoomID == ChatRoomID
                      select d;

            return(rsl.ToList());
        }
Beispiel #7
0
        private static void TryToDeleteChatMessageList(Guid roomid)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            var chatroom            = GetChatRoom(roomid);

            if (chatroom.tblTalkers.Count(t => t.CheckOutTime == null) == 0)
            {
                var list = from m in db.tblMessagePools
                           where m.tblTalker.ChatRoomID == roomid
                           select m;
                db.tblMessagePools.DeleteAllOnSubmit(list);
                db.SubmitChanges();
            }
        }
 public static Guid Createwakeupnetwork(string networkName, string password,
     bool isLock, int maxclientNumber, bool needPassword)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     tblwakeupnetwork network = new tblwakeupnetwork();
     network.wakeupnetworkID = Guid.NewGuid();
     network.wakeupnetworkName = networkName;
     network.wakeupnetworkPassword = password;
     network.IsLock = isLock;
     network.MaxclientNumber = maxclientNumber;
     network.NeedPassword = needPassword;
     db.tblwakeupnetworks.InsertOnSubmit(network);
     db.SubmitChanges();
     return network.wakeupnetworkID;
 }
Beispiel #9
0
        public static bool IsRoomFull(Guid roomID)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            var rsl = db.tblChatRooms.Single(room => room.ChatRoomID == roomID);

            if (rsl != null)
            {
                return(rsl.MaxUserNumber == rsl.tblTalkers.Count(
                           t => t.CheckOutTime == null));
            }
            else
            {
                return(false);
            }
        }
Beispiel #10
0
        public static List <tblMessagePool> RecieveMessage(tblChatRoom room)
        {
            SessionDBDataContext db = new SessionDBDataContext();

            if (db.tblMessagePools.Count(
                    msg => room.tblTalkers.Contains(msg.tblTalker)) > 0)
            {
                return((from messages in db.tblMessagePools
                        where messages.tblTalker.ChatRoomID == room.ChatRoomID
                        select messages).ToList());
            }
            else
            {
                return(null);
            }
        }
Beispiel #11
0
        public static Guid CreateChatRoom(string roomName, string password,
                                          bool isLock, int maxUserNumber, bool needPassword)
        {
            SessionDBDataContext db   = new SessionDBDataContext();
            tblChatRoom          room = new tblChatRoom();

            room.ChatRoomID       = Guid.NewGuid();
            room.ChatRoomName     = roomName;
            room.ChatRoomPassword = password;
            room.IsLock           = isLock;
            room.MaxUserNumber    = maxUserNumber;
            room.NeedPassword     = needPassword;
            db.tblChatRooms.InsertOnSubmit(room);
            db.SubmitChanges();
            return(room.ChatRoomID);
        }
Beispiel #12
0
 public static bool SendMessage(tblTalker talker, string message)
 {
     try
     {
         SessionDBDataContext db      = new SessionDBDataContext();
         tblMessagePool       msgpool = new tblMessagePool();
         msgpool.message  = message;
         msgpool.SendTime = DateTime.Now;
         msgpool.talkerID = talker.TalkerID;
         db.tblMessagePools.InsertOnSubmit(msgpool);
         db.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #13
0
        public static void LeaveChatRoom(Guid ChatRoomID, HttpContext context)
        {
            SessionDBDataContext db      = new SessionDBDataContext();
            tblSession           session = ChatManager.GetSession(context);

            if (session != null)
            {
                var talker = db.tblTalkers.FirstOrDefault(
                    t => t.ChatRoomID == ChatRoomID &&
                    t.SessionID == session.UID && t.CheckOutTime == null);

                if (talker != null)
                {
                    talker.CheckOutTime = DateTime.Now;
                    db.SubmitChanges();
                }
            }
            TryToDeleteChatMessageList(ChatRoomID);
        }
        public static bool CreateSession(HttpContext context,
            string clientAlias)
        {
            try
            {
                SessionDBDataContext db = new SessionDBDataContext();

                tblSession session = new tblSession();
                session.SessionID = context.Session.SessionID;
                session.IP = context.Request.clientHostAddress;
                if (string.IsNullOrEmpty(clientAlias))
                    clientAlias = session.IP;
                session.clientAlias = clientAlias;
                db.tblSessions.InsertOnSubmit(session);
                db.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }
Beispiel #15
0
        public static bool CreateSession(HttpContext context,
                                         string userAlias)
        {
            try
            {
                SessionDBDataContext db = new SessionDBDataContext();

                tblSession session = new tblSession();
                session.SessionID = context.Session.SessionID;
                session.IP        = context.Request.UserHostAddress;
                if (string.IsNullOrEmpty(userAlias))
                {
                    userAlias = session.IP;
                }
                session.UserAlias = userAlias;
                db.tblSessions.InsertOnSubmit(session);
                db.SubmitChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
 public static tblSession GetSession(HttpContext context)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     var session = db.tblSessions.FirstOrDefault(
         s => s.SessionID == context.Session.SessionID);
     return session;
 }
 public static bool IsnetworkFull(Guid networkID)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     var rsl = db.tblwakeupnetworks.Single(network => network.wakeupnetworkID == networkID);
     if (rsl != null)
     {
         return rsl.MaxclientNumber == rsl.tblTalkers.Count(
             t => t.CheckOutTime == null);
     }
     else
     {
         return false;
     }
 }
 public static bool Joinwakeupnetwork(Guid wakeupnetworkID, HttpContext context,
     string alias)
 {
     if (!wakeupManager.IsnetworkFull(wakeupnetworkID))
     {
         SessionDBDataContext db = new SessionDBDataContext();
         if (db.tblSessions.Count(
             s => s.SessionID == context.Session.SessionID) == 0)
         {
             wakeupManager.CreateSession(context, alias);
         }
         var session = wakeupManager.GetSession(context);
         if (db.tblTalkers.Count(t => t.wakeupnetworkID == wakeupnetworkID &&
             t.SessionID == session.UID && t.CheckOutTime == null) > 0)
         {
             return false;
         }
         else
         {
             tblTalker talker = new tblTalker();
             talker.wakeupnetworkID = wakeupnetworkID;
             talker.CheckInTime = DateTime.Now;
             talker.CheckOutTime = null;
             talker.SessionID = session.UID;
             db.tblTalkers.InsertOnSubmit(talker);
             db.SubmitChanges();
             return true;
         }
     }
     else
     {
         return false;
     }
 }
        public static void Leavewakeupnetwork(Guid wakeupnetworkID, HttpContext context)
        {
            SessionDBDataContext db = new SessionDBDataContext();
            tblSession session = wakeupManager.GetSession(context);
            if (session != null)
            {
                var talker = db.tblTalkers.FirstOrDefault(
                    t => t.wakeupnetworkID == wakeupnetworkID &&
                    t.SessionID == session.UID && t.CheckOutTime == null);

                if (talker != null)
                {
                    talker.CheckOutTime = DateTime.Now;
                    db.SubmitChanges();
                }
            }
            TryToDeletewakeupPacketList(wakeupnetworkID);
        }
 public static List<tblPacketPool> RecievePacket(tblwakeupnetwork network)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     if (db.tblPacketPools.Count(
         msg => network.tblTalkers.Contains(msg.tblTalker)) > 0)
     {
         return (from Packets in db.tblPacketPools
                 where Packets.tblTalker.wakeupnetworkID == network.wakeupnetworkID
                 select Packets).ToList();
     }
     else
     {
         return null;
     }
 }
Beispiel #21
0
        public static List <tblChatRoom> GetChatRoomList()
        {
            SessionDBDataContext db = new SessionDBDataContext();

            return(db.tblChatRooms.ToList());
        }
 public static bool SendPacket(tblTalker talker, string Packet)
 {
     try
     {
         SessionDBDataContext db = new SessionDBDataContext();
         tblPacketPool msgpool = new tblPacketPool();
         msgpool.Packet = Packet;
         msgpool.SendTime = DateTime.Now;
         msgpool.talkerID = talker.TalkerID;
         db.tblPacketPools.InsertOnSubmit(msgpool);
         db.SubmitChanges();
         return true;
     }
     catch
     {
         return false;
     }
 }
 public static List<tblwakeupnetwork> GetwakeupnetworkList()
 {
     SessionDBDataContext db = new SessionDBDataContext();
     return db.tblwakeupnetworks.ToList();
 }
 private static void TryToDeletewakeupPacketList(Guid networkid)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     var wakeupnetwork = Getwakeupnetwork(networkid);
     if (wakeupnetwork.tblTalkers.Count(t => t.CheckOutTime == null) == 0)
     {
         var list = from m in db.tblPacketPools
                    where m.tblTalker.wakeupnetworkID == networkid
                    select m;
         db.tblPacketPools.DeleteAllOnSubmit(list);
         db.SubmitChanges();
     }
 }
Beispiel #25
0
        public static tblChatRoom GetChatRoom(Guid roomid)
        {
            SessionDBDataContext db = new SessionDBDataContext();

            return(db.tblChatRooms.SingleOrDefault(r => r.ChatRoomID == roomid));
        }
 public static tblwakeupnetwork Getwakeupnetwork(Guid networkid)
 {
     SessionDBDataContext db = new SessionDBDataContext();
     return db.tblwakeupnetworks.SingleOrDefault(r => r.wakeupnetworkID == networkid);
 }