示例#1
0
        public static void CleanSesiones()
        {
            SesionRetriever    sesRet      = new SesionRetriever();
            List <SesionModel> lstSesiones = new List <SesionModel>();

            foreach (var sesion in sesRet?.GetAll())
            {
                lstSesiones.Add(sesion);
            }
            var sesionesTerminadas = lstSesiones?.Where(x => x.TiempoInicial + x.Duracion < DateTime.Now);

            if (sesionesTerminadas != null)
            {
                foreach (var sesionTerminada in sesionesTerminadas)
                {
                    sesRet.Delete(sesionTerminada.Id);
                }
            }
        }
示例#2
0
        public static SesionVal CreateSesion(UsuarioModel usuario, TimeSpan duracion)
        {
            Random          rnd    = new Random();
            SesionRetriever sesRet = new SesionRetriever();
            SesionModel     sesion = sesRet.GetByUsuarioId(usuario.Id);

            if (sesion == null)
            {
                var valueCalculated = new Converter().
                                      Encrypt256(usuario.Nombre + usuario.Id + (rnd.Next(13, 65535)).ToString());
                sesion = new SesionModel
                {
                    Key           = SESION_ALIAS2,
                    Value         = valueCalculated,
                    TiempoInicial = DateTime.Now,
                    Isonline      = true,
                    Id            = 0,
                    Usuario_id    = usuario.Id,
                    Duracion      = duracion
                };
                sesion = sesRet.Register(sesion);
            }
            else
            {
                sesion.TiempoInicial = DateTime.Now;
                sesRet.Update(sesion);
            }

            CookieModel cookie = new CookieModel
            {
                Key   = sesion.Key,
                Value = sesion.Value
            };

            return(new SesionVal(cookie));
        }