public override void Load() { base.Load(); NatureEntries = new List <NatureEntry>(); DataView view = DataTable.DefaultView; foreach (DataRowView rowView in view) { NatureEntry newEntry = new NatureEntry(); newEntry.ID = int.Parse(rowView["ID"].ToString()); newEntry.Name = rowView["Name"] as String; string addsStr = rowView["Additions"] as String; JSONArray ary = JSON.Parse(addsStr).AsArray; newEntry.Additions = new AdditionList(); foreach (JSONNode node in ary) { Addition add = new Addition(); add.Type = (EAddition)node["Type"].AsInt; add.Value = node["Value"].AsInt; newEntry.Additions.Add(add); } NatureEntries.Add(newEntry); } }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (AppUtil.IsInDesignMode) { return("0"); } try { NatureRequirement natureRequirement = values[0] as NatureRequirement; if (natureRequirement == null) { return("nature_nil"); } int grade = 1; int.TryParse(values[1].ToString(), out grade); if (grade < 0) { return("grade<0"); } else if (grade == 0) { return("0"); } EAddition addType = (EAddition)values[2]; int sum = 0; for (int i = 1; i <= grade; i++) { int index = i - 1; if (index >= natureRequirement.Count) { break; } NatureList natureList = natureRequirement[index]; foreach (NatureEnumWrap wrap in natureList) { NatureEntry entry = ModelManager.Instance.NatureXlsData[wrap.Value]; Addition add = entry.Additions[addType]; sum += add.Value; } } return(sum.ToString()); } catch (Exception e) { LogManager.Instance.Error(e.Message); LogManager.Instance.Error(e.Source); LogManager.Instance.Error(e.StackTrace); return("100"); } }