public virtual DateTime GetServerDateTime()
        {
            DetachedNamedQuery dnq    = new DetachedNamedQuery("BaseReadOnlyDao.GetServerDateTime");
            DateTime           result = dnq.GetExecutableQuery(Session).UniqueResult <DateTime>();

            return(result);
        }
        protected virtual DetachedNamedQuery GetDetachedNamedQuery(string queryName, object parameters)
        {
            DetachedNamedQuery dnq = new DetachedNamedQuery(queryName);

            Samsara.Framework.Util.NHibernateUtil.SetDetachedNamedQueryParameters(dnq, parameters);
            return(dnq);
        }
예제 #3
0
        public virtual T GetByParameters(Tpmt parameters)
        {
            DetachedNamedQuery dnq = this.GetDetachedNamedQuery(
                typeof(T).Name + ".GetByParameters", parameters);

            return(dnq.GetExecutableQuery(Session).UniqueResult <T>());
        }
예제 #4
0
        private IList GetGenericListByParameters(string queryName, Tpmt parameters)
        {
            DetachedNamedQuery dnq = this.GetDetachedNamedQuery(queryName, parameters);

            dnq.SetResultTransformer(new NativeSQLTransformer());
            return(this.GetGenericList(dnq));
        }
예제 #5
0
        public virtual IList <T> GetListByParameters(Tpmt parameters)
        {
            DetachedNamedQuery dnq = this.GetDetachedNamedQuery(
                typeof(T).Name + ".GetListByParameters", parameters);

            return(this.GetList(dnq));
        }
예제 #6
0
        protected virtual DetachedNamedQuery GetDetachedNamedQuery(string queryName, Tpmt parameters)
        {
            DetachedNamedQuery dnq = new DetachedNamedQuery(queryName);

            NHibernateUtil.SetDetachedNamedQueryParameters(dnq, parameters);
            return(dnq);
        }
예제 #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="queryRowsCount"></param>
 public NamedQueryRowsCounter(string queryRowsCount)
 {
     if (string.IsNullOrEmpty(queryRowsCount))
     {
         throw new ArgumentNullException("queryRowsCount");
     }
     detachedQuery = new DetachedNamedQuery(queryRowsCount);
 }
        public void UsingParametersTemplate()
        {
            var          q  = new DetachedNamedQuery("Foo.Parameters");
            IRowsCounter rc = new NamedQueryRowsCounter("Foo.Count.Parameters", q);

            q.SetString("p1", "%1_");
            SessionFactory.EncloseInTransaction(s => Assert.That(rc.GetRowsCount(s), Is.EqualTo(5)));
        }
        public void CtorProtection()
        {
            string             nothing = null;
            DetachedNamedQuery dq      = null;

            Assert.Throws <ArgumentNullException>(() => new NamedQueryRowsCounter(nothing));
            Assert.Throws <ArgumentNullException>(() => new NamedQueryRowsCounter(dq));
        }
예제 #10
0
        public NamedQueryRowsCounter(DetachedNamedQuery queryRowsCount)
        {
            if (queryRowsCount == null)
            {
                throw new ArgumentNullException("queryRowsCount");
            }

            detachedQuery = queryRowsCount;
        }
예제 #11
0
        public void RowsCountUsingParameters()
        {
            DetachedNamedQuery q = new DetachedNamedQuery("Foo.Count.Parameters");

            q.SetString("p1", "%1_");
            IRowsCounter rc = new NamedQueryRowsCounter(q);

            using (ISession s = OpenSession())
            {
                Assert.AreEqual(5, rc.GetRowsCount(s));
            }
        }
        public void ResultTransformer()
        {
            IDetachedQuery dq = new DetachedNamedQuery("NoFoo.SQL.Parameters");

            dq.SetString("p1", "%1_")
            .SetResultTransformer(new AliasToBeanResultTransformer(typeof(NoFoo)));
            using (ISession s = OpenSession())
            {
                IQuery        q = dq.GetExecutableQuery(s);
                IList <NoFoo> l = q.List <NoFoo>();
                Assert.AreEqual(5, l.Count);
            }
        }
예제 #13
0
        /// <summary>
        /// Create a <see cref="DetachedNamedQuery"/>  by queryName with parameters.
        /// </summary>
        /// <param name="queryName">실행할 쿼리명</param>
        /// <param name="parameters">파라미터</param>
        /// <returns>쿼리 객체</returns>
        public static IDetachedQuery CreateDetachedNamedQuery(string queryName, params INHParameter[] parameters)
        {
            queryName.ShouldNotBeWhiteSpace("queryName");

            var detachedNamedQuery = new DetachedNamedQuery(queryName);

            if (parameters != null && parameters.Length > 0)
            {
                SetDetachedQueryParameters(detachedNamedQuery, parameters);
            }

            return(detachedNamedQuery);
        }
