public async Task <ActionResult> Index(ParamViewModel coefficient) { if (ModelState.IsValid) { ParamDTO _coefficient = coefficient.ReplaceType(coefficient); PointsParabola pointPar = new PointsParabola(coefficient.ReplaceType(coefficient)); int paramId = await service.FindParamsIdAsync(_coefficient); List <CacheDataDTO> cacheData = new List <CacheDataDTO>(); List <PointsViewModel> points = new List <PointsViewModel>(); if (paramId == -1) { cacheData = pointPar.GetCacheDatas(_coefficient); await service.AddParamsAndCacheDataAsync(_coefficient, cacheData); } else { cacheData = await service.GetCacheDataAsync(paramId); } foreach (var c in cacheData) { points.Add(new PointsViewModel(c.PointX, c.PointY)); } ViewBag.Result = points; ViewBag.IsRotated = coefficient.A < 0; return(View("Index")); } return(View("Index")); }