public SessionClass(SESSIONS session, UserTypeClass userType)
 {
     id           = session.SESSION_ID;
     title        = session.TITLE;
     expectedDate = session.EXPECTED_DATE;
     lessons      = session.LESSONS
                    .OrderBy(s => s.ORDR)
                    .Select(l => new LessonClass(l, userType)).ToList();
 }
 /// <summary>
 /// 发送消息
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="content"></param>
 public void SendAll <T>(T obj)
 {
     SESSIONS.ForEach(session =>
     {
         if (!session.IsDisposable)
         {
             session.Send(obj);
         }
     });
 }
        /// <summary>
        /// 接受连接
        /// </summary>
        /// <param name="ar"></param>
        private void BeginAcceptConnection(IAsyncResult ar)
        {
            if (this.IsDisposable)
            {
                return;
            }
            var socket         = SOCKET_SERVER.EndAccept(ar);
            var remoteEndPoint = ((System.Net.IPEndPoint)socket.RemoteEndPoint);

            Log4netHelper.Debug($"{remoteEndPoint.Address.ToString()}连接到了本服务端");
            var session = new SocketSession(socket)
            {
                Id              = Guid.NewGuid().ToString(),
                RemoteEndPoint  = socket.RemoteEndPoint,
                ReceiveCallback = (obj, msg) =>
                {
                    try
                    {
                        ReceiveEvent(obj, msg);
                    }
                    catch (Exception ex)
                    {
                        Log4netHelper.Fatal($"服务端在执行ReceiveEvent事件时发生异常{Environment.NewLine}消息内容{msg}{Environment.NewLine}会话{JsonHelper.SerializeObject(obj)}", ex);
                    }
                },
                DisposeCallback = (obj) =>
                {
                    SESSIONS.Remove(obj);
                },
            };

            session.Start();
            SESSIONS.Add(session);
            SOCKET_SERVER.BeginAccept(new AsyncCallback(BeginAcceptConnection), null);
            AcceptConnectionEvent(session, null);
        }
        public HttpResponseMessage AddSession(int school_id, int class_id, int subject_id, int education_year_id, string title, string objective, short order)
        {
            try
            {
                using (Entities e = new Entities())
                {
                    var      pk       = e.SESSIONS.ToList().Count == 0 ? 0 : e.SESSIONS.Max(s => s.SESSION_ID);
                    SESSIONS _session = new SESSIONS()
                    {
                        SESSION_ID        = pk + 1,
                        SCHOOL_ID         = school_id,
                        CLASS_ID          = class_id,
                        SUBJECT_ID        = subject_id,
                        EDUCATION_YEAR_ID = education_year_id,
                        TITLE             = title,
                        OBJECTIVE         = objective,
                        ORDR = order
                    };
                    e.SESSIONS.Add(_session);
                    e.SaveChanges();

                    var session = new SessionClass(_session);
                    return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                    {
                        statusCode = 200, status = "Done", results = session
                    }));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                {
                    statusCode = 400, status = ex.Message
                }));
            }
        }
 public SessionClass(SESSIONS session)
 {
     id           = session.SESSION_ID;
     title        = session.TITLE;
     expectedDate = session.EXPECTED_DATE;
 }