예제 #14
0
        private SqlFileStream GetSqlFileStream(int tenderFileId, ISession session, FileAccess fileAccess)
        {
            TenderFileParameters pmtTenderFile = new TenderFileParameters();

            pmtTenderFile.TenderFileId = tenderFileId;

            DetachedNamedQuery dnq = this.GetDetachedNamedQuery("GetTenderFileStreamContext", pmtTenderFile);

            Object[] objTenderFileStreamContext = dnq.GetExecutableQuery(session).UniqueResult() as Object[];

            string filePath = objTenderFileStreamContext[0] as string;

            byte[] txContext = objTenderFileStreamContext[1] as Byte[];

            return(new SqlFileStream(filePath, txContext, fileAccess));
        }
예제 #15
0
        public static void SetDetachedNamedQueryParameters(DetachedNamedQuery dnq, object parameters)
        {
            object parameterValue;
            Type   nullableType;

            if (parameters == null)
            {
                return;
            }

            foreach (PropertyInfo pInfo in parameters.GetType().GetProperties())
            {
                parameterValue = pInfo.GetValue(parameters, null);
                nullableType   = Nullable.GetUnderlyingType(pInfo.PropertyType);
                if (parameterValue != null)
                {
                    if (pInfo.PropertyType.IsAssignableFrom(typeof(int)))
                    {
                        dnq.SetInt32(pInfo.Name, (int)parameterValue);
                    }
                    else if (pInfo.PropertyType.IsAssignableFrom(typeof(bool)))
                    {
                        dnq.SetBoolean(pInfo.Name, (bool)parameterValue);
                    }
                    else if (pInfo.PropertyType.IsAssignableFrom(typeof(DateTime)))
                    {
                        dnq.SetDateTime(pInfo.Name, (DateTime)parameterValue);
                    }
                    else if (pInfo.PropertyType.IsAssignableFrom(typeof(string)))
                    {
                        dnq.SetString(pInfo.Name, parameterValue.ToString());
                    }
                    else if (nullableType != null && nullableType.IsEnum)
                    {
                        dnq.SetInt32(pInfo.Name, (int)parameterValue);
                    }
                    else
                    {
                        dnq.SetParameter(pInfo.Name, parameterValue);
                    }
                }
            }
        }
        public void ExecutableNamedQuery()
        {
            IDetachedQuery dq = new DetachedNamedQuery("Foo.WithParameters");

            dq.SetString("pn", "N2");
            using (ISession s = OpenSession())
            {
                IQuery      q = dq.GetExecutableQuery(s);
                IList <Foo> l = q.List <Foo>();
                Assert.AreEqual(1, l.Count);
                Assert.AreEqual("N2", l[0].Name);
                Assert.AreEqual("D2", l[0].Description);
            }
            // reusing same IDetachedQuery
            dq.SetString("pn", "@All@");
            using (ISession s = OpenSession())
            {
                IQuery q = dq.GetExecutableQuery(s);
                IList  l = q.List();
                Assert.AreEqual(totalFoo, l.Count);
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="origin"></param>
 /// <returns></returns>
 public IRowsCounter CopyParametersFrom(DetachedNamedQuery origin)
 {
     origin.SetParametersTo(dq);
     return(this);
 }
예제 #18
0
        public virtual IList <T> GetListByParameters(string queryName, Tpmt parameters)
        {
            DetachedNamedQuery dnq = this.GetDetachedNamedQuery(queryName, parameters);

            return(this.GetList(dnq));
        }
예제 #19
0
 public IList <TType> GetList <TType>(DetachedNamedQuery dnq)
 {
     return(dnq.GetExecutableQuery(Session).List <TType>());
 }
예제 #20
0
        public IList GetGenericListByParameters(string queryName, Tpmt parameters)
        {
            DetachedNamedQuery dnq = this.GetDetachedNamedQuery(queryName, parameters);

            return(this.GetObjectList(dnq));
        }
예제 #21
0
 public IList GetObjectList(DetachedNamedQuery dnq)
 {
     return(dnq.GetExecutableQuery(Session).List());
 }
예제 #22
0
 private IList GetGenericList(DetachedNamedQuery dnq)
 {
     return(dnq.GetExecutableQuery(Session).List());
 }
예제 #23
0
 private IList <T> GetList(DetachedNamedQuery dnq)
 {
     return(dnq.GetExecutableQuery(Session).List <T>());
 }
예제 #24
0
 public NamedQueryRowsCounter(string queryRowsCount, DetachedNamedQuery origin)
     : this(queryRowsCount)
 {
     this.origin = origin;
 }