// 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())); }
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); } }