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);
        }
Beispiel #2
0
        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;
        }