Beispiel #1
0
        private static IEnumerable <TimeWarpUser> GetUsersFromRepository(ITimeWarpStateCalculator timeWarpStateCalculator)
        {
            IList <TimeWarpUserState> userStates;

            //todo: optimize this crap.
            using (var session = new NHibernateSessionPerRequest <TimeWarpUserStateClassMap>())
            {
                var accountRespository = new TimeWarpAccountRepository(session.GetCurrentSession());
                var accounts           = accountRespository.GetAll();

                var userStateRepository = new TimeWarpUserStateRepository(session.GetCurrentSession());

                userStates = new List <TimeWarpUserState>();
                foreach (var account in accounts)
                {
                    var latestState = userStateRepository.GetLatestStateByAccountId(account.Id);
                    if (latestState != null)
                    {
                        NHibernateUtil.Initialize(latestState.Account);
                        userStates.Add(userStateRepository.GetLatestStateByAccountId(account.Id));
                    }
                }
            }

            return(userStates.Select(x => new TimeWarpUser(x, timeWarpStateCalculator)));
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
            NHibernateSessionPerRequest.InsertDataFixtures();
        }
 public void SaveState(TimeWarpUserState newState)
 {
     //this should probably be on a new thread...and exception handling. logging ..etc
     using (var session = new NHibernateSessionPerRequest <TimeWarpUserStateClassMap>())
     {
         var repository = new TimeWarpUserStateRepository(session.GetCurrentSession());
         repository.Add(newState);
     }
 }
Beispiel #4
0
        // GET api/values
        public IEnumerable <RoomInfo> Get()
        {
            IList <Domain.Entities.Room> rooms;

            using (var session = new NHibernateSessionPerRequest <RoomClassMap>())
            {
                RoomRepository roomRepository = new RoomRepository(session.GetCurrentSession());

                rooms = roomRepository.GetAll();
            }

            return(rooms.Select(r => r.ConvertToPublicV001()));
        }
        /// <summary>
        /// Método que se lanza antes que se ejecute la acción del controlador.
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var properties = filterContext.Controller.GetType().GetProperties();

            foreach (var item in properties)
            {
                //Si implementa la interfaz IService le asignamos la sesión.
                var isService = item.GetValue(filterContext.Controller, null).GetType().GetInterfaces().Any(x => x.Name.Equals(typeof(IService).Name));
                if (!isService)
                {
                    continue;
                }

                var service = (IService)item.GetValue(filterContext.Controller, null);
                service.SessionFactory = NHibernateSessionPerRequest.GetSessionFactory();
            }
        }
Beispiel #6
0
 public static ISession GetCurrentSession()
 {
     return(NHibernateSessionPerRequest.GetCurrentSession());
 }
Beispiel #7
0
 public Repository()
 {
     session = NHibernateSessionPerRequest.GetCurrentSession();
 }