public string DisplayMaterial(string name, double percent, MaterialCommoditiesList historicmatlist = null, MaterialCommoditiesList currentmatlist = null) { StringBuilder scanText = new StringBuilder(); MaterialCommodityDB mc = MaterialCommodityDB.GetCachedMaterial(name); if (mc != null) { MaterialCommodities historic = historicmatlist?.Find(mc.name); MaterialCommodities current = Object.ReferenceEquals(historicmatlist, currentmatlist) ? null : currentmatlist?.Find(mc.name); int?limit = MaterialCommodityDB.MaterialLimit(mc); string matinfo = historic?.count.ToString() ?? "0"; if (limit != null) { matinfo += "/" + limit.Value.ToString(); } if (current != null && (historic == null || historic.count != current.count)) { matinfo += " Cur " + current.count.ToString(); } scanText.AppendFormat("{0} ({1}) {2} {3}% {4}\n", mc.name, mc.shortname, mc.type, percent.ToString("N1"), matinfo); } else { scanText.AppendFormat("{0} {1}%\n", System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(name.ToLower()), percent.ToString("N1")); } return(scanText.ToNullSafeString()); }
private void Display(MaterialCommoditiesList mcl) { dataGridViewMC.Rows.Clear(); textBoxItems1.Text = textBoxItems2.Text = ""; if (mcl == null) { return; } List <MaterialCommodities> mc = mcl.Sort(!materials); if (mc.Count > 0) { labelNoItems.Visible = false; foreach (MaterialCommodities m in mc) { object[] rowobj; if (materials) { rowobj = new[] { m.name, m.shortname, m.category, m.type, $"{m.count.ToString()}/{(MaterialCommodityDB.MaterialLimit(m.type)??0).ToString()}" }; } else { rowobj = new[] { m.name, m.type, m.count.ToString(), m.price.ToString("0.#") }; } int idx = dataGridViewMC.Rows.Add(rowobj); //dataGridViewMC.Rows[idx].Tag = m; } if (dataGridViewMC.SortedColumn != null && dataGridViewMC.SortOrder != SortOrder.None) { dataGridViewMC.Sort(dataGridViewMC.SortedColumn, dataGridViewMC.SortOrder == SortOrder.Descending ? ListSortDirection.Descending : ListSortDirection.Ascending); } if (materials) { textBoxItems1.Text = mcl.DataCount.ToStringInvariant(); textBoxItems2.Text = mcl.MaterialsCount.ToStringInvariant(); } else { textBoxItems1.Text = mcl.CargoCount.ToStringInvariant(); } } else { labelNoItems.Visible = true; } }