public async Task <IActionResult> Edit(DeviceFunctionEntity deviceFunctionEntity)
        {
            if (!await IsMyDevice(deviceFunctionEntity.PartitionKey))
            {
                return(NotFound());
            }
            if (String.IsNullOrEmpty(deviceFunctionEntity.RowKey))
            {
                deviceFunctionEntity.RowKey = Guid.NewGuid().ToString();
            }

            if (deviceFunctionEntity.TriggerType == FunctionTriggerType.CronSchedule.ToString())
            {
                if (!new CronSchedule().IsValid(deviceFunctionEntity.CronSchedule))
                {
                    ModelState.AddModelError("CronSchedule", "Invalid cron schedule");
                }
            }

            await _deviceFunctionService.SaveFunctionAsync(deviceFunctionEntity.PartitionKey,
                                                           deviceFunctionEntity.RowKey, deviceFunctionEntity.Name, deviceFunctionEntity.TriggerType, deviceFunctionEntity.Interval,
                                                           deviceFunctionEntity.CronSchedule, deviceFunctionEntity.QueueName, deviceFunctionEntity.Enabled, deviceFunctionEntity.Script);

            await _deviceManagementService.UpdateFunctionsAndVersionsTwinPropertyAsync(deviceFunctionEntity.PartitionKey);

            return(await Edit(deviceFunctionEntity.PartitionKey, deviceFunctionEntity.RowKey));
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                _Function = BusinessFacadeShanliTech_HLD_Business.DeviceFunctionDisp(FunctionID);
                _Device = BusinessFacadeShanliTech_HLD_Business.DeviceDisp(_Function.DeviceID);

                BindDataList();
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
    
     _Function = BusinessFacadeShanliTech_HLD_Business.DeviceFunctionDisp(FunctionID);
     _Device = BusinessFacadeShanliTech_HLD_Business.DeviceDisp(_Function.DeviceID);
     if (!Page.IsPostBack)
     {
         BindDataList(_Function, _Device);
         OnStart(_Function, _Device);
     }
     if (string.IsNullOrEmpty(CMD)) CMD = "New";
 }
        public async Task <IActionResult> Add(string deviceId)
        {
            if (!await IsMyDevice(deviceId))
            {
                return(NotFound());
            }
            var deviceFunction = new DeviceFunctionEntity
            {
                Enabled      = true,
                Interval     = 0,
                CronSchedule = "* * * * *",
                Language     = FunctionLanguage.Lua.ToString(),
                Name         = "New function",
                PartitionKey = deviceId,
                QueueName    = "triggerqueue",
                Script       = "function run(message) end;",
                TriggerType  = FunctionTriggerType.MessageQueue.ToString()
            };

            return(View("Edit", deviceFunction));
        }
        private void OnStart(DeviceFunctionEntity _Function,DeviceEntity _Device)
        {
            
            Device_Permition_DataEntity ut = BusinessFacadeShanliTech_HLD_Business.Device_Permition_DataDisp(IDX);
            OnStartData(ut,_Function,_Device);
            HiddenColumnsByPermitType(_Device.PermitType);
            switch (CMD)
            {
                case "New":
                    HideDisp();
                    break;
                case "List":
                    //HideInput();
                    HideDisp();
                    break;
                case "Edit":
                    HideDisp();
                    break;
                case "Delete":
                    #region 删除
                    
                    //ToolMethods.FunctionAndPointDeleteByDeviceID(IDX);  //级联删除相关功能及功能测试点

                    //ut.DataTable_Action_ = DataTable_Action.Update;
                    //ut.DelFlag = true;
                    //if (BusinessFacadeShanliTech_HLD_Business.DeviceInsertUpdateDelete(ut) > 0)
                    //{
                    //    EventMessage.MessageBox(1, "删除成功", string.Format("删除ID:{0}成功!", IDX), Icon_Type.OK, Common.GetHomeBaseUrl("Default.aspx"));
                    //}
                    //else
                    //{
                    //    EventMessage.MessageBox(1, "删除失败", string.Format("删除ID:{0}失败!", IDX), Icon_Type.Error, Common.GetHomeBaseUrl("Default.aspx"));
                    //}

                    #endregion
                    break;
            }
            HiddenFreqByFuncCode();
        }
