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); } }
// 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(); } }
public static ISession GetCurrentSession() { return(NHibernateSessionPerRequest.GetCurrentSession()); }
public Repository() { session = NHibernateSessionPerRequest.GetCurrentSession(); }