NHUpdInfoRepository.cs 2.18 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ControlPanel.Interfaces.Reposytorys;
using ControlPanel.Models;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Criterion;
using NHibernate.Tool.hbm2ddl;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Automapping;

namespace ControlPanel.NHInplimentRepository
{
    public class NHUpdInfoRepository : NHMainRepository<UpdInfo>, IUpdInfoRepository
    {


        IList<UpdInfo> IUpdInfoRepository.GetLog(int start, int limit)
        {
            IList<UpdInfo> list;
            using (ISession session = GetNHBSession())
            {
                session.BeginTransaction();

                list = session.CreateCriteria(typeof(UpdInfo))
                        .SetFirstResult(start)
                        .SetMaxResults(limit - start + 1)
                        .List<UpdInfo>();


                session.Transaction.Commit();
            }
            return list;
        }





        int IUpdInfoRepository.Count()
        {

            int count = 0;

            using (ISession session = GetNHBSession())
            {
                session.BeginTransaction();

                var rowCount = session.CreateCriteria(typeof(UpdInfo))
                     .SetProjection(Projections.RowCount()).FutureValue<Int32>();
                try
                {
                    count = rowCount.Value;
                }
                catch (Exception)
                {
                }
                session.Transaction.Commit();
            }
            return count;

        }


        UpdInfo IUpdInfoRepository.GetBySubscriber(Subscribers subscriber)
        {
            UpdInfo result = null;

            IList<UpdInfo> list = null;

            using (ISession session = GetNHBSession())
            {
                session.BeginTransaction();

                list = session.CreateCriteria(typeof(UpdInfo))
                     .Add(Restrictions.Eq("RefUpdInfoSzs", subscriber)).List<UpdInfo>();
                if (list.Count != 0)
                    result = list[0];

                session.Transaction.Commit();
            }
            return result;


        }


    }
}