Exemple #1
0
        public decimal EggsConsumedFromIngredientMeasurement(string measurement)
        {
            var parse            = new ParseFraction();
            var measurementArray = SplitWeightMeasurement(measurement);

            return(parse.Parse(measurementArray[0]));
        }
Exemple #2
0
        public string[] SplitAndAdjustEggMeasurement(string eggMeasurement, decimal multiplier)
        {
            var parse = new ParseFraction();
            var adjustedEggMeasurement = new string[] { };
            int n;
            var eggsAdjusted = "";
            var eggQuantity  = "";
            var typeOfEggs   = "";

            for (int i = 0; i < eggMeasurement.Count(); i++)
            {
                if ((i > 0) && (i < eggMeasurement.Count() - 1))
                {
                    var previous = i - 1;
                    var next     = i + 1;
                    if ((eggMeasurement[i] == ' ') && (int.TryParse(eggMeasurement[previous].ToString(), out n)) && (!int.TryParse(eggMeasurement[next].ToString(), out n)))
                    {
                        eggQuantity  = eggMeasurement.Substring(0, i);
                        typeOfEggs   = eggMeasurement.Substring(next, (eggMeasurement.Count() - (i + 1)));
                        eggsAdjusted = (parse.Parse(eggQuantity) * multiplier).ToString();
                        var eggsAdjustedArr = new string[] { };
                        if ((eggsAdjusted.Contains(".00") || eggsAdjusted.Contains(".0")) || eggsAdjusted[eggsAdjusted.Count() - 1] == '.')
                        {
                            eggsAdjustedArr = eggsAdjusted.Split('.');
                            eggsAdjusted    = eggsAdjustedArr[0];
                        }
                        adjustedEggMeasurement = new string[] { eggsAdjusted, typeOfEggs };
                        break;
                    }
                }
            }
            return(adjustedEggMeasurement);
            //a question for the future: what to do with the liquid eggs, like the egg beaters... that will obviously have eggs in the name, but will need to be dealt with differently
            //the easiest solution I can see if the name has cups, tablespoons or teaspoons to return the valule of splitMultiLevelMeasurement(egg measurement)
        }
Exemple #3
0
        public decimal ConvertWeightToOunces(string weight)
        {
            if (string.IsNullOrEmpty(weight))
            {
                throw new Exception("Weight is null when trying to convert weight to ounces");
            }
            var measurements = new string[] { "gall", "cup", "pint", "quart", "pound", "lb", "oz", "ounce", "gram" };
            var count        = 0;

            foreach (var measurement in measurements)
            {
                if (weight.ToLower().Contains(measurement))
                {
                    count++;
                    break;
                }
            }
            if (count == 1)
            {
                var parse = new ParseFraction();
                weight = weight.ToLower();
                var splitWeight         = SplitWeightMeasurement(weight);
                var weightToBeConverted = parse.Parse(splitWeight[0]);
                if (weight.ToLower().Contains("gall"))
                {
                    return(GallonsToOunces(weightToBeConverted));
                }
                if (weight.ToLower().Contains("pint"))
                {
                    return(PintsToOunces(weightToBeConverted));
                }
                if (weight.ToLower().Contains("quart"))
                {
                    return(QuartsToOunces(weightToBeConverted));
                }
                if (weight.ToLower().Contains("pound") || weight.Contains("lb"))
                {
                    return(PoundsToOunces(weightToBeConverted));
                }
                if (weight.ToLower().Contains("cup"))
                {
                    return(CupsToOunces(weightToBeConverted));
                }
                if (weight.ToLower().Contains("gram"))
                {
                    return(GramsToOunces(weightToBeConverted));
                }
                else
                {
                    return(Math.Round((weightToBeConverted), 2));
                }
            }
            else
            {
                return(0m);
            }
        }
Exemple #4
0
        public decimal AdjustToTeaspoons(string measurement)
        {
            var parseFraction                = new ParseFraction();
            var splitMeasurement             = new string[] { };
            var decimalMeasurement           = 0m;
            var trimmedMeasurement           = "";
            var convertToTeaspoonMeasurement = 0m;

            if (measurement.ToLower().Contains("cup"))
            {
                splitMeasurement             = measurement.ToLower().Split('c');
                trimmedMeasurement           = splitMeasurement[0].TrimEnd();
                decimalMeasurement           = parseFraction.Parse(trimmedMeasurement);
                convertToTeaspoonMeasurement = CupsToTeaspoons(decimalMeasurement);
            }
            if ((measurement.ToLower().Contains("table")))
            {
                splitMeasurement             = measurement.ToLower().Split('t');
                trimmedMeasurement           = splitMeasurement[0].TrimEnd();
                decimalMeasurement           = parseFraction.Parse(trimmedMeasurement);
                convertToTeaspoonMeasurement = TablespoonsToTeaspoons(decimalMeasurement);
            }
            if ((measurement.ToLower().Contains("tea")))
            {
                splitMeasurement             = measurement.ToLower().Split('t');
                trimmedMeasurement           = splitMeasurement[0].TrimEnd();
                decimalMeasurement           = parseFraction.Parse(trimmedMeasurement);
                convertToTeaspoonMeasurement = decimalMeasurement;
            }
            if ((measurement.ToLower().Contains("pinch")))
            {
                splitMeasurement             = measurement.ToLower().Split('p');
                trimmedMeasurement           = splitMeasurement[0].TrimEnd();
                decimalMeasurement           = parseFraction.Parse(trimmedMeasurement);
                convertToTeaspoonMeasurement = PinchesToTeaspoons(decimalMeasurement);
            }
            return(Math.Round(convertToTeaspoonMeasurement, 2));
        }
