コード例 #1
0
        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);
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        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);
        }