コード例 #1
0
        private void btnsure_Click(object sender, EventArgs e)
        {
            double lon = 0.0, lat = 0.0, alt = 0.0;

            if (txtlon.Text.Trim() == "")
            {
                MessageBox.Show("请填写经度");
                return;
            }
            else
            {
                if (!double.TryParse(txtlon.Text.Trim(), out lon))
                {
                    MessageBox.Show("经度为数值类型");
                    return;
                }
            }
            if (txtlat.Text.Trim() == "")
            {
                MessageBox.Show("请填写纬度");
                return;
            }
            else
            {
                if (!double.TryParse(txtlat.Text.Trim(), out lat))
                {
                    MessageBox.Show("纬度为数值类型");
                    return;
                }
            }
            if (txtalt.Text.Trim() == "")
            {
                MessageBox.Show("请填写海拔");
                return;
            }
            else
            {
                if (!double.TryParse(txtalt.Text.Trim(), out alt))
                {
                    MessageBox.Show("海拔为数值类型");
                    return;
                }
            }
            if (comboBoxSerialCOM.Text.Trim() == "" || comboBoxSerialCOM.Text.Trim() == "(无)")
            {
                UPS_Obj.UPSBase.COM = "";
            }
            else
            {
                if (DictionaryDBClass.SerialCOMListDictionary.ContainsKey(comboBoxSerialCOM.SelectedValue.ToString()))
                {
                    UPS_Obj.SerialCOM_assembly = DictionaryDBClass.SerialCOMListDictionary[comboBoxSerialCOM.SelectedValue.ToString()];
                    UPS_Obj.UPSBase.COM        = UPS_Obj.SerialCOM_assembly.SerialCOMBase.DeviceID;
                }
                else
                {
                    MessageBox.Show("选择的串口不存在");
                    return;
                }
            }
            if (txtname.Text.Trim() == "")
            {
                MessageBox.Show("请填写名称");
                return;
            }
            if (txtname.Text.Trim() != "")
            {
                if (Operate_Type.Contains("添加"))
                {
                    foreach (assembly_UPS name in DictionaryDBClass.UPSDictionary.Values)
                    {
                        if (txtname.Text.Trim() == name.UPSBase.Name)
                        {
                            MessageBox.Show("此UPS名称已存在,请修改后重试!");
                            return;
                        }
                    }
                }
                else
                {
                    foreach (assembly_UPS name in DictionaryDBClass.UPSDictionary.Values)
                    {
                        if (txtname.Text.Trim() == name.UPSBase.Name && txtname.Text.Trim() != UPS_Obj.UPSBase.Name)
                        {
                            MessageBox.Show("此UPS名称已存在,请修改后重试!");
                            return;
                        }
                    }
                }
            }
            if (txtusername.Text.Trim() == "")
            {
                MessageBox.Show("请填写用户名");
                return;
            }
            string[] ipstring = txtip.Text.Trim().Split('.');
            if (ipstring.Length == 0)
            {
                MessageBox.Show("请填写IP");
                return;
            }
            else
            {
                if (ipstring.Length == 4)
                {
                    int string_to_int = 0;
                    for (int i = 0; i < ipstring.Length; i++)
                    {
                        if (!int.TryParse(ipstring[i], out string_to_int))
                        {
                            MessageBox.Show("IP格式不合法");
                            return;
                        }
                        if (string_to_int > 254 || string_to_int < 0 || string_to_int.ToString() != ipstring[i])
                        {
                            MessageBox.Show("IP格式不合法");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("IP格式不合法");
                    return;
                }
            }

            if (txtport.Text.Trim() == "")
            {
                MessageBox.Show("请填写端口");
                return;
            }
            else
            {
                int port = 0;
                if (!int.TryParse(txtport.Text.Trim(), out port))
                {
                    MessageBox.Show("端口号要为数字");
                    return;
                }
            }

            if (comboBoxCommunicationInternet.SelectedValue.ToString() != "")
            {
                UPS_Obj.CommunicationAssembly           = DictionaryDBClass.communicationInternetDictionary[comboBoxCommunicationInternet.SelectedValue.ToString()];
                UPS_Obj.UPSBase.CommunicationInternetID = comboBoxCommunicationInternet.SelectedValue.ToString();
            }
            else
            {
                UPS_Obj.CommunicationAssembly           = new assembly_communicationInternet();
                UPS_Obj.UPSBase.CommunicationInternetID = "";
            }
            bool operateresult = false;

            UPS_Obj.UPSBase.Name        = txtname.Text.Trim();
            UPS_Obj.UPSBase.UserName    = txtusername.Text.Trim();
            UPS_Obj.UPSBase.Password    = txtpassword.Text.Trim();
            UPS_Obj.UPSBase.Ip          = txtip.Text.Trim();
            UPS_Obj.UPSBase.Port        = txtport.Text.Trim();
            UPS_Obj.UPSBase.Lon         = txtlon.Text.Trim();
            UPS_Obj.UPSBase.Lat         = txtlat.Text.Trim();
            UPS_Obj.UPSBase.Alt         = txtalt.Text.Trim();
            UPS_Obj.UPSBase.Description = txtdescription.Text.Trim();
            string opresult = "";

            try
            {
                if (Operate_Type.Contains("添加"))
                {
                    object[] obj_list = deviceInfo_Obj.GetAllObjects(BaseDataClassNames.UPSList);
                    int      id       = 18001;
                    if (obj_list != null)
                    {
                        int[] id_list = new int[obj_list.Length];
                        for (int i = 0; i < obj_list.Length; i++)
                        {
                            id_list[i] = Convert.ToInt32((obj_list[i] as UPSList).DeviceID);
                        }
                        CountIDClass CountIDClass_Obj = new CountIDClass();
                        id = CountIDClass_Obj.CountID(id_list, 18001, 19000);
                    }
                    if (id == -1)
                    {
                        MessageBox.Show("DeviceID字段已用完");
                    }
                    else
                    {
                        UPS_Obj.UPSBase.DeviceID = id.ToString();
                        operateresult            = deviceInfo_Obj.AddBaseList(UPS_Obj.UPSBase, ref error);
                        DictionaryDBClass.UPSDictionary.Add(UPS_Obj.UPSBase.DeviceID, UPS_Obj);
                        opresult = CompletenessCheck.CheckUPSComplete(UPS_Obj);
                        DictionaryDBClass.UPSDictionary_State.Add(UPS_Obj.UPSBase.DeviceID, opresult);
                    }
                }
                else
                {
                    operateresult = deviceInfo_Obj.UpdateBaselist(UPS_Obj.UPSBase, ref error);
                    DictionaryDBClass.UPSDictionary[UPS_Obj.UPSBase.DeviceID] = UPS_Obj;
                    opresult = CompletenessCheck.CheckUPSComplete(UPS_Obj);
                    DictionaryDBClass.UPSDictionary_State[UPS_Obj.UPSBase.DeviceID] = opresult;
                }
                string Useroperation = txtname.Text.Trim();

                if (Operate_Type.Contains("添加"))
                {
                    Useroperation = "添加元素实例-" + Useroperation;
                    MessageBox.Show("添加成功");
                    UpdateTree.AddUPS(UPS_Obj, opresult);
                }
                else
                {
                    Useroperation = "修改元素实例-" + Useroperation;
                    MessageBox.Show("修改成功");
                    UpdateTree.EditUPS(UPS_Obj, opresult);
                }
                this.Close();
            }
            catch (System.Exception ex)
            {
            }
        }