public ActionResult Create([Bind(Include = "Description,Date_Time,Body_Weight,BMI,Exercises")] Workout workout) { // Set user id workout.User_Id = GetUserId(); if (ModelState.IsValid) { // Get current user id workout.User_Id = GetUserId(); // Check if Add To Schedule checkbox should be checked or not if (Request.Form["addToSchedule"] != null && Request.Form["addToSchedule"] != "" && Request.Form["addtoSchedule"] == "on") workout.ScheduleCheckbox = true; else workout.ScheduleCheckbox = false; // Save changes to workout db.Workouts.Add(workout); db.SaveChanges(); // Save event to schedule if user selected the Add To Schedule checkbox var check = Request.Form["addToSchedule"]; if (Request.Form["addToSchedule"] != null && Request.Form["addToSchedule"] != "" && Request.Form["addtoSchedule"] == "on") { // Create record var toBeCreated = new Event { WorkoutId = workout.Id, EventStart = workout.Date_Time, EventEnd = workout.Date_Time, Text = workout.Description }; toBeCreated.UserId = GetUserId(); toBeCreated.WorkoutId = workout.Id; db.Events.Add(toBeCreated); db.SaveChanges(); TempData["flashMessageSuccess"] = "Workout created and entry added to schedule."; } else { TempData["flashMessageSuccess"] = "Workout created."; } return RedirectToAction("Index"); } return View(workout); }
protected override void OnTimeRangeSelected(TimeRangeSelectedArgs e) { //var name = (string)e.Data["name"]; //TODO: Make event name appear :: Possible javascript error if ((string)e.Data["name"] == "" || (string)e.Data["name"] == null) { return; } var toBeCreated = new Event { EventStart = e.Start, EventEnd = e.End, Text = (string)e.Data["name"] }; toBeCreated.UserId = USERID; db.Events.Add(toBeCreated); db.SaveChanges(); Update(); }
public ActionResult Edit([Bind(Include = "Id,Description,Date_Time,Body_Weight,BMI,Exercises")] Workout workout) { if (ModelState.IsValid) { // Holds any exercise ids the user decided to delete string[] exercisesToDelete = Request.Form["exercises_to_remove"].Split(':'); // Loop through them and delete them for (int i = 0; i < exercisesToDelete.Length; i++) { if (exercisesToDelete[i] == "") continue; // Get id int id = int.Parse(exercisesToDelete[i]); // Get exercise Exercis e = db.Exercises.Where(o => o.Id == id).First(); // Remove sets var setsEntities = db.Sets.Where(o => o.Exercise_Id == e.Id); db.Sets.RemoveRange(setsEntities); // Remove exercise db.Exercises.Remove(e); } // Save changes thus far db.SaveChanges(); // Set the workout to belong to the currently logged in user workout.User_Id = GetUserId(); // Loop through exercises for (int i = 0; i < workout.Exercises.Count; i++) { Exercis exercise = workout.Exercises[i]; // Associate the exercise with the workout exercise.Workout_Id = workout.Id; // Grab the new sets IList<Set> sets = workout.Exercises[i].Sets; // Save exercises if (exercise.Id == 0) { db.Exercises.Add(exercise); } else { var exerciseEntity = db.Exercises.Where(o => o.Id == exercise.Id).AsQueryable().FirstOrDefault(); db.Entry(exerciseEntity).CurrentValues.SetValues(exercise); workout.Exercises[i] = exerciseEntity; } // Save changes to exercises db.SaveChanges(); // Update sets for (int s = 0; s < sets.Count; s++) { Set set = sets[s]; if (set.Exercise_Id == 0) set.Exercise_Id = workout.Exercises[i].Id; if (set.Id == 0 || set.Id == null) { set.Id = null; db.Sets.Add(set); } else { var setEntity = db.Sets.Where(o => o.Id == set.Id).AsQueryable().FirstOrDefault(); db.Entry(setEntity).CurrentValues.SetValues(set); sets[s] = setEntity; } // Save changes to sets db.SaveChanges(); } } // Update workout if (Request.Form["addToSchedule"] != null && Request.Form["addToSchedule"] != "" && Request.Form["addtoSchedule"] == "on") { workout.ScheduleCheckbox = true; } else { workout.ScheduleCheckbox = false; } db.Entry(workout).State = EntityState.Modified; db.SaveChanges(); // Remove event if it exists (we will just recreate it) var toBeDeleted = db.Events.Where(o => o.WorkoutId == workout.Id); if (toBeDeleted != null) { db.Events.RemoveRange(toBeDeleted); db.SaveChanges(); } // Create/Recreate schedule event var check = Request.Form["addToSchedule"]; if (Request.Form["addToSchedule"] != null && Request.Form["addToSchedule"] != "" && Request.Form["addtoSchedule"] == "on") { var toBeCreated = new Event { WorkoutId = workout.Id, EventStart = workout.Date_Time, EventEnd = workout.Date_Time, Text = workout.Description }; toBeCreated.UserId = GetUserId(); toBeCreated.WorkoutId = workout.Id; db.Events.Add(toBeCreated); db.SaveChanges(); TempData["flashMessageSuccess"] = "Workout updated. Schedule event also updated."; } else { TempData["flashMessageSuccess"] = "Workout updated."; } return RedirectToAction("Index"); } return View(workout); }