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