public ActionResult Index(string birthYear, string state, string previousCpts) { int year; if (string.IsNullOrWhiteSpace(birthYear) || !int.TryParse(birthYear, out year) || string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(previousCpts)) { return this.View( new QueryResults { BirthYear = birthYear, CptCodes = previousCpts, Location = state, Results = new TransitionPredictions(new List<TransitionEmissions>()) }); } var cacheRepository = new CacheRepository(this.connectionString); var results = cacheRepository.GetQueryResults(birthYear, state, previousCpts); if (results != null) { return this.View(results); } var queryResults = new QueryResultsBuilder(this.connectionString, birthYear, state, previousCpts).Build(); queryResults.BirthYear = birthYear; queryResults.Location = state; queryResults.CptCodes = previousCpts; cacheRepository.CacheQueryResults(birthYear, state, previousCpts, queryResults); return this.View(queryResults); }
public static void Main(string[] args) { var connectionString = ConfigurationManager.AppSettings[ConnectionString]; var balanceTuples = new List<BalanceTuple>(); Console.WriteLine("Starting Calculations..."); using (var sqlConnection = new SqlConnection(connectionString)) { using (var sqlCommand = new SqlCommand(NewMemberBalancePredictionsSql, sqlConnection)) { sqlConnection.Open(); var reader = sqlCommand.ExecuteReader(); while (reader.Read()) { balanceTuples.Add(BalanceTuple.Factory(reader)); } reader.Close(); } Console.WriteLine("Found " + balanceTuples.Count); var iteration = 1; foreach (var balanceTuple in balanceTuples) { Console.WriteLine("Processing " + iteration + " / " + balanceTuples.Count); iteration++; var queryResults = new QueryResultsBuilder( connectionString, balanceTuple.BirthYear.ToString(CultureInfo.CurrentCulture), balanceTuple.State, balanceTuple.LastCptCode).Build(); balanceTuple.RecommendedBalance = queryResults.Results.MinimumSuggestedAmount; double actualBalance; double.TryParse(balanceTuple.CachedBalance, out actualBalance); balanceTuple.SufficientAmount = actualBalance > balanceTuple.RecommendedBalance ? 1 : 0; using (var command = new SqlCommand(UpdateNewMemberBalancePredictionSql, sqlConnection)) { command.Parameters.AddWithValue(NewMemberIdParam, balanceTuple.NewMemberId); command.Parameters.AddWithValue(DependentIdParam, balanceTuple.DependentId); command.Parameters.AddWithValue(RecommendedBalanceParam, balanceTuple.RecommendedBalance); command.Parameters.AddWithValue(SufficientAmountParam, balanceTuple.SufficientAmount); command.ExecuteNonQuery(); } } } }