public ActionResult SoupKitchen()
        {
            // Get the logged in Site ID from the session
            int?SiteID = Session["SiteID"] as int?;

            // if there is none, redirect to the login page
            if (!SiteID.HasValue)
            {
                return(RedirectToAction("Login", "Account"));
            }

            // set up the response object
            SoupKitchenViewModel vm = new SoupKitchenViewModel();

            // Find soup kitchen for given Site ID
            string sql = String.Format(
                "SELECT TotalSeatsAvailable, RemainingSeatsAvailable, HoursOfOperation, ConditionsForUse, Description " +
                "FROM soupkitchen WHERE SiteID = {0}; ", SiteID.Value.ToString());

            // run the sql against the db
            object[] result = SqlHelper.ExecuteSingleSelect(sql, 5);

            // if we got a result, populate the view model fields
            if (result != null)
            {
                vm.SiteID = SiteID.Value;
                vm.TotalSeatsAvailable     = int.Parse(result[0].ToString());
                vm.RemainingSeatsAvailable = int.Parse(result[1].ToString());
                vm.HoursOfOperation        = result[2].ToString();
                vm.ConditionsForUse        = result[3].ToString();
                vm.Description             = result[4].ToString();
            }

            return(View(vm));
        }
        public ActionResult SoupKitchen(SoupKitchenViewModel vm)
        {
            if (ModelState.IsValid)
            {
                // this is needed for some reason.. come back to it
                // http://stackoverflow.com/questions/4837744/hiddenfor-not-getting-correct-value-from-view-model
                ModelState.Remove("SiteID");

                // find out if the soup kitchen exists for this SiteID already
                // and set up the SQL to INSERT or UPDATE accordingly

                if (vm.SiteID.Equals(0))
                {
                    // we didn't find an existing soup kitchen. so insert a new one based on the logged in users Site ID
                    int?SiteID = Session["SiteID"] as int?;
                    // Add soup kitchen for the user's site
                    string sql = String.Format(
                        "INSERT INTO soupkitchen (SiteID, TotalSeatsAvailable, RemainingSeatsAvailable, HoursOfOperation, ConditionsForUse, Description) " +
                        "VALUES ({0}, {1}, {2}, '{3}', '{4}', '{5}'); ",
                        SiteID.Value.ToString(), vm.TotalSeatsAvailable, vm.RemainingSeatsAvailable, vm.HoursOfOperation, vm.ConditionsForUse, vm.Description);

                    SqlHelper.ExecuteNonQuery(sql);

                    vm.SiteID        = SiteID.Value; // set the ID since it now exists
                    vm.StatusMessage = "Succesfully added!";
                }
                else
                {
                    // update the existing record

                    string sql = String.Format(
                        "UPDATE soupkitchen " +
                        "SET TotalSeatsAvailable = {0}, " +
                        "RemainingSeatsAvailable = {1}, " +
                        "HoursOfOperation = '{2}', " +
                        "ConditionsForUse = '{3}', " +
                        "Description = '{4}' " +
                        "WHERE SiteID = {5}; ",
                        vm.TotalSeatsAvailable, vm.RemainingSeatsAvailable, vm.HoursOfOperation, vm.ConditionsForUse, vm.Description, vm.SiteID);

                    SqlHelper.ExecuteNonQuery(sql);

                    vm.StatusMessage = "Succesfully updated!";
                }
            }
            return(View(vm));
        }