示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
 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);
 }
示例#4
0
 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);
 }
示例#5
0
 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));
 }
示例#6
0
        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);
        }