public PointSettings() { UserPoints = new UserPointCollection(); ExchangeProportions = new PointExchangeProportionCollection(); ExchangeProportions.Add(UserPointType.Point1, 10); ExchangeProportions.Add(UserPointType.Point2, 1); ExchangeProportions.Add(UserPointType.Point3, 1); ExchangeProportions.Add(UserPointType.Point4, 1); ExchangeProportions.Add(UserPointType.Point5, 1); ExchangeProportions.Add(UserPointType.Point6, 1); ExchangeProportions.Add(UserPointType.Point7, 1); ExchangeProportions.Add(UserPointType.Point8, 1); EnablePointExchange = false; EnablePointTransfer = false; PointRechargeRules = new PointRechargeRuleCollection(); PointExchangeRules = new PointExchangeRuleCollection(); PointExchangeRule rule = new PointExchangeRule(); rule.PointType = UserPointType.Point2; rule.TargetPointType = UserPointType.Point1; rule.TaxRate = 2; PointExchangeRules.Add(rule); GeneralPointName = "总积分"; GeneralPointExpression = "p1+p2*10"; DisplayGeneralPoint = true; TradeRate = 2; PointTransferRules = new PointTransferRuleCollection(); PointTransferRule tRule = new PointTransferRule(); tRule.CanTransfer = true; tRule.PointType = UserPointType.Point1; tRule.TaxRate = 2; PointTransferRules.Add(tRule); PointIcons = new PointIconCollection(); PointIcon icon = new PointIcon(); icon.IconCount = 4; icon.IconsString = "fortune_3.gif|fortune_2.gif|fortune_1.gif"; icon.PointType = UserPointType.Point1; icon.PointValue = 1000; PointIcons.Add(icon); }
private void SavepointExchangeProportions() { UserPointCollection userPoints = AllSettings.Current.PointSettings.EnabledUserPoints; string[] errorNames = new string[userPoints.Count]; int i = 0; foreach (UserPoint userPoint in userPoints) { errorNames[i] = userPoint.Type.ToString(); i++; } MessageDisplay msgDisplay = CreateMessageDisplay(errorNames); PointExchangeProportionCollection pointExchangeProportions = new PointExchangeProportionCollection(); foreach (UserPoint userPoint in AllSettings.Current.PointSettings.EnabledUserPoints) { string valueString = _Request.Get("pointExchangeProportion." + (int)userPoint.Type, Method.Post, string.Empty); int value; if (!int.TryParse(valueString, out value)) { msgDisplay.AddError(userPoint.Type.ToString(), 0, string.Format(Lang_Error.User_UserPointExchangeFormatError, userPoint.Name)); } else if (value < 1) { msgDisplay.AddError(userPoint.Type.ToString(), 0, string.Format(Lang_Error.User_UserPointExchangeFormatError, userPoint.Name)); } else { pointExchangeProportions.Add(userPoint.Type, value); } } if (msgDisplay.HasAnyError()) { return; } //PointExchangeProportionCollection tempPointExchangeProportions = AllSettings.Current.UserPointSettings.ExchangeProportions; PointSettings setting = SettingManager.CloneSetttings <PointSettings>(AllSettings.Current.PointSettings); setting.ExchangeProportions = pointExchangeProportions; try { if (!SettingManager.SaveSettings(setting)) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { AllSettings.Current.PointSettings = setting; } } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }
private void SavepointExchangeProportions() { UserPointCollection userPoints = AllSettings.Current.PointSettings.EnabledUserPoints; string[] errorNames = new string[userPoints.Count]; int i = 0; foreach (UserPoint userPoint in userPoints) { errorNames[i] = userPoint.Type.ToString(); i++; } MessageDisplay msgDisplay = CreateMessageDisplay(errorNames); PointExchangeProportionCollection pointExchangeProportions = new PointExchangeProportionCollection(); foreach (UserPoint userPoint in AllSettings.Current.PointSettings.EnabledUserPoints) { string valueString = _Request.Get("pointExchangeProportion." + (int)userPoint.Type,Method.Post,string.Empty); int value; if (!int.TryParse(valueString, out value)) { msgDisplay.AddError(userPoint.Type.ToString(), 0, string.Format(Lang_Error.User_UserPointExchangeFormatError, userPoint.Name)); } else if (value < 1) { msgDisplay.AddError(userPoint.Type.ToString(), 0, string.Format(Lang_Error.User_UserPointExchangeFormatError, userPoint.Name)); } else pointExchangeProportions.Add(userPoint.Type, value); } if (msgDisplay.HasAnyError()) return; //PointExchangeProportionCollection tempPointExchangeProportions = AllSettings.Current.UserPointSettings.ExchangeProportions; PointSettings setting = SettingManager.CloneSetttings<PointSettings>(AllSettings.Current.PointSettings); setting.ExchangeProportions = pointExchangeProportions; try { if (!SettingManager.SaveSettings(setting)) { CatchError<ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else AllSettings.Current.PointSettings = setting; } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }
public static void ConvertPoints() { string sql = @" IF EXISTS (SELECT * FROM sysobjects WHERE [type] = N'U' AND [name] = N'bbsMax_ExtendedPoints') AND EXISTS (SELECT * FROM [sysobjects] WHERE [type]='U' AND [name]='bbsMax_ExtendedPoints') BEGIN SELECT * FROM bbsMax_ExtendedPoints; END ELSE SELECT -9999 AS PointID; IF EXISTS (SELECT * FROM sysobjects WHERE [type] = N'U' AND [name] = N'System_bbsMax_Settings') AND EXISTS (SELECT * FROM [sysobjects] WHERE [type]='U' AND [name]='System_bbsMax_Settings') BEGIN SELECT * FROM System_bbsMax_Settings; END ELSE SELECT '-9999' AS Catalog; "; PointSettings pointSetting = new PointSettings(); UserPointCollection points = new UserPointCollection(); Dictionary<int, bool> allowImports = new Dictionary<int, bool>(); Dictionary<int, bool> allowExports = new Dictionary<int, bool>(); Dictionary<int, int> ratios = new Dictionary<int, int>(); int exchangeMinBalance = 0; double exchangeTax = 0.2; int tradePointID = 0; double tradingTax = 0.2; int transferMinBalance = 0; using (SqlConnection connection = new SqlConnection(Settings.Current.IConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); command.CommandTimeout = 60; try { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int pointID = reader.GetInt32(reader.GetOrdinal("PointID")); if (pointID == -9999) return; if (pointID > 0 && pointID < 9) { pointID = pointID - 1; if (allowExports.ContainsKey(pointID)) continue; UserPoint userPoint = new UserPoint(); allowExports.Add(pointID, reader.GetBoolean(reader.GetOrdinal("AllowExport"))); allowImports.Add(pointID, reader.GetBoolean(reader.GetOrdinal("AllowImport"))); ratios.Add(pointID, reader.GetInt32(reader.GetOrdinal("Ratio"))); userPoint.Type = (MaxLabs.bbsMax.Enums.UserPointType)pointID; userPoint.Name = reader.GetString(reader.GetOrdinal("PointName")); userPoint.UnitName = reader.GetString(reader.GetOrdinal("PointUnit")); userPoint.InitialValue = reader.GetInt32(reader.GetOrdinal("DefaultPoint")); userPoint.Display = reader.GetBoolean(reader.GetOrdinal("IsPublic")); userPoint.Enable = reader.GetBoolean(reader.GetOrdinal("IsEnabled")); userPoint.MaxValue = reader.GetInt32(reader.GetOrdinal("MaxValue")); userPoint.MinValue = reader.GetInt32(reader.GetOrdinal("MinValue")); points.Add(userPoint); } } if (reader.NextResult()) { string pointformula = string.Empty; while (reader.Read()) { string catalog = reader.GetString(reader.GetOrdinal("Catalog")); if (catalog == "-9999") break; if (string.Compare(catalog, "PointSetting", true) == 0) { string key = reader.GetString(reader.GetOrdinal("SettingKey")); string value = reader.GetString(reader.GetOrdinal("SettingValue")); try { switch (key.ToLower()) { case "exchangeminbalance": exchangeMinBalance = int.Parse(value); break; case "exchangetax": exchangeTax = double.Parse(value); break; case "tradepointid": tradePointID = int.Parse(value) - 1; break; case "tradingtax": tradingTax = double.Parse(value); break; case "transferminbalance": transferMinBalance = int.Parse(value); break; case "pointname": pointSetting.GeneralPointName = value; break; case "pointformula": pointformula = value; break; default: break; } } catch { } } } if (string.IsNullOrEmpty(pointformula) == false) pointSetting.GeneralPointExpression = GetGeneralPointExpression(pointformula); } } pointSetting.UserPoints = points; if (allowImports.Count > 0) { //�һ����� PointExchangeProportionCollection ExchangeProportions = new PointExchangeProportionCollection(); for (int i = 0; i < 8; i++) { if (ratios.ContainsKey(i)) { ExchangeProportions.Add((UserPointType)i, ratios[i] == 0 ? 1 : ratios[i]); } else ExchangeProportions.Add((UserPointType)i, 1); } pointSetting.ExchangeProportions = ExchangeProportions; //�һ����� PointExchangeRuleCollection PointExchangeRules = new PointExchangeRuleCollection(); foreach (KeyValuePair<int, bool> pair in allowImports) { if (pair.Value)//������� { foreach (KeyValuePair<int, bool> tempPair in allowExports) { if (tempPair.Key == pair.Key) continue; if (tempPair.Value)//����ҳ� { PointExchangeRule rule = new PointExchangeRule(); rule.PointType = (UserPointType)tempPair.Key; rule.TargetPointType = (UserPointType)pair.Key; try { rule.TaxRate = (int)(exchangeTax * 100); } catch { } PointExchangeRules.Add(rule); } } } } pointSetting.PointExchangeRules = PointExchangeRules; try { pointSetting.TradeRate = (int)(tradingTax * 100); } catch { } //PointTransferRuleCollection PointTransferRules = new PointTransferRuleCollection(); //PointTransferRule tRule = new PointTransferRule(); //tRule.CanTransfer = true; //try //{ // tRule.PointType = (UserPointType)tradePointID; //} //catch //{ //} //tRule.TaxRate = pointSetting.TradeRate; //PointTransferRules.Add(tRule); //pointSetting.PointTransferRules = PointTransferRules; pointSetting.PointTransferRules = new PointTransferRuleCollection(); pointSetting.PointIcons = new PointIconCollection(); } sql = @" UPDATE bx_Settings SET [Value] = @PointString WHERE TypeName = 'MaxLabs.bbsMax.Settings.PointSettings' AND [Key] = '*'; IF @@ROWCOUNT = 0 INSERT INTO bx_Settings ([Key], [Value], [TypeName]) VALUES ('*', @PointString, 'MaxLabs.bbsMax.Settings.PointSettings'); DROP TABLE bbsMax_ExtendedPoints; "; command.CommandText = sql; SqlParameter param = new SqlParameter("@PointString", SqlDbType.NText); param.Value = pointSetting.ToString(); command.Parameters.Add(param); command.ExecuteNonQuery(); } catch (Exception ex) { CreateLog(ex); throw new Exception("������չ��������ʧ��" + ex.Message + sql); } finally { connection.Close(); } } }