public ActionResult Index(string respondentId)
        {
            var user = UserSession.SessionFactory(respondentId);
            var db = new FederalSpendingDataContext(ConfigurationManager.ConnectionStrings["FederalBudgetSpendingConnectionString"].ConnectionString);

            SessionUtility.User = db.UserSessions.Single(x => x.UserSessionId == user.UserSessionId);
            return RedirectToAction("Task");
        }
        public int GetRandomPrompt()
        {
            Random rand = new Random();
            var db = new FederalSpendingDataContext(Connection.String);

            int totalWeight = db.Prompts.Sum(x => x.Probability);

            int randomNumber = rand.Next(0, totalWeight);

            Prompt selectedPrompt = null;
            foreach (var prompt in db.Prompts.OrderByDescending(x => x.Probability))
            {
                if (randomNumber < prompt.Probability)
                {
                    selectedPrompt = prompt;
                    break;
                }

                randomNumber = randomNumber - prompt.Probability;
            }

            return selectedPrompt.PromptId;
        }
        public ActionResult Task(List<BudgetTaskCategory> taskCategories)
        {
            int sum = 0;
            var db = new FederalSpendingDataContext(ConfigurationManager.ConnectionStrings["FederalBudgetSpendingConnectionString"].ConnectionString);

            foreach (var category in taskCategories)
            {
                var categoryToSave = db.BudgetTaskCategories.Single(x => x.BudgetTaskCategoryId == category.BudgetTaskCategoryId);
                categoryToSave.Value = category.Value;

                sum += category.Value;
            }

            if (sum != 100)
            {
                ModelState.AddModelError("DoesntEqual100", "The values provided do not add up to 100%.  Please correct them and try again.");

                return View(User.BudgetTask);
            }

            db.SubmitChanges();
            return View("Success");
        }
 public void PostValueChange(int id, int previous, int current)
 {
     var db = new FederalSpendingDataContext(ConfigurationManager.ConnectionStrings["FederalBudgetSpendingConnectionString"].ConnectionString);
     db.BudgetTaskCategoryHistories.InsertOnSubmit(new BudgetTaskCategoryHistory { BudgetTaskCategoryId = id, PreviousValue = previous, CurrentValue = current, CreateDate = DateTime.Now });
     db.SubmitChanges();
 }