示例#6
0
        public async Task SaveFunctionAsync(string deviceId, string functionId, string functionName, string triggerType, int interval, string cronSchedule, string queueName, bool enabled, string scriptContent)
        {
            DeviceFunctionEntity entity;

            entity = await GetFunctionAsync(deviceId, functionId);

            if (entity == null)
            {
                entity = new DeviceFunctionEntity();
            }
            entity.Name         = functionName;
            entity.PartitionKey = deviceId;
            entity.RowKey       = functionId;
            entity.Language     = "Lua";
            entity.Script       = scriptContent;
            entity.Interval     = interval;
            entity.CronSchedule = cronSchedule;
            entity.QueueName    = queueName;
            entity.TriggerType  = triggerType;
            entity.Enabled      = enabled;
            entity.Version++;
            var operation = TableOperation.InsertOrReplace(entity);
            var result    = await _scriptTableRef.ExecuteAsync(operation);
        }
 private int GetNewDetectcPointOrderID(DeviceFunctionEntity fun) 
 {
     int _r = 0;
     if (fun.DetectPointList == null || fun.DetectPointList.Count <= 0) { _r = 1; return _r; }
     foreach (DetectPointEntity item in fun.DetectPointList)
     {
         if (item.OrderID > _r) { _r = item.OrderID; }
     }
     _r = _r + 1;
     return _r;
 }
 private DetectPointEntity CreateACDectectPoint(DeviceFunctionEntity fun, string cmdcode, double standardvalue, string cmdrange, string cmdfun, string cmdres, double testrange, string unit, int idnum,double fvalue,string funit)
 {
     DetectPointEntity _r = new DetectPointEntity();
     _r.DataTable_Action_ = DataTable_Action.Insert;
     _r.ID = idnum;
     _r.DelFlag = false;
     _r.Frequency = fvalue;
     _r.FrequencyUnit = funit;
     _r.FunctionCode = fun.FunctionCode;
     _r.FunctionID = fun.ID;
     _r.H_PerMissibleError = 0;
     _r.ChangePerMissibleError = 0;
     _r.Inputter = UserData.GetUserDate.UserID;
     _r.InputTime = DateTime.Now;
     _r.MissibleErrorSymbol = "±";
     _r.OrderID = GetNewDetectcPointOrderID(fun);
     _r.RoundLen = _Device.RoundLen;
     _r.SetCmdPerfix = _Device.SetCmdPerfix;
     _r.SetCmdSuffix = _Device.SetCmdSuffix;
     _r.CommandCode = cmdcode;
     _r.State = 1;
     _r.StandardValue = standardvalue;
     _r.SwichRangeCmdCode = cmdrange;
     _r.SwitchFuncCmdCode = cmdfun;
     _r.SwitchRESCmdCode = cmdres;
     _r.TestRange = testrange;
     _r.Unit = unit;
     PermitErrorCalculator calculator = new PermitErrorCalculator();
     _r.ValuePerMissibleErrorName = calculator.GetPermitError(_Device, _r);
     idnum--;
     return _r;
 }
        private List<DetectPointEntity> CreateOHMDetectPointList(List<Device_Permition_DataEntity> rengelst, List<CommandAssembleEntity> cmdlst, DeviceFunctionEntity fun, double ps, double pi, double pe)
        {
            List<DetectPointEntity> _r = new List<DetectPointEntity>();
            string cmdfun = "";
            string cmdrang = "";
            string cmdres = "";
            string cmdoutcode = "";
            string unit = "";
            double standardvalue = 0;
            int count = 0;
            List<Device_Permition_DataEntity> myranges = rengelst.FindAll((x) => { return x.FunctionCode.Equals(fun.FunctionCode); });

            foreach (Device_Permition_DataEntity item in myranges)
            {
                unit = item.RangeUnitOriginal;
                standardvalue = item.RangeEndOriginal * ps;
                cmdoutcode = GetOHMCMDCode(standardvalue, unit);
                cmdrang = item.RangeCode;
                cmdfun = GetCmd(fun.FunctionCode + "_SwitchFuncCmdCode", cmdlst);
                cmdres = GetCmd(fun.FunctionCode + "_SwitchRESCmdCode", cmdlst);
                count = 0;
                while (standardvalue < item.RangeEndOriginal && ps + pi * count <= pe)
                {
                    DetectPointEntity _t = CreateDCDectectPoint(fun, cmdoutcode, standardvalue, cmdrang, cmdfun, cmdres, item.RangeEndOriginal, unit, idnum);
                    fun.DetectPointList.Add(_t);
                    _r.Add(_t);
                    
                    count++;
                    standardvalue = item.RangeEndOriginal * (ps + pi * count);
                    cmdoutcode = GetCMDCode(standardvalue, unit, 0, "Hz");
                }
            }
            return _r;
        }
 /// <summary>
 /// 绑定数据
 /// </summary>
 private void BindDataList(DeviceFunctionEntity _Function, DeviceEntity _Device)
 {
     QueryParam qp = new QueryParam();
     qp.Where = string.Format("Where DeviceNum = '{0}' And DeviceModel = '{1}' And FunctionCode = '{2}'", _Device.DeviceNum, _Device.DeviceModel, _Function.FunctionCode);
     qp.PageIndex = AspNetPager1.CurrentPageIndex;
     qp.PageSize = AspNetPager1.PageSize;
     qp.Orderfld = Orderfld;
     qp.OrderType = OrderType;
     int RecordCount = 0;
     List<Device_Permition_DataEntity> lst = BusinessFacadeShanliTech_HLD_Business.Device_Permition_DataList(qp, out RecordCount);
     GridView1.DataSource = lst;
     GridView1.DataBind();
     this.AspNetPager1.RecordCount = RecordCount;
 }
 private void OnStartData(Device_Permition_DataEntity ut,DeviceFunctionEntity _Function,DeviceEntity _Device)
 {
     //FuncCode_Disp.Text = _Function.FunctionCode;
     //FuncRange_Disp.Text = _Function.TestRange;
     Unit_Disp.Text = Unit_Input.Text = ut.RangeUnitOriginal;
     Range_Input.Text = ut.RangeEndOriginal.ToString();
     RangeCode_Input.Text = ut.RangeCode;
     RangeFull_Input.Text = ut.RangeFull.ToString();
     FrequencyStart_Input.Text = ut.FreqStartOriginal.ToString();
     FrequencyEnd_Input.Text = ut.FreqEndOriginal.ToString();
     FreqStartUnit_DropDown.SelectedValue = ut.FreqStartUnitOriginal;
     FreqEndUnit_DropDown.SelectedValue = ut.FreqEndUnitOriginal;
     Ratio0_Input.Text = (100 * ut.Ratio0).ToString();
     Ratio1_Input.Text = (100 * ut.Ratio1).ToString();
     ConstValue_Input.Text = ut.ConstValueOriginal.ToString();
     ConstValueUnit_Input.Text = ut.ConstValueUnitOriginal;
     MinGraduation_Input.Text = MinGraduation_Disp.Text = ut.MinimumGraduationOriginal.ToString();
     MinUnit_Disp.Text = MinUnit_Input.Text = ut.MinimumUnitOriginal;
     PrecisionCount_Input.Text = ut.PrecisionCount.ToString();
 }
        /// <summary>
        /// 初始化数据
        /// </summary>
        /// <param name="ut"></param>
        private void OnStartData(DeviceFunctionEntity ut)
        {
        AccuracyLevel_Input.Text = AccuracyLevel_Disp.Text = ut.AccuracyLevel.ToString();
                DetectBasisCode_Input.Text = DetectBasisCode_Disp.Text = ut.DetectBasisCode.ToString();
                DetectBasisName_Input.Text = DetectBasisName_Disp.Text = ut.DetectBasisName.ToString();
                //DeviceID_Input.Text = DeviceID_Disp.Text = DeviceID.ToString();
                //DeviceID_DropDown.SelectedValue = ut.DeviceID.ToString();
                //DeviceID_Disp.Text = DeviceID_DropDown.SelectedItem.Text;

                FunctionCode_Input.Text = FunctionCode_Disp.Text = ut.FunctionCode.ToString();
                FunctionName_Input.Text = FunctionName_Disp.Text = ut.FunctionName.ToString();
                TestRange_Input.Text = TestRange_Disp.Text = ut.TestRange.ToString();
                SourceValidDate_Input.Text = SourceValidDate_Disp.Text = ut.SourceValidDate.ToString();
                
                DeviceID_Disp.Text = BusinessFacadeShanliTech_HLD_Business.DeviceDisp(DeviceID).DeviceNum;
                //OrderID_Input.Text = OrderID_Disp.Text = ut.OrderID.ToString();
                
        }