public MemoryLine Delete(MemoryLine entity)
        {
            using (ISession session = SessionFactory.OpenSession())
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.Delete(entity);

                    transaction.Commit();
                }

            return(entity);
        }
        public MemoryLine GetMemoryWithGuestList(Guid id)
        {
            MemoryLine entity;

            MemoryLine memoryLineAlias = null;
            User       guestAlias      = null;

            using (ISession session = SessionFactory.OpenSession())
            {
                entity = session.QueryOver(() => memoryLineAlias)
                         .JoinAlias(() => memoryLineAlias.Guests, () => guestAlias)
                         .Where(() => memoryLineAlias.Id == id)
                         .SingleOrDefault();
            }

            return(entity);
        }
        public List <MemoryLine> GetByUser(Guid id)
        {
            IList <MemoryLine> entity;

            using (ISession session = SessionFactory.OpenSession())
            {
                MemoryLine memoryLineAlias = null;
                User       hostAlias       = null;
                User       guestAlias      = null;

                //TODO: Validate
                entity = session.QueryOver(() => memoryLineAlias)
                         .JoinAlias(() => memoryLineAlias.Host, () => hostAlias)
                         .Left.JoinAlias(() => memoryLineAlias.Guests, () => guestAlias)
                         .Where(() => hostAlias.Id == id || guestAlias.Id == id)
                         .OrderBy(x => x.CreatedAt)
                         .Desc
                         .List();
            }

            return(entity as List <MemoryLine>);
        }