예제 #1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.txtName.Text.Trim().IsNullOrWhiteSpace())
            {
                MessageBox.Show("名称不能为空,请输入");
                this.txtName.Focus();
                return;
            }

            //if (ModularDevice.FindAllByName(this.txtName.Text, Name, Name, 0, 0) != null)
            //{
            //    MessageBox.Show("名称已经存在");
            //    this.txtName.Focus();
            //    return;
            //}

            #region 获取所有选中的设备

            //List<SensorDeviceUnit> sensorDeviceUnitList = (from item in this.lstCollectDevice.Items.Cast<ListViewItem>() where item.Checked select item.Tag as SensorDeviceUnit).ToList();//采集设备
            var sensorDeviceUnitList  = new List <SensorDeviceUnit>();
            var sensorDeviceUnitList1 = new List <SensorDeviceUnit>();
            foreach (ListViewItem item in this.lstCollectDevice.Items)
            {
                if (item.Checked == false)
                {
                    var sensorDeviceUnit = item.Tag as SensorDeviceUnit; //未选中的采集设备
                    sensorDeviceUnitList1.Add(sensorDeviceUnit);
                }
                else
                {
                    sensorDeviceUnitList =
                        (from i in this.lstCollectDevice.Items.Cast <ListViewItem>()
                         where i.Checked
                         select i.Tag as SensorDeviceUnit).ToList();    //选中的采集设备
                }
            }

            //List<ControlDeviceUnit> controlDeviceUnitList = (from item in this.lstControlDevice.Items.Cast<ListViewItem>() where item.Checked select item.Tag as ControlDeviceUnit).ToList();//控制设备

            var controlDeviceUnitList  = new List <ControlDeviceUnit>();
            var controlDeviceUnitList1 = new List <ControlDeviceUnit>();
            foreach (ListViewItem item in this.lstControlDevice.Items)
            {
                if (item.Checked == false)
                {
                    var controlDeviceUnit = item.Tag as ControlDeviceUnit; //未选中的控制设备
                    controlDeviceUnitList1.Add(controlDeviceUnit);
                }
                else
                {
                    controlDeviceUnitList =
                        (from i in this.lstControlDevice.Items.Cast <ListViewItem>()
                         where i.Checked
                         select i.Tag as ControlDeviceUnit).ToList();    //选中的控制设备
                }
            }

            #endregion 获取所有选中的设备

            if (this.modularDeviceId != 0)
            {
                try
                {
                    // 更新
                    var modularDevice = new ModularDevice
                    {
                        ID                  = this.modularDeviceId,
                        Name                = this.txtName.Text.Trim(),
                        ProtocalTypeID      = Convert.ToInt32(this.cbProtocalType.SelectedValue),
                        CommunicateDeviceID = Convert.ToInt32(this.cbCommunicateDevice.SelectedValue),
                        Address             = this.txtAddress.Text,
                        //OnlineStatus = Convert.ToBoolean(this.cbOnlineStatus.SelectedValue),
                        OnlineStatus = this.rbtOnlineStatus.Checked,
                        Exception    = this.txtException.Text,
                        //Remark = this.txtRemark.Text.Trim()
                    };
                    ModularDevice.Update(modularDevice);

                    //更新采集设备
                    foreach (var item in sensorDeviceUnitList)
                    {
                        var sensorUnit = new SensorDeviceUnit();
                        sensorUnit.ID = item.ID;
                        sensorUnit.ModularDeviceID = this.modularDeviceId;
                        sensorUnit.Update();
                    }
                    //foreach (var item in sensorDeviceUnitList1)
                    //{
                    //    item.ModularDeviceID = this.modularDeviceId;
                    //    SensorDeviceUnit.Delete(item);
                    //}
                    this.InitCollectDeviceListView();

                    //更新控制设备
                    foreach (var item in controlDeviceUnitList)
                    {
                        var controlUnit = new ControlDeviceUnit();
                        controlUnit.ID = item.ID;
                        controlUnit.ModularDeviceID = this.modularDeviceId;
                        controlUnit.Update();
                    }
                    //foreach (var item in controlDeviceUnitList1)
                    //{
                    //    item.ModularDeviceID = this.modularDeviceId;
                    //    ControlDeviceUnit.Delete(item);
                    //}
                    this.InitControlDeviceListView();
                    MessageBox.Show("更新成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("更新失败");
                }
            }
            else
            {
                try
                {
                    // 保存
                    var modularDevice = new ModularDevice
                    {
                        Name                = this.txtName.Text.Trim(),
                        ProtocalTypeID      = Convert.ToInt32(this.cbProtocalType.SelectedValue),
                        CommunicateDeviceID = Convert.ToInt32(this.cbCommunicateDevice.SelectedValue),
                        Address             = this.txtAddress.Text,
                        //OnlineStatus = Convert.ToBoolean(this.cbOnlineStatus.SelectedValue),
                        OnlineStatus = this.rbtOnlineStatus.Checked,
                        Exception    = this.txtException.Text,
                        //Remark = this.txtRemark.Text.Trim()
                    };
                    ModularDevice.Save(modularDevice);

                    ////保存采集设备
                    //foreach (var item in sensorDeviceUnitList)
                    //{
                    //    item.ModularDeviceID = this.modularDeviceId;
                    //    SensorDeviceUnit.Save(item);
                    //}
                    this.InitCollectDeviceListView();

                    ////保存控制设备
                    //foreach (var item in controlDeviceUnitList)
                    //{
                    //    item.ModularDeviceID = this.modularDeviceId;
                    //    ControlDeviceUnit.Save(item);
                    //}
                    this.InitControlDeviceListView();
                    MessageBox.Show("保存成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("保存失败");
                }
            }

            this.InitModularDeviceListView();
        }
예제 #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.txtName.Text.Trim().IsNullOrWhiteSpace())
            {
                MessageBox.Show("名称不能为空,请输入");
                this.txtName.Focus();
                return;
            }

            //if (this.cbModularDevice.DisplayMember==null)
            //{
            //    MessageBox.Show("模块化设备不能为空,请输入");
            //    this.cbModularDevice.Focus();
            //    return;
            //}
            //if (this.cbDeviceType.DisplayMember == null)
            //{
            //    MessageBox.Show("设备类型不能为空,请输入");
            //    this.cbDeviceType.Focus();
            //    return;
            //}

            //if (this.txtFunction.Text == null)
            //{
            //    MessageBox.Show("功能码不能为空");
            //    this.txtFunction.Focus();
            //    return;
            //}
            if (this.controlDeviceId != 0)
            {
                try
                {
                    // 更新
                    var cntrolDevice = new ControlDeviceUnit
                    {
                        ID                  = this.controlDeviceId,
                        Name                = this.txtName.Text.Trim(),
                        ModularDeviceID     = Convert.ToInt32(this.cbModularDevice.SelectedValue),
                        DeviceTypeSerialnum = this.cbDeviceType.SelectedValue.ToString(),
                        RelayTypeId         = Convert.ToInt32(this.cbRelay.SelectedValue.ToString()),
                        Function            = Convert.ToInt32(this.txtFunction.Text.Trim()),
                        OriginalValue       = Convert.ToInt32(this.txtOriginalValue.Text.Trim()),
                        RegisterAddress1    = Convert.ToInt32(txtAddr1.Text.Trim()),
                        ProcessedValue      = this.txtProccessedValue.Text.Trim(),
                        UpdateTime          = DateTime.Now,
                        GroupNum            = Convert.ToInt32(this.txtGroup.Text.Trim()),
                        ControlJobTypeId    = Convert.ToInt32(this.cbJob.SelectedValue.ToString())
                    };

                    //if (cntrolDevice.IsComposite)
                    //{
                    //    cntrolDevice.RegisterAddress2 = Convert.ToInt32(txtAddr2.Text.Trim());
                    //    cntrolDevice.RegisterAddress2Name = "结束地址";
                    //}
                    //else
                    //{
                    //    cntrolDevice.RegisterAddress2 = -1;
                    //    cntrolDevice.RegisterAddress2Name = "关";
                    //}

                    ControlDeviceUnit.Update(cntrolDevice);
                    MessageBox.Show("更新成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("更新失败");
                }
            }
            else
            {
                try
                {
                    // 保存
                    var cntrolDevice = new ControlDeviceUnit
                    {
                        //ID = this.collectDeviceId,
                        Name                = this.txtName.Text.Trim(),
                        ModularDeviceID     = Convert.ToInt32(this.cbModularDevice.SelectedValue),
                        DeviceTypeSerialnum = this.cbDeviceType.SelectedValue.ToString(),
                        RelayTypeId         = Convert.ToInt32(this.cbRelay.SelectedValue.ToString()),
                        Function            = Convert.ToInt32(this.txtFunction.Text.Trim()),
                        OriginalValue       = Convert.ToInt32(this.txtOriginalValue.Text.Trim()),
                        RegisterAddress1    = Convert.ToInt32(txtAddr1.Text.Trim()),
                        ProcessedValue      = this.txtProccessedValue.Text.Trim(),
                        UpdateTime          = DateTime.Now,
                        GroupNum            = Convert.ToInt32(this.txtGroup.Text.Trim()),
                        ControlJobTypeId    = Convert.ToInt32(this.cbJob.SelectedValue.ToString())
                    };

                    //if (cntrolDevice.IsComposite)
                    //{
                    //    cntrolDevice.RegisterAddress2 = Convert.ToInt32(txtAddr2.Text.Trim());
                    //    cntrolDevice.RegisterAddress2Name = "结束地址";
                    //}
                    //else
                    //{
                    //    cntrolDevice.RegisterAddress2 = -1;
                    //    cntrolDevice.RegisterAddress2Name = "关";
                    //}
                    ControlDeviceUnit.Save(cntrolDevice);
                    MessageBox.Show("保存成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("保存失败");
                }
            }

            this.InitControlDeviceListView();
        }