public ActionResult InstanceEdit(SnapMachine machineInstance)
        {
            if (ModelState.IsValid)
            {
                machineInstance.Region = genericMgr.FindById<Island>(machineInstance.Island).Region;
                machineInstance.SnapTime = genericMgr.FindById<SnapMachine>(machineInstance.Id).SnapTime;
                this.genericMgr.UpdateWithTrim(machineInstance);
                SaveSuccessMessage(Resources.MRP.MachineInstance.MachineInstance_Updated);
            }

            return View(machineInstance);
        }
        public ActionResult InstanceNew(SnapMachine machineInstance)
        {
            try
            {
                if (machineInstance.DateType == com.Sconit.CodeMaster.TimeUnit.Day)
                {
                    ModelState.Remove("DateIndex");
                }
                if (ModelState.IsValid)
                {

                    if (machineInstance.DateType == com.Sconit.CodeMaster.TimeUnit.Day)
                    {
                        machineInstance.DateIndex = Convert.ToDateTime(machineInstance.DateIndexDate).ToString("yyyy-MM-dd");
                    }
                    if (this.genericMgr.FindAll<long>("select count(*)  from SnapMachine as m where m.Code=? and m.DateIndex=? and  m.DateType=? and  m.SnapTime=? ",
                         new object[] { machineInstance.Code, machineInstance.DateIndex, machineInstance.DateType, machineInstance.SnapTime })[0] > 0)
                    {
                        base.SaveErrorMessage(string.Format(Resources.EXT.ControllerLan.Con_AlreadyExistsSameMachineCodePlanTypeTypeTimeIndexVersion, machineInstance.Code, machineInstance.DateType, machineInstance.DateIndex, machineInstance.SnapTime));
                        return View(machineInstance);
                    }
                    machineInstance.Region = genericMgr.FindById<Island>(machineInstance.Island).Region;
 
                    this.genericMgr.CreateWithTrim(machineInstance);
                    SaveSuccessMessage(Resources.MRP.MachineInstance.MachineInstance_Added);
                    string code = machineInstance.Code;

                    string dateIndex = machineInstance.DateIndex;
                    int dateType = (int)machineInstance.DateType;
                    DateTime snapTime = machineInstance.SnapTime;
                    IList<object> iList;
                    string sql = "select top 1 id from MRP_SnapMachine where code=? and dateIndex=? and dateType=? and SnapTime=? ";
                    object[] para = new object[] { code, dateIndex, dateType, snapTime };
                    iList = queryMgr.FindAllWithNativeSql<object>(sql, para);
                    int id = (int)iList.FirstOrDefault();
                    return new RedirectToRouteResult(new RouteValueDictionary { { "action", "InstanceEdit" }, { "controller", "MrpSnapMachine" },
                     { "id", id }});
                }
            }
            catch (Exception e)
            {
                if (e is CommitResourceException)
                {
                    SaveErrorMessage(Resources.EXT.ControllerLan.Con_AlreadyExitsSameData);
                }

            }

            return View(machineInstance);
        }