public GetRoots CalculateRoots(EquationBL equation) { //-b+sqD/2a var roots = new GetRoots(); double x1 = default; double x2 = default; if (equation.Dscrmnnt.HasValue) { double discriminant = (double)equation.Dscrmnnt; if (discriminant > 0) { x1 = (-equation.B + Math.Sqrt(discriminant)) / (2 * equation.A); x2 = (-equation.B - Math.Sqrt(discriminant)) / (2 * equation.A); } else if (discriminant == 0) { x1 = (-equation.B) / (2 * equation.A); x2 = x1; } roots.X1 = x1; roots.X2 = x2; } return(roots); }
public GetDscrmnntRoots GetEquationSolution(InputDataBL datas) { var dscrmnntAndRoots = new GetDscrmnntRoots(); double x1 = default; double x2 = default; var discriminant = Math.Pow(datas.B, 2) - 4 * datas.A * datas.C; dscrmnntAndRoots.Dscrmnnt = discriminant; if (discriminant > 0) { x1 = (-datas.B + Math.Sqrt(discriminant)) / (2 * datas.A); x2 = (-datas.B - Math.Sqrt(discriminant)) / (2 * datas.A); } else if (discriminant == 0) { x1 = (-datas.B) / (2 * datas.A); x2 = x1; } dscrmnntAndRoots.X1 = x1; dscrmnntAndRoots.X2 = x2; var equationBL = new EquationBL() { A = datas.A, B = datas.B, C = datas.C, Dscrmnnt = dscrmnntAndRoots.Dscrmnnt, X1 = dscrmnntAndRoots.X1, X2 = dscrmnntAndRoots.X2 }; var equationDal = _mapper.Map <Equation>(equationBL); _dataRepozitory.CreateEquationWithRoots(equationDal); return(dscrmnntAndRoots); }
public ActionResult Index(InputData datas) { var datasBL = _mapper.Map <InputDataBL>(datas); //var discr = _equationManager.CalculateDiscriminant(datasBL); var equationBl = new EquationBL() { A = datasBL.A, B = datasBL.B, C = datasBL.C }; //var roots = _equationManager.CalculateRoots(equationBl); var dscrmnntAndRoots = _equationManager.GetEquationSolution(datasBL); equationBl.Dscrmnnt = dscrmnntAndRoots.Dscrmnnt; equationBl.X1 = dscrmnntAndRoots.X1; equationBl.X2 = dscrmnntAndRoots.X2; //equationBl.X1 = roots.X1; //equationBl.X2 = roots.X2; var equationPL = _mapper.Map <EquationPostModel>(equationBl); return(View("GetDscrmnntRoots", equationPL)); }