NHAgkRepository.cs 2.21 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;
using ControlPanel.Interfaces.Reposytorys;

namespace ControlPanel.NHInplimentRepository
{
    public class NHAgkRepository : NHMainRepository<Agk>, IAgkRepository
    {
      
        int IAgkRepository.Count()
        {
            int count=0;

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

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


        IList<Agk> IAgkRepository.GetLog(int start, int limit)
        {
            IList<Agk> list;

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

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

                session.Transaction.Commit();

            }
            return list;
        }
       


        
        Agk IAgkRepository.GetAgkByNumber(int number)
        {
            Agk agk = null ;
            using (ISession session = GetNHBSession())
            {
                session.BeginTransaction();
                     var result = session.CreateCriteria(typeof(Agk))
                                     .Add(Restrictions.Eq("number", number))
                                     .List<Agk>();
               agk=result.First() as Agk;

                session.Transaction.Commit();

            }
            return agk;
        }
    }
}