Beispiel #1
0
        public void AddSession(IPersonSession session)
        {
            var sessionImpl = (Session)session;

            sessionImpl.BeginTime = Round(sessionImpl.BeginTime);

            lock (_sessionsLock)
            {
                var wrappers = LoadSessions();
                var wrapper = wrappers.FirstOrDefault(w => w.PersonId == session.PersonId);
                if (wrapper == null)
                    throw new Exception("Person not found");
                wrapper.Sessions = wrapper.Sessions.Add(sessionImpl);
                Save(wrappers);
            }
        }
Beispiel #2
0
        public void UpdateSession(IPersonSession session)
        {
            var sessionImpl = (Session)session;

            sessionImpl.BeginTime = Round(sessionImpl.BeginTime);
            if (sessionImpl.EndTime != null)
                sessionImpl.EndTime = Round(sessionImpl.EndTime.Value);

            lock (_sessionsLock)
            {
                // TODO: оптимизировать бы

                var wrappers = LoadSessions();
                var wrapper = wrappers.Where(w => w.Sessions != null).FirstOrDefault(w => w.Sessions.Any(s => s.Id == session.Id));
                if (wrapper == null)
                    throw new Exception("Session not found");
                var ss = wrapper.Sessions.First(s => s.Id == session.Id);
                wrapper.Sessions = wrapper.Sessions.Remove(ss);
                wrapper.Sessions = wrapper.Sessions.Add(sessionImpl);
                Save(wrappers);
            }
        }