private void SaveSetting() { MessageDisplay msgDisplay = CreateMessageDisplay("medalname", "sortorder", "medallevel"); Medal medal = new Medal(); if (IsEdit) { medal.ID = MedalID; } else { medal.ID = AllSettings.Current.MedalSettings.MaxMedalID + 1; } medal.Name = _Request.Get("medalname", Method.Post, string.Empty); if (medal.Name == string.Empty) { msgDisplay.AddError("medalname", "图标名称不能为空"); } medal.SortOrder = _Request.Get <int>("sortorder", Method.Post, 0); medal.Enable = _Request.Get <bool>("enable", Method.Post, false); medal.IsHidden = _Request.Get <bool>("IsHidden", Method.Post, false); medal.IsCustom = _Request.Get <bool>("isAuto", Method.Post, false) == false; if (medal.IsCustom) { medal.Condition = string.Empty; } else { medal.Condition = _Request.Get("condition", Method.Post, string.Empty); } m_MedalCondition = medal.Condition; bool hasMedallevelError = false; if (medal.Condition == string.Empty && medal.IsCustom == false) { msgDisplay.AddError("medallevel", "请选择规则"); hasMedallevelError = true; } medal.Levels = new MedalLevelCollection(); int[] ids = _Request.GetList <int>("ids", Method.Post, new int[0] { }); if (IsEdit) { medal.MaxLevelID = Medal.MaxLevelID; } List <int> values = new List <int>(); m_MedalLevels = new MedalLevelCollection(); foreach (int id in ids) { MedalLevel level = new MedalLevel(); if (IsEdit) { foreach (MedalLevel tempMedalLevel in Medal.Levels) { if (id == tempMedalLevel.ID) { level.ID = id; break; } } } if (level.ID == 0) { medal.MaxLevelID = medal.MaxLevelID + 1; level.ID = medal.MaxLevelID; } if (_Request.Get("levelName_" + id, Method.Post) == null) { continue; } level.Name = _Request.Get("levelName_" + id, Method.Post, string.Empty).Trim(); level.IconSrc = _Request.Get("IconSrc_" + id, Method.Post, string.Empty).Trim(); if (medal.IsCustom) { level.Condition = _Request.Get("conditionDescription_" + id, Method.Post, string.Empty).Trim(); } else { level.Condition = string.Empty; level.Value = _Request.Get <int>("levelValue_" + id, Method.Post, 0); } if (hasMedallevelError == false) { //if (level.Name == string.Empty) //{ // msgDisplay.AddError("medallevel", "等级名称不能为空"); //} if (level.IconSrc == string.Empty) { msgDisplay.AddError("medallevel", "等级图标不能为空"); } //else if (medal.IsCustom && level.Condition == string.Empty) //{ // msgDisplay.AddError("medallevel", "点亮图标说明不能为空"); //} else if (medal.IsCustom == false && values.Contains(level.Value)) { msgDisplay.AddError("medallevel", "点亮图标需达到的值不能相同"); } } if (medal.IsCustom == false) { values.Add(level.Value); } medal.Levels.Add(level, medal.IsCustom == false); m_MedalLevels.Add(level, false); } m_IsCustom = medal.IsCustom; if (msgDisplay.HasAnyError()) { return; } MedalSettings medalSetting = new MedalSettings(); medalSetting.Medals = new MedalCollection(); foreach (Medal tempMedal in AllSettings.Current.MedalSettings.Medals) { if (IsEdit && medal.ID == tempMedal.ID) { medalSetting.Medals.Add(medal); } else { medalSetting.Medals.Add(tempMedal); } } if (IsEdit) { medalSetting.MaxMedalID = AllSettings.Current.MedalSettings.MaxMedalID; } else { medalSetting.Medals.Add(medal); medalSetting.MaxMedalID = medal.ID; } bool success = false; try { using (new ErrorScope()) { if (SettingManager.SaveSettings(medalSetting) == false) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { if (IsEdit) { UserBO.Instance.RemoveAllUserCache(); } success = true; } } } catch (Exception ex) { msgDisplay.AddError(ex.Message); } if (success) { JumpTo("interactive/setting-medals.aspx"); } }
private void SaveSetting() { MessageDisplay msgDisplay = CreateMessageDisplay("medalname", "sortorder", "medallevel"); Medal medal = new Medal(); if (IsEdit) { medal.ID = MedalID; } else { medal.ID = AllSettings.Current.MedalSettings.MaxMedalID + 1; } medal.Name = _Request.Get("medalname", Method.Post, string.Empty); if (medal.Name == string.Empty) msgDisplay.AddError("medalname", "图标名称不能为空"); medal.SortOrder = _Request.Get<int>("sortorder", Method.Post, 0); medal.Enable = _Request.Get<bool>("enable", Method.Post, false); medal.IsHidden = _Request.Get<bool>("IsHidden", Method.Post, false); medal.IsCustom = _Request.Get<bool>("isAuto", Method.Post, false) == false; if (medal.IsCustom) medal.Condition = string.Empty; else medal.Condition = _Request.Get("condition", Method.Post, string.Empty); m_MedalCondition = medal.Condition; bool hasMedallevelError = false; if (medal.Condition == string.Empty && medal.IsCustom == false) { msgDisplay.AddError("medallevel", "请选择规则"); hasMedallevelError = true; } medal.Levels = new MedalLevelCollection(); int[] ids = _Request.GetList<int>("ids", Method.Post, new int[0] { }); if (IsEdit) medal.MaxLevelID = Medal.MaxLevelID; List<int> values = new List<int>(); m_MedalLevels = new MedalLevelCollection(); foreach (int id in ids) { MedalLevel level = new MedalLevel(); if (IsEdit) { foreach (MedalLevel tempMedalLevel in Medal.Levels) { if (id == tempMedalLevel.ID) { level.ID = id; break; } } } if (level.ID == 0) { medal.MaxLevelID = medal.MaxLevelID + 1; level.ID = medal.MaxLevelID; } if (_Request.Get("levelName_" + id, Method.Post) == null) continue; level.Name = _Request.Get("levelName_" + id, Method.Post, string.Empty).Trim(); level.IconSrc = _Request.Get("IconSrc_" + id, Method.Post, string.Empty).Trim(); if (medal.IsCustom) level.Condition = _Request.Get("conditionDescription_" + id, Method.Post, string.Empty).Trim(); else { level.Condition = string.Empty; level.Value = _Request.Get<int>("levelValue_" + id, Method.Post, 0); } if (hasMedallevelError == false) { //if (level.Name == string.Empty) //{ // msgDisplay.AddError("medallevel", "等级名称不能为空"); //} if (level.IconSrc == string.Empty) { msgDisplay.AddError("medallevel", "等级图标不能为空"); } //else if (medal.IsCustom && level.Condition == string.Empty) //{ // msgDisplay.AddError("medallevel", "点亮图标说明不能为空"); //} else if (medal.IsCustom == false && values.Contains(level.Value)) { msgDisplay.AddError("medallevel", "点亮图标需达到的值不能相同"); } } if (medal.IsCustom == false) values.Add(level.Value); medal.Levels.Add(level,medal.IsCustom == false); m_MedalLevels.Add(level, false); } m_IsCustom = medal.IsCustom; if (msgDisplay.HasAnyError()) return; MedalSettings medalSetting = new MedalSettings(); medalSetting.Medals = new MedalCollection(); foreach (Medal tempMedal in AllSettings.Current.MedalSettings.Medals) { if (IsEdit && medal.ID == tempMedal.ID) { medalSetting.Medals.Add(medal); } else medalSetting.Medals.Add(tempMedal); } if (IsEdit) medalSetting.MaxMedalID = AllSettings.Current.MedalSettings.MaxMedalID; else { medalSetting.Medals.Add(medal); medalSetting.MaxMedalID = medal.ID; } bool success = false; try { using (new ErrorScope()) { if (SettingManager.SaveSettings(medalSetting) == false) { CatchError<ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { if(IsEdit) UserBO.Instance.RemoveAllUserCache(); success = true; } } } catch (Exception ex) { msgDisplay.AddError(ex.Message); } if (success) JumpTo("interactive/setting-medals.aspx"); }