public void insertIngredientConsumtionData(Ingredient i)
        {
            var db  = new DatabaseAccess();
            var dbI = new DatabaseAccessIngredient();
            var dbConsumptionOuncesConsumed = new DatabaseAccessConsumptionOuncesConsumed();
            var convertWeight = new ConvertWeight();
            var convert       = new ConvertDensity();
            var myIngredientIngredientTable = dbI.queryIngredientFromIngredientsTableByName(i);
            var myConsumptionTable          = queryConsumptionTable();
            //i need to make sure i have all my information from my sql tables... that's why im getting null reference exceptions...
            var  temp = new Ingredient();
            bool alreadyContainsIngredient = new bool();

            if (myIngredientIngredientTable.classification.ToLower().Contains("egg"))
            {
                temp.name = "Egg";
                //i would prefer this to be eggs, but i am matching the ingredient_classification if the ingredient.name doesn't match for querying the ingredients table and the consumption table, and the classifications are singular...
                //i'm going to have to put a warning or something in the READ ME asking the user not to change the name of the consumption table ignredients... i'm not a big fan of that. I want there to be flexibility for what the user needs
                i.ouncesConsumed = convertWeight.EggsConsumedFromIngredientMeasurement(myIngredientIngredientTable.measurement);
            }
            else
            {
                i.ouncesConsumed = dbConsumptionOuncesConsumed.CalculateOuncesConsumedFromMeasurement(i);
            }
            foreach (var ingredient in myConsumptionTable)
            {
                if (ingredient.name.ToLower() == i.name.ToLower() && (ingredient.name.ToLower().Contains(i.classification.ToLower()) && i.classification != " ") ||
                    ingredient.name == temp.name)
                {
                    //if the name is the same && the classification is the same || the ingredient.name is the temp.name, noting the eggs already being present
                    alreadyContainsIngredient = true;
                    break;
                }
            }
            if (string.IsNullOrEmpty(temp.name))
            {
                temp.name = i.name;
            }
            if (alreadyContainsIngredient == false)
            {
                var commandText = @"Insert into consumption (name, density, ounces_consumed, ounces_remaining, measurement) values (@name, @density, @ounces_consumed, @ounces_remaining, @measurement);";
                db.executeVoidQuery(commandText, cmd => {
                    cmd.Parameters.AddWithValue("@name", temp.name);
                    cmd.Parameters.AddWithValue("@density", i.density);
                    cmd.Parameters.AddWithValue("@ounces_consumed", i.ouncesConsumed);
                    cmd.Parameters.AddWithValue("@ounces_remaining", i.ouncesRemaining);
                    cmd.Parameters.AddWithValue("@measurement", i.measurement);
                    return(cmd);
                });
                updateConsumptionTable(i);
            }
            else
            {
                updateConsumptionTable(i);
            }
            var myUpdatedIngredient = queryConsumptionTable();
            var myConsumptionOuncesConsumedTable = dbConsumptionOuncesConsumed.queryConsumptionOuncesConsumed();
        }
        public void TestPercentageIngredientMeasurementToStandardMeasurement4()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Vanilla Extract")
            {
                measurement = "1 1/2 tablespoons"
            };
            var expected = .0938m;
            var actual   = convert.PercentageUsedMeasurementToStandardMeasurement(i);

            Assert.AreEqual(expected, actual);
        }
        public void TestPercentageIngredientMeasurementToStandardMeasurement3()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Bread Flour")
            {
                measurement = "6 1/3 cup"
            };
            var expected = 6.3333m;
            var actual   = convert.PercentageUsedMeasurementToStandardMeasurement(i);

            Assert.AreEqual(expected, actual);
        }
        public void TestOuncesConsumedBasedOnMeasurement3()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Grandulated Sugar")
            {
                measurement = "1 teaspoon",
                density     = 7.1m
            };
            var expected = .15m;
            var actual   = convert.CalculateOuncesUsed(i);

            Assert.AreEqual(expected, actual);
        }
        public void TestOuncesConsumedBasedOnMeasurement2()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Bread Flour")
            {
                measurement = "5 2/3 cups",
                density     = 5.4m
            };
            var expected = 30.60m;
            var actual   = convert.CalculateOuncesUsed(i);

            Assert.AreEqual(expected, actual);
        }
        public void TestOuncesConsumedBasedOnMeasurement()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Confectioner's Sugar")
            {
                measurement = "3 cups",
                density     = 4.4m
            };
            var expected = 13.2m;
            var actual   = convert.CalculateOuncesUsed(i);

            Assert.AreEqual(expected, actual);
        }
        public void TestOuncesConsumedBasedOnMeasurement4()
        {
            var convert = new ConvertDensity();
            var i       = new Ingredient("Baking Soda")
            {
                measurement = "1/4 teaspoon",
                density     = 8.57m
            };
            var expected = .04m;
            var actual   = convert.CalculateOuncesUsed(i);

            Assert.AreEqual(expected, actual);
        }
        public decimal CalculateOuncesConsumedFromMeasurement(Ingredient i)
        {
            var dbIngredients      = new DatabaseAccessIngredient();
            var convertMeasurement = new ConvertMeasurement();
            var convertWeight      = new ConvertWeight();
            var convert            = new ConvertDensity();
            var myIngredientIngredientsTableData = dbIngredients.queryIngredientFromIngredientsTableByName(i);
            var myConsumedOunces = 0m;
            var temp             = new Ingredient();

            if (myIngredientIngredientsTableData.classification.ToLower().Contains("egg"))
            {
                var accumulatedOunces = convertMeasurement.AccumulatedTeaspoonMeasurement(i.measurement);
                if (i.classification.ToLower().Contains("egg"))
                {
                    var splitEggMeasurement = convertWeight.SplitWeightMeasurement(i.sellingWeight);
                    i.sellingWeightInOunces = decimal.Parse(splitEggMeasurement[0]);
                }
            }
            myConsumedOunces = convert.CalculateOuncesUsed(i);
            return(myConsumedOunces);
        }