public string DisplayMaterials(int indent = 0) { StringBuilder scanText = new StringBuilder(); string indents = new string(' ', indent); scanText.Append("Materials:\n"); foreach (KeyValuePair <string, double> mat in Materials) { EDDiscovery2.DB.MaterialCommodities mc = EDDiscovery2.DB.MaterialCommodities.GetCachedMaterial(mat.Key); if (mc != null) { scanText.AppendFormat(indents + "{0} ({1}) {2} {3}%\n", mc.name, mc.shortname, mc.type, mat.Value.ToString("N1")); } else { scanText.AppendFormat(indents + "{0} {1}%\n", System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(mat.Key.ToLower()), mat.Value.ToString("N1")); } } if (scanText.Length > 0 && scanText[scanText.Length - 1] == '\n') { scanText.Remove(scanText.Length - 1, 1); } return(scanText.ToNullSafeString()); }
Point CreateMaterialNodes(List <PictureBoxHotspot.ImageElement> pc, JournalScan sn, Point matpos, Size matsize) { Point startpos = matpos; Point maximum = matpos; int noperline = 0; bool noncommon = checkBoxMaterialsRare.Checked; string matclicktext = sn.DisplayMaterials(2); foreach (KeyValuePair <string, double> sd in sn.Materials) { string abv = sd.Key.Substring(0, 1); string tooltip = sd.Key; Color fillc = Color.Yellow; EDDiscovery2.DB.MaterialCommodities mc = EDDiscovery2.DB.MaterialCommodities.GetCachedMaterial(sd.Key); if (mc != null) { abv = mc.shortname; fillc = mc.colour; tooltip = mc.name + " (" + mc.shortname + ") " + mc.type + " " + sd.Value.ToString("0.0") + "%"; if (noncommon && mc.type.IndexOf("common", StringComparison.InvariantCultureIgnoreCase) >= 0) { continue; } } CreateMaterialImage(pc, matpos, matsize, abv, tooltip + "\n\n" + "All " + matclicktext, tooltip, fillc, Color.Black); maximum = new Point(Math.Max(maximum.X, matpos.X + matsize.Width), Math.Max(maximum.Y, matpos.Y + matsize.Height)); if (++noperline == 4) { matpos = new Point(startpos.X, matpos.Y + matsize.Height + materialspacer); noperline = 0; } else { matpos.X += matsize.Width + materialspacer; } } return(maximum); }
public void LedgerNC(EDDiscovery2.DB.MaterialCommoditiesLedger mcl, DB.SQLiteConnectionUser conn) { EDDiscovery2.DB.MaterialCommodities mc = mcl.GetMaterialCommodity(EDDiscovery2.DB.MaterialCommodities.CommodityCategory, Type, conn); mcl.AddEventNoCash(Id, EventTimeUTC, EventTypeID, mc.name); }
public void Ledger(EDDiscovery2.DB.MaterialCommoditiesLedger mcl, DB.SQLiteConnectionUser conn) { EDDiscovery2.DB.MaterialCommodities mc = mcl.GetMaterialCommodity(EDDiscovery2.DB.MaterialCommodities.CommodityCategory, Type, conn); mcl.AddEvent(Id, EventTimeUTC, EventTypeID, mc.name + " " + Count, -TotalCost); }
public void Ledger(EDDiscovery2.DB.MaterialCommoditiesLedger mcl, DB.SQLiteConnectionUser conn) { EDDiscovery2.DB.MaterialCommodities mc = mcl.GetMaterialCommodity(EDDiscovery2.DB.MaterialCommodities.CommodityCategory, Type, conn); mcl.AddEvent(Id, EventTimeUTC, EventTypeID, mc.name + " " + Count + " Avg " + AvgPricePaid, SellPrice, (double)(SellPrice - AvgPricePaid)); }
public string Convert(string pname, string value, string eventname) { string displayname = Tools.SplitCapsWord(pname); for (int i = converters.Count - 1; i >= 0; i--) { string[] ids = converters[i].fieldnames.Split(';'); if (Array.FindIndex(ids, x => x.Equals(pname)) != -1 && (converters[i].eventqual == null || Array.FindIndex(converters[i].eventqual, x => x.Equals(eventname)) != -1)) { string[] formatsplit = converters[i].format.Split(';'); switch (converters[i].converttype) { case Types.TBool: bool bv = false; int iv = 0; if (bool.TryParse(value, out bv)) { value = formatsplit[(bv) ? 1 : 0]; } else if (int.TryParse(value, out iv)) { value = formatsplit[(iv != 0) ? 1 : 0]; } else { value = formatsplit[0]; // presume false, may be empty } break; case Types.TState: if (value.Length == 0) { value = formatsplit[0]; } break; case Types.TPrePost: if (formatsplit.Length >= 1 && !value.Contains(formatsplit[0])) // don't repeat { value = formatsplit[0] + value; } if (formatsplit.Length >= 2 && !value.Contains(formatsplit[1])) // don't repeat { value += formatsplit[1]; } break; case Types.TIndex: int ix = 0, offset = 0; if (int.TryParse(value, out ix) && formatsplit.Length >= 4 && int.TryParse(formatsplit[2], out offset)) { if (ix >= offset && ix < offset + formatsplit.Length - 3) { value = formatsplit[0] + formatsplit[ix - offset + 3] + formatsplit[1]; } } break; case Types.TLat: case Types.TLong: double lv; if (double.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out lv)) // if it does parse, we can convert it { long arcsec = (long)(lv * 60 * 60); // convert to arc seconds string marker = (arcsec < 0) ? "S" : "N"; // presume lat if (converters[i].converttype == Types.TLong) { marker = (arcsec < 0) ? "W" : "E"; // presume lat } arcsec = Math.Abs(arcsec); value = string.Format("{0}°{1} {2}'{3}\"", arcsec / 3600, marker, (arcsec / 60) % 60, arcsec % 60); if (formatsplit.Length >= 2) { value = formatsplit[0] + value + formatsplit[1]; } } break; case Types.TMaterialCommodity: EDDiscovery2.DB.MaterialCommodities mc = EDDiscovery2.DB.MaterialCommodities.GetCachedMaterial(value); if (mc != null) { value = mc.name; } if (formatsplit.Length >= 2) { value = formatsplit[0] + value + formatsplit[1]; } break; default: double v = 0; if (double.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out v)) // if it does parse, we can convert it { value = (v * converters[i].scale).ToString(converters[i].format); } break; } if (converters[i].newname != null) { displayname = converters[i].newname; } break; } } //System.Diagnostics.Trace.WriteLine(string.Format("{0} {1} ", displayname , value )); string ret = ((displayname.Length > 0) ? displayname + ":" : "") + value; return(ret); }