public static int GetQueryCount(NHibernate.ISession session, DataFilter dataFilter) { if (dataFilter.Spectrum != null && dataFilter.Spectrum.Count == 1) { dataFilter = new DataFilter(dataFilter) { AminoAcidOffset = null, Modifications = null, ModifiedSite = null, Cluster = null, Protein = null }; } string sql = SqlQueryCount + dataFilter.GetFilteredSqlWhereClause(); lock (session) return Convert.ToInt32(session.CreateSQLQuery(sql).UniqueResult()); }
public static NHibernate.IQuery GetQuery(NHibernate.ISession session, DataFilter dataFilter) { if (dataFilter.Spectrum != null && dataFilter.Spectrum.Count == 1 || dataFilter.Peptide != null && dataFilter.Peptide.Count == 1 || dataFilter.DistinctMatchKey != null && dataFilter.DistinctMatchKey.Count == 1) { var basicFilter = new DataFilter(dataFilter) { AminoAcidOffset = null, Cluster = null, Protein = null }; if (dataFilter.Spectrum != null) { basicFilter.Modifications = null; basicFilter.ModifiedSite = null; } string sql = String.Format(SqlQueryFormat, basicFilter.GetFilteredSqlWhereClause()); return session.CreateSQLQuery(sql) .AddEntity("s", typeof (Spectrum)) .AddEntity("ss", typeof (SpectrumSource)) .AddEntity("ssg", typeof (SpectrumSourceGroup)) .AddEntity("a", typeof (Analysis)) .AddScalar("Id", NHibernate.NHibernateUtil.Int64) .AddScalar("Rank", NHibernate.NHibernateUtil.Int32) .AddScalar("Charge", NHibernate.NHibernateUtil.Int32) .AddScalar("QValue", NHibernate.NHibernateUtil.Double) .AddScalar("ObservedNeutralMass", NHibernate.NHibernateUtil.Double) .AddScalar("MonoisotopicMassError", NHibernate.NHibernateUtil.Double) .AddScalar("MolecularWeightError", NHibernate.NHibernateUtil.Double) .AddScalar("DistinctMatchKey", NHibernate.NHibernateUtil.String) .AddScalar("Sequence", NHibernate.NHibernateUtil.String); } string hql = HqlQueryFormat + dataFilter.GetFilteredQueryString(DataFilter.FromPeptideSpectrumMatch, DataFilter.PeptideSpectrumMatchToPeptideInstance, DataFilter.PeptideSpectrumMatchToModification, DataFilter.PeptideSpectrumMatchToSpectrumSourceGroup, DataFilter.PeptideSpectrumMatchToAnalysis) + "GROUP BY psm.Id"; return session.CreateQuery(hql); }