Пример #1
0
        public SpectrumViewVisualizeEventArgs (NHibernate.ISession session, SpectrumTableForm.PeptideSpectrumMatchRow row)
        {
            PeptideSpectrumMatchId = row.PeptideSpectrumMatchId;
            Spectrum = row.Spectrum;
            SpectrumSource = row.Source;
            Analysis = row.Analysis;
            Charge = row.Charge;

            lock (session)
            {
                var psm = session.Load<PeptideSpectrumMatch>(PeptideSpectrumMatchId);
                ModifiedSequence = psm.ToModifiedString(5);
                session.Evict(psm);
            }
        }
Пример #2
0
        public static void AddSubsetPeakData (NHibernate.ISession session)
        {
            session.Transaction.Begin();
            session.Clear();
            foreach (SpectrumSource source in session.Query<SpectrumSource>())
            {
                var subsetPeakData = new msdata.MSData();
                subsetPeakData.id = subsetPeakData.run.id = source.Name;
                var spectrumList = new msdata.SpectrumListSimple();
                subsetPeakData.run.spectrumList = spectrumList;

                foreach (Spectrum spectrum in source.Spectra.OrderBy(o => o.Index))
                {
                    var spectrumData = new msdata.Spectrum();
                    spectrumData.id = spectrum.NativeID;
                    spectrumData.index = spectrum.Index;
                    spectrumData.setMZIntensityArrays(new List<double>() { 100, 200, 300, 400, 500 },
                                                      new List<double>() { 10, 20, 30, 40, 50 });
                    spectrumList.spectra.Add(spectrumData);
                }

                session.Evict(source);
                var newSource = new SpectrumSource(subsetPeakData)
                {
                    Id = source.Id,
                    Group = source.Group,
                    Name = source.Name,
                    URL = source.URL
                };
                session.Update(newSource);
            }
            session.Transaction.Commit();
        }
        /// <summary>
        /// Initialize Collection or Proxy
        /// ���ⲿInitialize��Ĭ��LockMode=Write�����ΪNone������д���ݿ⡣Lock��Ҫ��Evict
        /// </summary>
        /// <param name="proxy"></param>
        /// <param name="owner"></param>
        /// <param name="session"></param>
        internal static void Initialize(object proxy, object owner, NHibernate.ISession session)
        {
            if (null == proxy)
                return;

            if (!NHibernateUtil.IsInitialized(proxy))
            {
                if (proxy is INHibernateProxy)
                {
                    session.Lock(proxy, NHibernate.LockMode.None);
                    NHibernateUtil.Initialize(proxy);
                    session.Evict(proxy);
                }
                else if (proxy is IPersistentCollection)
                {
                    bool b = session.Contains(owner);
                    if (!b)
                    {
                        session.Lock(owner, NHibernate.LockMode.None);
                    }
                    NHibernateUtil.Initialize(proxy);
                    if (!b)
                    {
                        session.Evict(owner);
                    }
                }

                //if (proxy is INHibernateProxy || proxy is IPersistentCollection)
                //{
                //    if (proxy is INHibernateProxy) session.Lock(proxy, NHibernate.LockMode.None);
                //    else if (!session.Contains(owner)) session.Lock(owner, NHibernate.LockMode.None);

                //    NHibernateUtil.Initialize(proxy);
                //}
            }
        }