// GET: Foods
        public ActionResult Index(UnitOfMass unitOfMass = UnitOfMass.Kilogram, string currencyOfPrice = "MYR")
        {
            ViewBag.CurrencyOrderByFrequencies = db.CurrencyOrderByFrequencies.OrderByDescending(v => v.Frequency).ThenBy(e => e.CurrencyCode).Select(i => new SelectListItem
            {
                Text  = i.CurrencyCode + " - " + i.FullCurrencyName,
                Value = i.CurrencyCode
            });

            DbSet <Food> foods = db.Foods;

            foreach (Food f in foods)
            {
                if (f.Mass.HasValue)
                {
                    f.Mass       = Convert.ToDecimal(f.GetMassInUnit(unitOfMass).Value.ToString("N2"));
                    f.UnitOfMass = (int)unitOfMass;
                }

                if (f.Price.HasValue)
                {
                    f.Price           = Convert.ToDecimal(f.GetPriceInCurrency(currencyOfPrice).Value.ToString("N2"));
                    f.CurrencyOfPrice = currencyOfPrice;
                }
            }

            return(View(foods.ToList()));
        }
Exemple #2
0
 public float?GetMass(UnitOfMass unit)
 {
     return(unit switch
     {
         UnitOfMass.kg => Mass / 1000,
         UnitOfMass.g => Mass,
         UnitOfMass.lbs => Mass * (float)(1 / 453.592),
         UnitOfMass.ton => (Mass * (float)(1 / 453.592) * (float)(1 / 2000)),
         _ => Mass
     });
        public decimal?GetMassInUnit(UnitOfMass UnitOfMass)
        {
            if (Mass.HasValue)
            {
                if (this.UnitOfMass.Value != (int)UnitOfMass)
                {
                    switch (UnitOfMass)
                    {
                    case UnitOfMass.Kilogram:
                        return((decimal)Mass * (decimal)0.453592);

                    case UnitOfMass.Pound:
                        return((decimal)Mass * (decimal)2.204620823516057);
                    }
                }

                return(Mass.Value);
            }
            else
            {
                return(null);
            }
        }