public ActionResult Index(CalculatorViewModel model) { if (string.IsNullOrEmpty(model.Type)) { model.Type = "Megabyte"; model.Quantity = 1m; model.Kilo = 1024; } model.CalculatedUnits = Unit.CalculateUnits(model); return View(model); }
public static Dictionary<string, decimal> CalculateUnits(CalculatorViewModel model) { var results = new Dictionary<string, decimal>(); var units = GetUnits(); if (units.ContainsKey(model.Type)) { var unitTypeIndex = units[model.Type]; foreach (var unit in units) { if (model.Type.EndsWith("it")) { if (unit.Key.EndsWith("it")) { results.Add(unit.Key, model.Quantity * (decimal)Math.Pow(model.Kilo, (double)(unit.Value - unitTypeIndex))); } else if (unit.Key.EndsWith("yte")) { results.Add(unit.Key, model.Quantity / 8 * (decimal)Math.Pow(model.Kilo, (double)(unit.Value - unitTypeIndex))); } } else if (model.Type.EndsWith("yte")) { if (unit.Key.EndsWith("yte")) { results.Add(unit.Key, model.Quantity * (decimal)Math.Pow(model.Kilo, (double)(unit.Value - unitTypeIndex))); } else if (unit.Key.EndsWith("it")) { results.Add(unit.Key, model.Quantity * 8 * (decimal)Math.Pow(model.Kilo, (double)(unit.Value - unitTypeIndex))); } } } } return results; }