public ActionResult _MiUpdate(GridCommand command, WorkCalendar workCalendar, string NDateIndexTo, string NDateIndex
            , string NProductLine, DateTime? NDateIndexDate, DateTime? NDateIndexToDate, com.Sconit.CodeMaster.TimeUnit NDateType)
        {
            WorkCalendarSearchModel searchModel = new WorkCalendarSearchModel();
            searchModel.ProductLine = NProductLine;
            searchModel.DateType = (short)NDateType;
            searchModel.DateIndex = NDateIndex;
            searchModel.DateIndexTo = NDateIndexTo;
            searchModel.DateIndexDate = NDateIndexDate;
            searchModel.DateIndexToDate = NDateIndexToDate;

            WorkCalendar newWorkCalendar = genericMgr.FindAll<WorkCalendar>(" from WorkCalendar as w where  w.DateIndex=? and w.Flow=? and w.DateType=? ", new object[] { workCalendar.DateIndex, workCalendar.Flow, workCalendar.DateType })[0];
            if (workCalendar.DateType == com.Sconit.CodeMaster.TimeUnit.Day)
            {
                newWorkCalendar.UpTime = 24 - (workCalendar.TrialTime + workCalendar.Holiday + workCalendar.HaltTime);
            }
            else if (workCalendar.DateType == com.Sconit.CodeMaster.TimeUnit.Week)
            {
                newWorkCalendar.UpTime = 7 - (workCalendar.TrialTime + workCalendar.Holiday + workCalendar.HaltTime);
            }
            else if (workCalendar.DateType == com.Sconit.CodeMaster.TimeUnit.Month)
            {
                string[] strArray = workCalendar.DateIndex.Split('-');
                int monthDay = DateTime.DaysInMonth(Convert.ToInt32(strArray[0]), Convert.ToInt32(strArray[1]));
                newWorkCalendar.UpTime = monthDay - (workCalendar.TrialTime + workCalendar.Holiday + workCalendar.HaltTime);
            }
            newWorkCalendar.TrialTime = workCalendar.TrialTime;
            newWorkCalendar.Holiday = workCalendar.Holiday;
            newWorkCalendar.HaltTime = workCalendar.HaltTime;
            genericMgr.Update(newWorkCalendar);
            SearchStatementModel searchStatementModel = PrepareSearchMIStatement(command, searchModel);
            return PartialView(GetAjaxPageData<WorkCalendar>(searchStatementModel, command));
        }
 public ActionResult _AjaxList(GridCommand command, WorkCalendarSearchModel searchModel)
 {
     SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel);
     GridModel<WorkCalendar> WorkCalendarList = GetAjaxPageData<WorkCalendar>(searchStatementModel, command);
     foreach (var WorkCalendar in WorkCalendarList.Data)
     {
         WorkCalendar.UpTime = Math.Round(WorkCalendar.UpTime, 3);
         WorkCalendar.TrialTime = Math.Round(WorkCalendar.TrialTime, 3);
         WorkCalendar.HaltTime = Math.Round(WorkCalendar.HaltTime, 3);
         WorkCalendar.Holiday = Math.Round(WorkCalendar.Holiday, 3);
     }
     return PartialView(WorkCalendarList);
 }
        private SearchStatementModel PrepareSearchMIStatement(GridCommand command, WorkCalendarSearchModel searchModel)
        {
            string whereStatement = string.Empty;

            IList<object> param = new List<object>();
            whereStatement += " where exists (select 1 from FlowMaster s where s.ResourceGroup=? and w.Flow=s.Code) ";
            param.Add((int)com.Sconit.CodeMaster.ResourceGroup.MI);
            if (searchModel.DateType == (int)com.Sconit.CodeMaster.TimeUnit.Day)
            {
                HqlStatementHelper.AddEqStatement("DateType", com.Sconit.CodeMaster.TimeUnit.Day, "w", ref whereStatement, param);
                HqlStatementHelper.AddBetweenStatement("DateIndex", searchModel.DateIndexDate.Value.ToString("yyyy-MM-dd"), searchModel.DateIndexToDate.Value.ToString("yyyy-MM-dd"), "w", ref whereStatement, param);
            }
            else
            {
                if (string.IsNullOrWhiteSpace(searchModel.DateIndexTo))
                {
                    searchModel.DateIndexTo = "9999-01";
                }
                HqlStatementHelper.AddEqStatement("DateType", searchModel.DateType, "w", ref whereStatement, param);
                HqlStatementHelper.AddBetweenStatement("DateIndex", searchModel.DateIndex, searchModel.DateIndexTo, "w", ref whereStatement, param);
            }
            HqlStatementHelper.AddEqStatement("Flow", searchModel.ProductLine, "w", ref whereStatement, param);
            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);

            SearchStatementModel searchStatementModel = new SearchStatementModel();
            searchStatementModel.SelectCountStatement = selectCountStatement;
            searchStatementModel.SelectStatement = selectStatement;
            searchStatementModel.WhereStatement = whereStatement;
            searchStatementModel.SortingStatement = sortingStatement;
            searchStatementModel.Parameters = param.ToArray<object>();
            return searchStatementModel;
        }
        public ActionResult _GetWorkCalendarMiList(WorkCalendarSearchModel searchModel)
        {
            ViewBag.PageSize = 20;
            ViewBag.ProductLine = searchModel.ProductLine;
            ViewBag.DateType = searchModel.DateType;
            ViewBag.DateIndexDate = searchModel.DateIndexDate;
            ViewBag.DateIndexTo = searchModel.DateIndexTo;
            ViewBag.DateIndexToDate = searchModel.DateIndexToDate;
            ViewBag.DateIndex = searchModel.DateIndex;
            return PartialView();

        }