Exemple #5
0
        //there is so much repetition here... this has to be fixed.
        //pattern: dictionary with keys: cups, tablespoons, teaspoons, pinches,
        //i can have these numbers in an array, and have the teaspoon measurement go through the numbers in the array and add to the dictionary based on the corresponding value...
        //the majority of the filled lines here come from adding to the dictionary...
        //this one should be pretty easy, actually, just having a method to add to the dictionary cups, tablespoons or pinches based whether the teaspoon amount >= 48, etc.
        public string CondenseTeaspoonMeasurement(decimal teaspoons)
        {
            var parse                = new ParseFraction();
            var measDict             = new Dictionary <string, decimal>();
            var condensedMeasurement = "";

            do
            {
                if (teaspoons >= 576)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + 12m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", 12m);
                    }
                    teaspoons -= 576m;
                }
                if (teaspoons >= 384)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + 8m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", 8m);
                    }
                    teaspoons -= 384m;
                }
                if (teaspoons >= 192)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + 4m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", 4m);
                    }
                    teaspoons -= 192m;
                }
                if (teaspoons >= 96)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + 2m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", 2m);
                    }
                    teaspoons -= 96m;
                }
                if (teaspoons >= 48m)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + 1m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", 1m);
                    }
                    teaspoons -= 48m;
                }
                if (teaspoons < 48 && teaspoons >= 32)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + .66m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", .66m);
                    }
                    teaspoons -= 32;
                }
                if (teaspoons < 32 && teaspoons >= 24)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + .5m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", .5m);
                    }
                    teaspoons -= 24m;
                }
                if (teaspoons < 24 && teaspoons >= 16)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + .33m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", .33m);
                    }
                    teaspoons -= 16m;
                }
                if (teaspoons < 16 && teaspoons >= 12)
                {
                    if (measDict.Keys.Contains("cups"))
                    {
                        measDict["cups"] = measDict["cups"] + .25m;
                    }
                    if (!measDict.Keys.Contains("cups"))
                    {
                        measDict.Add("cups", .25m);
                    }
                    teaspoons -= 12m;
                }
                if (teaspoons < 12m && teaspoons >= 3m)
                {
                    if (measDict.Keys.Contains("tablespoons"))
                    {
                        measDict["tablespoons"] = measDict["tablespoons"] + 1m;
                    }
                    if (!measDict.Keys.Contains("tablespoons"))
                    {
                        measDict.Add("tablespoons", 1m);
                    }
                    teaspoons -= 3m;
                }
                if (teaspoons < 3m && teaspoons >= 1)
                {
                    if (measDict.Keys.Contains("teaspoons"))
                    {
                        measDict["teaspoons"] = measDict["teaspoons"] + 1m;
                    }
                    if (!measDict.Keys.Contains("teaspoons"))
                    {
                        measDict.Add("teaspoons", 1m);
                    }
                    teaspoons -= 1m;
                }
                if (teaspoons < 1m && teaspoons >= .125m)
                {
                    if (teaspoons < .28m && teaspoons > .22m)
                    {
                        teaspoons = .25m;
                    }
                    if (teaspoons > .95m)
                    {
                        teaspoons = 1m;
                    }
                    if (measDict.Keys.Contains("teaspoons"))
                    {
                        measDict["teaspoons"] = measDict["teaspoons"] + .125m;
                    }
                    if (!measDict.Keys.Contains("teaspoons"))
                    {
                        measDict.Add("teaspoons", .125m);
                    }
                    teaspoons -= .125m;
                }
                if (teaspoons < .125m && teaspoons > 0m)
                {
                    if (measDict.Keys.Contains("pinches"))
                    {
                        measDict["pinches"] = measDict["pinches"] + 1;
                    }
                    if (!measDict.Keys.Contains("pinches"))
                    {
                        measDict.Add("pinches", 1);
                    }
                    teaspoons -= .06m;
                    if (teaspoons < .05m && teaspoons > 0m)
                    {
                        teaspoons = 0;
                    }
                }
            } while (teaspoons > 0m);
            foreach (KeyValuePair <string, decimal> measurement in measDict)
            {
                var valArr = new string[] { };
                var value  = Math.Round(measurement.Value, 3).ToString().TrimStart('0');
                if (value.Contains(".00") || value.Contains(".0"))
                {
                    valArr = value.Split('.');
                    var singleCondensedMeasurement = parse.ParseDecimalToFraction(valArr[0].TrimEnd('0') + " " + measurement.Key) + " ";
                    condensedMeasurement += singleCondensedMeasurement;
                }
                else
                {
                    var singleCondensedMeasurement = parse.ParseDecimalToFraction(value.TrimEnd('0') + " " + measurement.Key) + " ";
                    condensedMeasurement += singleCondensedMeasurement;
                }
            }
            var sampleTest = condensedMeasurement.Trim();

            return(condensedMeasurement.TrimEnd());
        }