public ActionResult Result(MathViewModel quantity) { var m = BaseMeasure.Random(); Measures.Instance.Add(m); var u1 = new BaseUnit(m, Unit.SetFactor(quantity.QuantityList[0].Unit), quantity.QuantityList[0].Unit, quantity.QuantityList[0].Unit); Units.Instance.Add(u1); var q1 = new Quantity(quantity.QuantityList[0].Amount, u1); Quantity q2 = new Quantity(); if (quantity.QuantityList[1].Unit != string.Empty) { var u2 = new BaseUnit(m, Unit.SetFactor(quantity.QuantityList[1].Unit), quantity.QuantityList[1].Unit, quantity.QuantityList[1].Unit); Units.Instance.Add(u2); q2 = new Quantity(quantity.QuantityList[1].Amount, u2); } quantity = SetResult(quantity, q1, q2); return(View("Index", quantity)); }
public ActionResult Result(ComplexMathViewModel quantity) { var q1 = quantity.FirstQuantity; var q2 = quantity.SecondQuantity; var baseMeasure = BaseMeasure.Random(); Measures.Instance.Add(baseMeasure); var derivedMeasure = DerivedMeasure.Random(); Measures.Instance.Add(derivedMeasure); int i = 0; List <DerivedUnit> derivedUnits = new List <DerivedUnit>(); foreach (string str in quantity.UnitList) { var baseUnit = new BaseUnit(baseMeasure, Unit.SetFactor(str), str, str); Units.Instance.Add(baseUnit); var derivedUnit = baseUnit.Exponentiation(quantity.PowerList[i]) as DerivedUnit; derivedUnit.Measure = derivedMeasure; Units.Instance.Add(derivedUnit); derivedUnits.Add(derivedUnit); i++; if (i == quantity.NumberOfUnits) { break; } } for (int j = 0; j < quantity.NumberOfUnits - 1; j++) { var a = derivedUnits[j].Multiply(derivedUnits[j + 1]) as DerivedUnit; Units.Instance.Add(a); derivedUnits[j + 1] = a; if (j == quantity.NumberOfUnits - 2) { q1.Unit = a.Name; q2.Unit = a.Name; } } quantity = SetResults(quantity, q1, q2); return(View("Index", quantity)); }