public void Copy(int YearFrom, int YearTo, string type)
        {
            ISQLQuery query = GetCurrentSession().CreateSQLQuery("exec [dbo].[CopyHolidayProfile] :yearFrom , :yearTo , :type ");

            query.SetInt32("yearFrom", YearFrom);
            query.SetInt32("yearTo", YearTo);
            query.SetString("type", type);
            query.AddScalar("count", NHibernateUtil.Int32).UniqueResult();
        }
        public WorkFlowStateEvent GetSendDraftStateEvent(int workFlowTypeID)
        {
            StringBuilder strQuery = new StringBuilder();

            strQuery.AppendLine(" select workflowstateevent.* ");
            strQuery.AppendLine(" from workflowstateevent  ");
            strQuery.AppendLine(" inner join workflowstate ");
            strQuery.AppendLine(" on workflowstate.workflowstateid = workflowstateevent.workflowstateid ");
            strQuery.AppendLine(" where workflowstate.workflowtypeid = :workFlowTypeID ");
            strQuery.AppendLine(" and workflowstate.name = 'Draft' ");
            strQuery.AppendLine(" and workflowstateevent.name = 'Send' ");

            ISQLQuery query = GetCurrentSession().CreateSQLQuery(strQuery.ToString());

            query.SetInt32("workFlowTypeID", workFlowTypeID);
            query.AddEntity(typeof(WorkFlowStateEvent));
            IList <WorkFlowStateEvent> list = query.List <WorkFlowStateEvent>();

            if (list != null)
            {
                return(list[0]);
            }
            else
            {
                return(null);
            }
        }
        public IList <WorkFlowStateEventWithLang> FindByWorkFlowStateEventByStateID(int workFlowStateID, short languageID)
        {
            StringBuilder strQuery = new StringBuilder();

            strQuery.AppendLine(" SELECT wse.WorkFlowStateEventID as EventID , wse.Name , wsel.DisplayName , wse.UserControlPath ");
            strQuery.AppendLine(" FROM WorkFlowState ws ");
            strQuery.AppendLine(" INNER JOIN WorkFlowStateEvent wse ");
            strQuery.AppendLine(" ON ws.WorkFlowStateID = wse.WorkFlowStateID ");
            strQuery.AppendLine(" INNER JOIN WorkFlowStateEventLang wsel ");
            strQuery.AppendLine(" ON wse.WorkFlowStateEventID = wsel.WorkFlowStateEventID AND wsel.LanguageID = :LanguageID ");
            strQuery.AppendLine(" WHERE ws.WorkFlowStateID = :WorkFlowStateID");
            strQuery.AppendLine(" AND ws.Active = '1'");
            strQuery.AppendLine(" AND wse.Active = '1'");
            strQuery.AppendLine(" ORDER BY ws.Name ");

            ISQLQuery query = GetCurrentSession().CreateSQLQuery(strQuery.ToString());

            query.SetInt16("LanguageID", languageID);
            query.SetInt32("WorkFlowStateID", workFlowStateID);
            query.AddScalar("EventID", NHibernateUtil.Int64);
            query.AddScalar("Name", NHibernateUtil.String);
            query.AddScalar("DisplayName", NHibernateUtil.String);
            query.AddScalar("UserControlPath", NHibernateUtil.String);
            query.SetResultTransformer(Transformers.AliasToBean(typeof(WorkFlowStateEventWithLang)));
            return(query.List <WorkFlowStateEventWithLang>());
        }
        public bool CheckDay(DateTime checkDay, string type)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("SELECT count(*) as Count FROM DbHolidayProfile  hp INNER JOIN DbHoliday h ON hp.Id = h.HolidayProfileId where hp.IsApprove = 1 AND hp.Year = :Year AND h.Date = :Date AND hp.Type = :Type");
            ISQLQuery query = GetCurrentSession().CreateSQLQuery(sql.ToString());

            query.SetInt32("Year", checkDay.Year);
            query.SetDateTime("Date", checkDay.Date);
            query.SetString("Type", type);
            query.AddScalar("Count", NHibernateUtil.Int32);
            int count = query.UniqueResult <Int32>();

            if (count > 0 || (checkDay.DayOfWeek == DayOfWeek.Saturday || checkDay.DayOfWeek == DayOfWeek.Sunday))
            {
                return(true);
            }
            return(false);
        }
        public IList <WorkFlowStateEvent> FindWorkFlowStateEvent(string WorkFlowStateName, string WorkFlowStateEventName, int WorkFlowTypeID)
        {
            StringBuilder strQuery = new StringBuilder();

            strQuery.AppendLine(" SELECT t2.WorkFlowStateEventID AS WorkFlowStateEventID ");
            strQuery.AppendLine(" FROM WorkFlowState t1 ");
            strQuery.AppendLine(" INNER JOIN WorkFlowStateEvent t2 ");
            strQuery.AppendLine(" ON t1.WorkFlowStateID = t2.WorkFlowStateID            ");
            strQuery.AppendLine(" WHERE t1.[Name]           = :WorkFlowStateEventName        ");
            strQuery.AppendLine(" AND   t2.[Name]           = :WorkFlowStateName   ");
            strQuery.AppendLine(" AND   t1.WorkFlowTypeID   = :WorkFlowTypeID           ");

            ISQLQuery query = GetCurrentSession().CreateSQLQuery(strQuery.ToString());

            query.SetString("WorkFlowStateName", WorkFlowStateName);
            query.SetString("WorkFlowStateEventName", WorkFlowStateEventName);
            query.SetInt32("WorkFlowTypeID", WorkFlowTypeID);

            query.AddScalar("WorkFlowStateEventID", NHibernateUtil.Int32);

            query.SetResultTransformer(Transformers.AliasToBean(typeof(WorkFlowStateEvent)));
            return(query.List <WorkFlowStateEvent>());
        }