public ActionResult GetCountryGroundWaterAvailabilityForFutureUse()
        {
            List <WaterPredictionModel> dataSet = Session["CompleteResultList"] as List <WaterPredictionModel>;

            var storageForFuture = dataSet.GroupBy(st => st.NameOfState)
                                   .Select(x => new {
                NameOfState = x.First().NameOfState,
                NetGroundWaterAvailabilityForFutureUse = x.Sum(xt => xt.NetGroundWaterAvailabilityForFutureUse.HasValue ?
                                                               (double?)Math.Round(xt.NetGroundWaterAvailabilityForFutureUse.Value) : 0)
            }).ToList();
            double?totalStorageForCountry = 0;

            foreach (var stateGroundWaterAvailabilityForFutureUse in storageForFuture)
            {
                totalStorageForCountry += stateGroundWaterAvailabilityForFutureUse.NetGroundWaterAvailabilityForFutureUse;
            }

            PredictionManager predictionManager           = new PredictionManager();
            List <AvarageYearlyCountryStorage> resultList = predictionManager.GetYearlyStorage(totalStorageForCountry, storageForFuture.Count);
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            var resultJson = Json(serializer.Serialize(resultList), JsonRequestBehavior.AllowGet);

            return(resultJson);
        }