Exemple #1
0
        //삭제 버튼 클릭
        private void UserDelBtn_Click(object sender, EventArgs e)
        {
            if (this.UserDetailLV.SelectedItems.Count > 0)
            {
                if (DialogResult.Yes == MessageBox.Show("사용자를 삭제하겠습니까?", "SMS 사용자 관리", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
                {
                    List <WSmsUser> wsuList = new List <WSmsUser>();

                    for (int i = 0; i < this.UserDetailLV.SelectedItems.Count; i++)
                    {
                        WSmsUser wsu = new WSmsUser(uint.Parse(this.UserDetailLV.SelectedItems[i].Name), string.Empty, string.Empty, string.Empty);
                        wsuList.Add(wsu);
                    }

                    for (int i = 0; i < wsuList.Count; i++)
                    {
                        this.dataMng.DelSmsUser(wsuList[i]);
                    }
                }
            }
            else
            {
                MessageBox.Show("삭제할 사용자를 선택하세요.", "SMS 사용자 관리", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="_code">
        /// 1 - 등록, 2 - 수정
        /// </param>
        /// <param name="_pkid">
        /// 수정일 경우 선택한 사용자
        /// </param>
        public SMSUserMng(byte _code, uint _pkid)
        {
            InitializeComponent();

            this.dataMng = WeatherDataMng.getInstance();
            this.code    = _code;
            this.pkid    = _pkid;

            for (int i = 0; i < this.dataMng.DeviceList.Count; i++)
            {
                WTypeDevice typeDevice = this.dataMng.GetTypeDevice(this.dataMng.DeviceList[i].TypeDevice);

                if (typeDevice.Name != "HSD" && typeDevice.Name != "DSD")
                {
                    this.WDeviceTV.Nodes.Add(this.dataMng.DeviceList[i].PKID.ToString(), string.Format("{0}({1})", this.dataMng.DeviceList[i].Name, typeDevice.Name));
                }
            }

            if (_code == 1) //등록
            {
                this.Text = string.Format("SMS 사용자 등록");
                this.SmsUserMngPB.BackgroundImage = Resources.sms사용자등록_41;
                this.SmsUserMngLB.Text            = string.Format("SMS 사용자를 등록합니다.");
            }
            else if (_code == 2) //수정
            {
                this.Text = string.Format("SMS 사용자 수정");
                this.SmsUserMngPB.BackgroundImage = Resources.sms사용자수정_22;
                this.SmsUserMngLB.Text            = string.Format("SMS 사용자를 수정합니다.");
                WSmsUser wsu = this.dataMng.getSmsUser(_pkid);
                this.SmsUserNameTB.Text   = wsu.Name;
                this.SmsUserTelNumTB.Text = wsu.TelNum;
                this.SmsUserRemarkTB.Text = wsu.Remark;

                List <MapSmsUser> tmpMsuList = new List <MapSmsUser>();

                for (int i = 0; i < this.dataMng.MapSmsList.Count; i++)
                {
                    if (this.dataMng.MapSmsList[i].FkSmsUser == _pkid)
                    {
                        tmpMsuList.Add(this.dataMng.MapSmsList[i]);
                    }
                }

                for (int i = 0; i < tmpMsuList.Count; i++)
                {
                    if (this.WDeviceTV.Nodes.ContainsKey(tmpMsuList[i].FkDevice.ToString()))
                    {
                        this.WDeviceTV.Nodes[tmpMsuList[i].FkDevice.ToString()].Checked = true;
                    }
                }

                this.SaveBtn.Enabled = false;
            }
        }
        //수정 메소드
        private void Update()
        {
            WSmsUser      wsu     = new WSmsUser(this.dataMng.getSmsUser(this.pkid).PKID, SmsUserNameTB.Text, SmsUserTelNumTB.Text.Replace("-", ""), SmsUserRemarkTB.Text);
            List <string> strList = new List <string>();

            for (int i = 0; i < this.SelectWDeviceLV.Items.Count; i++)
            {
                strList.Add(this.SelectWDeviceLV.Items[i].Name);
            }

            if (strList.Count > 0)
            {
                //SMS 사용자 정보 업데이트
                this.dataMng.UpdateSmsUser(wsu, strList);

                //SMS 수신 항목 DB 업데이트
                #region SMS 수신 항목 DB 업데이트
                MapSmsDeviceItem tmpMapSmsDeviceItem = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.임계치1단계);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Alarm1;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.임계치2단계);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Alarm2;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.임계치3단계);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Alarm3;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리1전압이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt1Volt;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리1온도이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt1Tempo;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리1점검시기);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt1Test;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리1교체시기);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt1Repair;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리1교체초기화);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt1Reset;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리2전압이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt2Volt;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리2온도이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt2Tempo;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리2점검시기);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt2Test;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리2교체시기);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt2Repair;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.배터리2교체초기화);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.Batt2Reset;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.FAN이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.FanState;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.CDMA시간설정이상);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.CDMATime;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);

                tmpMapSmsDeviceItem       = this.dataMng.getMapSmsItem(wsu.PKID, WeatherDataMng.SMSType.센서상태);
                tmpMapSmsDeviceItem.IsUse = this.recvSmsKind.SensorState;
                this.dataMng.UpdateMapSMSDeviceItem(tmpMapSmsDeviceItem);
                #endregion
            }
        }
        //저장 메소드
        private void save()
        {
            WSmsUser      wsu     = new WSmsUser(0, SmsUserNameTB.Text, SmsUserTelNumTB.Text.Replace("-", ""), SmsUserRemarkTB.Text);
            List <string> strList = new List <string>();

            for (int i = 0; i < this.SelectWDeviceLV.Items.Count; i++)
            {
                strList.Add(this.SelectWDeviceLV.Items[i].Name);
            }

            if (strList.Count > 0)
            {
                //SMS 사용자 등록
                this.dataMng.AddSmsUser(wsu, strList);

                //사용자 별 수신받을 항목 저장
                List <WSmsUser> tmpSmsUserList = this.dataMng.getSmsUser(SmsUserTelNumTB.Text);
                WSmsUser        tmpSmsUser     = new WSmsUser();

                for (int i = 0; i < tmpSmsUserList.Count; i++)
                {
                    if (tmpSmsUserList[i].Name == SmsUserNameTB.Text)
                    {
                        tmpSmsUser = tmpSmsUserList[i];
                        break;
                    }
                }

                #region SMS 수신 항목 DB 저장
                MapSmsDeviceItem mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.임계치1단계, tmpSmsUser.PKID, this.recvSmsKind.Alarm1);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.임계치2단계, tmpSmsUser.PKID, this.recvSmsKind.Alarm2);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.임계치3단계, tmpSmsUser.PKID, this.recvSmsKind.Alarm3);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리1전압이상, tmpSmsUser.PKID, this.recvSmsKind.Batt1Volt);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리1온도이상, tmpSmsUser.PKID, this.recvSmsKind.Batt1Tempo);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리1점검시기, tmpSmsUser.PKID, this.recvSmsKind.Batt1Test);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리1교체시기, tmpSmsUser.PKID, this.recvSmsKind.Batt1Repair);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리1교체초기화, tmpSmsUser.PKID, this.recvSmsKind.Batt1Reset);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리2전압이상, tmpSmsUser.PKID, this.recvSmsKind.Batt2Volt);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리2온도이상, tmpSmsUser.PKID, this.recvSmsKind.Batt2Tempo);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리2점검시기, tmpSmsUser.PKID, this.recvSmsKind.Batt2Test);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리2교체시기, tmpSmsUser.PKID, this.recvSmsKind.Batt2Repair);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.배터리2교체초기화, tmpSmsUser.PKID, this.recvSmsKind.Batt2Reset);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.FAN이상, tmpSmsUser.PKID, this.recvSmsKind.FanState);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.CDMA시간설정이상, tmpSmsUser.PKID, this.recvSmsKind.CDMATime);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);

                mapSmsDeviceItems = new MapSmsDeviceItem(0, (uint)WeatherDataMng.SMSType.센서상태, tmpSmsUser.PKID, this.recvSmsKind.SensorState);
                this.dataMng.AddMapSMSDeviceItem(mapSmsDeviceItems);
                #endregion
            }
        }