コード例 #1
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
        public static void Check(ossContext context, string sid, bool roleMustBeChosen = true)
        {
            if (string.IsNullOrEmpty(sid))
            {
                throw new ArgumentNullException(nameof(sid));
            }

            lock (LockMe)
            {
                context.CurrentSession = null;

                var entities = Purge(context).Where(s => s.Sessionid == sid);
                if (entities.Count() == 0)
                {
                    throw new Exception("Ismeretlen Sid vagy lejárt munkamenet!");
                }
                var entity = entities.First();

                if (roleMustBeChosen)
                {
                    if (entity.Particiokod == null || entity.Csoportkod == null)
                    {
                        throw new Exception("Bejelentkezés után kötelező szerepkört választani!");
                    }
                }

                // entity.ERVENYES = DateTime.Now.AddHours(1);
                entity.Ervenyes = entity.Ervenyes.AddMinutes(1);

                SessionDal.Update(context, entity);
                entity = SessionDal.Get(context, sid);

                context.CurrentSession = entity;
            }
        }
コード例 #2
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
        internal static string CreateNew(ossContext context, string ip, string host, string osUser,
                                         int felhasznaloKod, string felhasznalo, string azonosito, bool logol)
        {
            string result;

            lock (LockMe)
            {
                Purge(context);

                var entity = new Models.Session
                {
                    Sessionid = Guid.NewGuid().ToString(),

                    Felhasznalokod = felhasznaloKod,
                    Felhasznalo    = felhasznalo,
                    Azonosito      = azonosito,
                    Logol          = logol,

                    Ip     = ip,
                    Host   = host,
                    Osuser = osUser,

                    Ervenyes   = DateTime.Now.AddHours(8), //hűha
                    Letrehozva = DateTime.Now,
                };

                result = SessionDal.Add(context, entity);
                entity = SessionDal.Get(context, result);

                context.CurrentSession = entity;
            }

            return(result);
        }
コード例 #3
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
        public static SessionDto Get(ossContext context, string sid)
        {
            Check(context, sid);
            var entity = SessionDal.Get(context, sid);

            return(ObjectUtils.Convert <Models.Session, SessionDto>(entity));
        }
コード例 #4
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
 public static void Delete(ossContext context, string sid)
 {
     lock (LockMe)
     {
         var entity = SessionDal.Get(context, sid);
         SessionDal.Delete(context, entity);
     }
 }
コード例 #5
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
        private static List <Models.Session> Purge(ossContext model)
        {
            var entities = SessionDal.Read(model);
            var most     = DateTime.Now;
            var result   = new List <Models.Session>();

            foreach (var entity in entities)
            {
                if (entity.Ervenyes <= most)
                {
                    SessionDal.Delete(model, entity);
                }
                else
                {
                    result.Add(entity);
                }
            }

            return(result);
        }
コード例 #6
0
ファイル: SessionBll.cs プロジェクト: lagzikovacs/ossCore
        public static async Task UpdateRoleAsync(ossContext context, string sid, int particioKod, int csoportKod)
        {
            await CsoportDal.CheckSzerepkorAsync(context, particioKod, csoportKod);

            var entityParticio = ParticioDal.Get(context, particioKod);
            var entityCsoport  = await CsoportDal.GetAsync(context, csoportKod);

            lock (LockMe)
            {
                var entity = SessionDal.Get(context, sid);

                entity.Particiokod = particioKod;
                entity.Particio    = entityParticio.Megnevezes;
                entity.Csoportkod  = csoportKod;
                entity.Csoport     = entityCsoport.Csoport1;

                SessionDal.Update(context, entity);
                entity = SessionDal.Get(context, sid);

                context.CurrentSession = entity;
            }
        }