Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }