private bool IsChangeUserArea(StructUserArea userArea, StructBillSetting setting) { StructUserArea temuserArea = null; StructUserArea defaultArea = null; for (int i = 0; i < this.userAreas.Count; i++) { StructUserArea tem = this.userAreas[i]; if (tem.Usertype == userArea.Usertype && tem.Areatype == userArea.Areatype) { temuserArea = tem; } if (tem.Usertype == 0 && tem.Areatype == 0) { defaultArea = tem; } } if (temuserArea == null) { temuserArea = defaultArea; } bool userAreaChange = true, settingChange = true; if (temuserArea.OrdinaryInterval == userArea.OrdinaryInterval && temuserArea.OrdinaryPrice == userArea.OrdinaryPrice && temuserArea.OrdinaryMin == userArea.OrdinaryMin && temuserArea.NightInterval == userArea.NightInterval && temuserArea.NightPrice == userArea.NightPrice && temuserArea.NightMin == userArea.NightMin ) { userAreaChange = false; } StructBillSetting temSetting = this.settings[temuserArea.Index]; if (temSetting.Day0 == setting.Day0 && temSetting.Day1 == setting.Day1 && temSetting.Day2 == setting.Day2 && temSetting.Day3 == setting.Day3 && temSetting.Day4 == setting.Day4 && temSetting.Day5 == setting.Day5 && temSetting.Day6 == setting.Day6) { settingChange = false; } return((!userAreaChange) && (!settingChange)); }
//设置GridViewSelectCells private void SetDataGridViewSelectCells(StructBillSetting setting, string nRate, string bRate) { for (int row = 0; row < 7; row++) { Int32 day = 0; if (row == 0) { day = setting.Day0; } else if (row == 1) { day = setting.Day1; } else if (row == 2) { day = setting.Day2; } else if (row == 3) { day = setting.Day3; } else if (row == 4) { day = setting.Day4; } else if (row == 5) { day = setting.Day5; } else { day = setting.Day6; } string dur = Convert.ToString(day, 2).PadLeft(24, '0'); for (int column = 1; column < this.dataGridView1.ColumnCount; column++) { DataGridViewCell cell = this.dataGridView1.Rows[row].Cells[column]; int isSelect = int.Parse(dur.Substring(column - 1, 1)); if (isSelect == 1) { cell.Selected = true; cell.Value = nRate; //cell.ToolTipText = nRate; } else { cell.Value = bRate; } } } }
//保存当前区域设置 private void SaveCurrentAreaSetting() { if (this.selectAreaLabel != null && this.selectTypeLabel != null) { Int32 area = Int32.Parse(this.selectAreaLabel.Name.Split('_')[1]); Int32 type = Int32.Parse(this.selectTypeLabel.Name.Split('_')[1]); if (!this.nDurComboBoxEdit.Text.Equals("") && !this.nDurPrieceText.Text.Equals("") && !this.nMinConsumeText.Text.Equals("") && !this.bDurComboBoxEdit.Text.Equals("") && !this.bDurPrieceText.Text.Equals("") && !this.bMinConsumeText.Text.Equals("")) { // 判断一下是否与之前的都一样 DeleteUserArea(type, area); //设置新Setting ,UserType StructBillSetting setting = this.GetSelectRateSetting().Build(); StructUserArea.Builder currentUserArea = new StructUserArea.Builder(); currentUserArea.OrdinaryInterval = Int32.Parse(this.nDurComboBoxEdit.Text); currentUserArea.OrdinaryPrice = Int32.Parse(this.nDurPrieceText.Text); currentUserArea.OrdinaryMin = Int32.Parse(this.nMinConsumeText.Text); currentUserArea.NightInterval = Int32.Parse(this.bDurComboBoxEdit.Text); currentUserArea.NightPrice = Int32.Parse(this.bDurPrieceText.Text); currentUserArea.NightMin = Int32.Parse(this.bMinConsumeText.Text); currentUserArea.Areatype = area; currentUserArea.Usertype = type; currentUserArea.Index = 0; //相对于服务器保存的进行判断是否改变 if (this.IsChangeUserArea(currentUserArea.Build(), setting)) { this.DeleteUserArea(type, area); } else { this.updateRateMange.AddSetting(setting); int index = this.updateRateMange.SettingCount - 1; currentUserArea.Index = index; this.updateRateMange.AddUserArea(currentUserArea); } } } }
//显示区域设置 private void ShowAreaSetting(StructUserArea UserArea, StructBillSetting setting) { // this.dataGridView1.ClearSelection(); this.nDurComboBoxEdit.Text = UserArea.OrdinaryInterval.ToString(); this.nDurPrieceText.Text = UserArea.OrdinaryPrice.ToString(); this.nMinConsumeText.Text = UserArea.OrdinaryMin.ToString(); this.bDurComboBoxEdit.Text = UserArea.NightInterval.ToString(); this.bDurPrieceText.Text = UserArea.NightPrice.ToString(); this.bMinConsumeText.Text = UserArea.NightMin.ToString(); this.nRateLabel.Text = ((60 / UserArea.OrdinaryInterval) * UserArea.OrdinaryPrice).ToString(); this.bRateLabel.Text = ((60 / UserArea.NightInterval) * UserArea.NightPrice).ToString(); //显示选择的区域 SetDataGridViewSelectCells(setting, this.nRateLabel.Text, this.bRateLabel.Text); }
private void GetUserArea(Int32 type, Int32 area, out StructUserArea userArea, out StructBillSetting setting) { StructUserArea temuserArea = null; StructUserArea defaultArea = null; for (int i = 0; i < this.updateRateMange.UserAreaCount; i++) { StructUserArea tem = this.updateRateMange.GetUserArea(i); if (tem.Usertype == type && tem.Areatype == area) { temuserArea = tem; } } if (temuserArea != null) { userArea = temuserArea; setting = this.updateRateMange.GetSetting(userArea.Index); return; } for (int i = 0; i < this.userAreas.Count; i++) { StructUserArea tem = this.userAreas[i]; if (tem.Usertype == type && tem.Areatype == area) { temuserArea = tem; } if (tem.Usertype == 0 && tem.Areatype == 0) { defaultArea = tem; } } if (temuserArea == null) { temuserArea = defaultArea; } userArea = temuserArea; setting = this.settings[userArea.Index]; }