/// <summary>
        /// Вычилсить прибыль и добавить строчку в таблицу
        /// </summary>
        /// <param name="ore">тип руды</param>
        /// <param name="netYield">The net yield.</param>
        /// <param name="quantity">количество руды для процессинга</param>
        private double InsertProfitLine(Ore ore, double netYield, int quantity)
        {
            int unitProcess    = quantity - quantity % ore.UnitsToRefine;
            int numberOfCycles = quantity / ore.UnitsToRefine;

            MineralsOut minout = ore.GetMineralsOut(netYield, quantity);
            double      profit = minout.GetMineralProfit();

            //Добавляем строчку
            DataGridViewRow row = new DataGridViewRow();

            DataGridViewCell[] cells = new DataGridViewCell[dataGridViewCalc.ColumnCount];
            cells[ColumnOreCalc.Index] = new DataGridViewTextBoxCell {
                Value = ore.Name
            };
            cells[ColumnVolume.Index] = new DataGridViewTextBoxCell
            {
                Value = (unitProcess * ore.Volume).ToString("F2")                               // + " m3"
            };
            cells[ColumnRefVolume.Index] = new DataGridViewTextBoxCell
            {
                Value = ((ore.MineralsOut.Tritanium +
                          ore.MineralsOut.Pyerite +
                          ore.MineralsOut.Mexallon +
                          ore.MineralsOut.Isogen +
                          ore.MineralsOut.Nocxium +
                          ore.MineralsOut.Zydrine +
                          ore.MineralsOut.Megacyte +
                          ore.MineralsOut.Morphite) * numberOfCycles *
                         ore.GetEfficiency(netYield) * 0.01).ToString("F2")
            };

            cells[ColumnProfit.Index] = new DataGridViewTextBoxCell {
                Value = profit.ToString("#,#.##")
            };                                                                                           // + " ISK"};
            cells[ColumnDelete2.Index] = new DataGridViewButtonCell {
                Value = "x"
            };

            row.Cells.AddRange(cells);
            dataGridViewCalc.Rows.Add(row);
            return(profit);
        }
        /// <summary>
        /// Handles the Click event of the btnCalculateBars control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void BtnCalculateBarsClick(object sender, EventArgs e)
        {
            double netYield = 0.5;

            try
            {
                netYield = Convert.ToDouble(textBoxNetYield.Text) / 100;
            }
            catch (FormatException)
            {
            }
            //Veldspar
            int         quantity = GetQuantity(textBoxVeldspar0);
            Ore         ore      = OreList.Get("Veldspar");
            MineralsOut minerals = ore.GetMineralsOut(netYield, quantity);

            quantity  = GetQuantity(textBoxVeldspar5);
            ore       = OreList.Get("Concentrated Veldspar");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxVeldspar10);
            ore       = OreList.Get("Dense Veldspar");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Scordite
            quantity  = GetQuantity(textBoxScordite0);
            ore       = OreList.Get("Scordite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxScordite5);
            ore       = OreList.Get("Condensed Scordite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxScordite10);
            ore       = OreList.Get("Massive Scordite");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Pyroxeres
            quantity  = GetQuantity(textBoxPyroxeres0);
            ore       = OreList.Get("Pyroxeres");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxPyroxeres5);
            ore       = OreList.Get("Solid Pyroxeres");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxPyroxeres10);
            ore       = OreList.Get("Viscous Pyroxeres");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Plagioclase
            quantity  = GetQuantity(textBoxPlagioclase0);
            ore       = OreList.Get("Plagioclase");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxPlagioclase5);
            ore       = OreList.Get("Azure Plagioclase");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxPlagioclase10);
            ore       = OreList.Get("Rich Plagioclase");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Omber
            quantity  = GetQuantity(textBoxOmber0);
            ore       = OreList.Get("Omber");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxOmber5);
            ore       = OreList.Get("Silvery Omber");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxOmber10);
            ore       = OreList.Get("Golden Omber");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Kernite
            quantity  = GetQuantity(textBoxKernite0);
            ore       = OreList.Get("Kernite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxKernite5);
            ore       = OreList.Get("Luminous Kernite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxKernite10);
            ore       = OreList.Get("Fiery Kernite");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Jaspet
            quantity  = GetQuantity(textBoxJaspet0);
            ore       = OreList.Get("Jaspet");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxJaspet5);
            ore       = OreList.Get("Pure Jaspet");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxJaspet10);
            ore       = OreList.Get("Pristine Jaspet");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Hemorphite
            quantity  = GetQuantity(textBoxHemorphite0);
            ore       = OreList.Get("Hemorphite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxHemorphite5);
            ore       = OreList.Get("Vivid Hemorphite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxHemorphite10);
            ore       = OreList.Get("Radiant Hemorphite");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Hedbergite
            quantity  = GetQuantity(textBoxHedbergite0);
            ore       = OreList.Get("Hedbergite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxHedbergite5);
            ore       = OreList.Get("Vitric Hedbergite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxHedbergite10);
            ore       = OreList.Get("Glazed Hedbergite");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Gneiss
            quantity  = GetQuantity(textBoxGneiss0);
            ore       = OreList.Get("Gneiss");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxGneiss5);
            ore       = OreList.Get("Iridescent Gneiss");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxGneiss10);
            ore       = OreList.Get("Prismatic Gneiss");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //DarkOchre
            quantity  = GetQuantity(textBoxDarkOchre0);
            ore       = OreList.Get("Dark Ochre");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxDarkOchre5);
            ore       = OreList.Get("Onyx Ochre");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxDarkOchre10);
            ore       = OreList.Get("Obsidian Ochre");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Spodumain
            quantity  = GetQuantity(textBoxSpodumain0);
            ore       = OreList.Get("Spodumain");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxSpodumain5);
            ore       = OreList.Get("Bright Spodumain");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxSpodumain10);
            ore       = OreList.Get("Gleaming Spodumain");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Crokite
            quantity  = GetQuantity(textBoxCrockite0);
            ore       = OreList.Get("Crokite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxCrockite5);
            ore       = OreList.Get("Sharp Crokite");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxCrockite10);
            ore       = OreList.Get("Crystalline Crokite");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Bistot
            quantity  = GetQuantity(textBoxBistot0);
            ore       = OreList.Get("Bistot");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxBistot5);
            ore       = OreList.Get("Triclinic Bistot");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxBistot10);
            ore       = OreList.Get("Monoclinic Bistot");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Arkonor
            quantity  = GetQuantity(textBoxArkonor0);
            ore       = OreList.Get("Arkonor");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxArkonor5);
            ore       = OreList.Get("Crimson Arkonor");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxArkonor10);
            ore       = OreList.Get("Prime Arkonor");
            minerals += ore.GetMineralsOut(netYield, quantity);

            //Mercoxit
            quantity  = GetQuantity(textBoxMercoxit0);
            ore       = OreList.Get("Mercoxit");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxMercoxit5);
            ore       = OreList.Get("Magma Mercoxit");
            minerals += ore.GetMineralsOut(netYield, quantity);
            quantity  = GetQuantity(textBoxMercoxit10);
            ore       = OreList.Get("Vitreous Mercoxit");
            minerals += ore.GetMineralsOut(netYield, quantity);


            RefreshHistogram(minerals);
        }