コード例 #1
0
        public Exercise UpdateExercise(Exercise exercise, Guid userId)
        {
            if (string.Equals(exercise.Name, _deleteKeyWord, StringComparison.InvariantCultureIgnoreCase))
            {
                return(DeleteExercise(exercise, userId));
            }
            using (var db = new WorkoutDb())
            {
                var previousExercise = db.Exercises.Find(exercise.ExerciseId);
                if (previousExercise.Order != exercise.Order)
                {
                    if (previousExercise.Order - exercise.Order + 1 > 0)
                    {
                        var orderUpdates = db.Exercises.Where(x => x.Order >= exercise.Order && x.Order < previousExercise.Order && x.ExerciseId != exercise.ExerciseId && x.DayId == exercise.DayId).ToList();
                        orderUpdates.ForEach(x => x.Order++);
                    }
                    else
                    {
                        var orderUpdates = db.Exercises.Where(x => x.Order > previousExercise.Order && x.Order <= exercise.Order + 1 && x.ExerciseId != exercise.ExerciseId && x.DayId == exercise.DayId).ToList();
                        orderUpdates.ForEach(x => x.Order--);
                    }
                    db.SaveChanges();
                }

                db.Entry(previousExercise).State = EntityState.Detached;

                db.Update(exercise);
                db.SaveChanges();
                return(exercise);
            }
        }
コード例 #2
0
        public Set UpdateSet(Set set, Guid userId)
        {
            if (string.Equals(set.Name, _deleteKeyWord, StringComparison.InvariantCultureIgnoreCase))
            {
                return(DeleteSet(set, userId));
            }
            using (var db = new WorkoutDb())
            {
                var previousSet = db.Sets.Find(set.SetId);
                if (previousSet.Order != set.Order)
                {
                    if (previousSet.Order - set.Order + 1 > 0)
                    {
                        var orderUpdates = db.Sets.Where(x => x.Order >= set.Order && x.Order < previousSet.Order && x.SetId != set.SetId && x.ExerciseId == set.ExerciseId).ToList();
                        orderUpdates.ForEach(x => x.Order++);
                    }
                    else
                    {
                        var orderUpdates = db.Sets.Where(x => x.Order > previousSet.Order && x.Order <= set.Order + 1 && x.SetId != set.SetId && x.ExerciseId == set.ExerciseId).ToList();
                        orderUpdates.ForEach(x => x.Order--);
                    }
                    db.SaveChanges();
                }

                db.Entry(previousSet).State = EntityState.Detached;

                db.Update(set);
                db.SaveChanges();
                return(set);
            }
        }
コード例 #3
0
        public Day UpdateDay(Day day, Guid userId)
        {
            if (string.Equals(day.Name, _deleteKeyWord, StringComparison.InvariantCultureIgnoreCase))
            {
                return(DeleteDay(day, userId));
            }
            using (var db = new WorkoutDb())
            {
                var previousDay = db.Days.Find(day.DayId);
                if (previousDay.Order != day.Order)
                {
                    if (previousDay.Order - day.Order + 1 > 0)
                    {
                        var orderUpdates = db.Days.Where(x => x.Order >= day.Order && x.Order < previousDay.Order && x.DayId != day.DayId && x.WorkoutId == day.WorkoutId).ToList();
                        orderUpdates.ForEach(x => x.Order++);
                    }
                    else
                    {
                        var orderUpdates = db.Days.Where(x => x.Order > previousDay.Order && x.Order <= day.Order + 1 && x.DayId != day.DayId && x.WorkoutId == day.WorkoutId).ToList();
                        orderUpdates.ForEach(x => x.Order--);
                    }
                    db.SaveChanges();
                }

                db.Entry(previousDay).State = EntityState.Detached;

                db.Update(day);
                db.SaveChanges();
                return(day);
            }
        }
コード例 #4
0
 public Guid GetOwnerIdForExercise(int exerciseId)
 {
     using (var context = new WorkoutDb())
     {
         return(new Guid(context.Exercises.Single(x => x.ExerciseId == exerciseId).Day.Workout.OwnerId));
     }
 }
コード例 #5
0
        public Set DeleteSet(Set set, Guid userId)
        {
            using (var db = new WorkoutDb())
            {
                if (set.Exercise == null)
                {
                    set.Exercise = db.Exercises.Find(set.ExerciseId);
                }
                if (set.Exercise.Day == null)
                {
                    set.Exercise.Day = db.Days.Find(set.Exercise.DayId);
                }

                if (set.Exercise.Day.Workout == null)
                {
                    set.Exercise.Day.Workout = db.Workouts.Find(set.Exercise.Day.WorkoutId);
                }


                if (set.Exercise.Day.Workout.OwnerId == userId.ToString())
                {
                    set.IsDeleted = true;
                    db.Sets.Find(set.SetId).IsDeleted = true;
                    db.SaveChanges();
                    return(set);
                }

                return(set);
            }
        }
コード例 #6
0
 public Guid GetOwnerIdForDay(int dayId)
 {
     using (var context = new WorkoutDb())
     {
         return(new Guid(context.Days.Single(x => x.DayId == dayId).Workout.OwnerId));
     }
 }
コード例 #7
0
        public Exercise DeleteExercise(Exercise exercise, Guid userId)
        {
            using (var db = new WorkoutDb())
            {
                if (exercise.Day == null)
                {
                    exercise.Day = db.Days.Find(exercise.DayId);
                }

                if (exercise.Day.Workout == null)
                {
                    exercise.Day.Workout = db.Workouts.Find(exercise.Day.WorkoutId);
                }


                if (exercise.Day.Workout.OwnerId == userId.ToString())
                {
                    exercise.IsDeleted = true;
                    db.Exercises.Find(exercise.ExerciseId).IsDeleted = true;
                    db.SaveChanges();
                    return(exercise);
                }

                return(exercise);
            }
        }
コード例 #8
0
 public Guid GetOwnerIdForSet(int setId)
 {
     using (var context = new WorkoutDb())
     {
         return(new Guid(context.Sets.Single(x => x.SetId == setId).Exercise.Day.Workout.OwnerId));
     }
 }
コード例 #9
0
 public void DeleteSet(int setId)
 {
     using (var context = new WorkoutDb())
     {
         context.Sets.Single(x => x.SetId == setId).IsDeleted = true;
         context.SaveChanges();
     }
 }
コード例 #10
0
ファイル: DbTests.cs プロジェクト: Stahhl/EzWorkout
        public async Task GetWorkoutsTest_01()
        {
            var db = new WorkoutDb();

            var workouts = await db.GetItemsAsync();

            Assert.Single(workouts);
        }
コード例 #11
0
 public Day GetDay(int dayId)
 {
     using (var context = new WorkoutDb())
     {
         return(context.Days.Include(x => x.Workout)
                .Include(x => x.Exercises.Select(y => y.Sets)).First(x => x.DayId == dayId));
     }
 }
コード例 #12
0
 public Workout UpdateWorkout(Workout workout)
 {
     using (var db = new WorkoutDb())
     {
         db.Update(workout);
         db.SaveChanges();
         return(workout);
     }
 }
コード例 #13
0
 public Day CreateNewDay(Day day)
 {
     using (var context = new WorkoutDb())
     {
         context.Days.Add(day);
         context.SaveChanges();
         return(day);
     }
 }
コード例 #14
0
 public void UpdateDay(Day day)
 {
     using (var context = new WorkoutDb())
     {
         context.Days.Attach(day);
         context.Entry(day).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
コード例 #15
0
 public void UpdateSet(Set set)
 {
     using (var context = new WorkoutDb())
     {
         context.Sets.Attach(set);
         context.Entry(set).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
コード例 #16
0
 public List <Workout> GetWorkouts(Guid userId)
 {
     using (var context = new WorkoutDb())
     {
         var workouts = context.Workouts.Include(x => x.Days).Where(x => x.OwnerId == userId.ToString()).ToList();
         workouts.ForEach(x => x.Days = x.Days.Where(y => y.IsDeleted == false).ToList());
         return(workouts);
     }
 }
コード例 #17
0
 public Exercise CreateExercise(Exercise exercise)
 {
     using (var context = new WorkoutDb())
     {
         context.Exercises.Add(exercise);
         context.SaveChanges();
         return(exercise);
     }
 }
コード例 #18
0
 public List <SetRecord> GetWorkoutSession(int workoutSessionId, Guid userId)
 {
     using (var db = new WorkoutDb())
     {
         var records = db.SetRecords.Where(x =>
                                           x.WorkoutSessionId == workoutSessionId && x.WorkoutSession.UserId == userId).ToList();
         return(records);
     }
 }
コード例 #19
0
 public List <WorkoutSession> GetIncompleteSessions(Guid userId)
 {
     using (var db = new WorkoutDb())
     {
         var incompleteSessions =
             db.WorkoutSessions.Where(x => x.UserId == userId && !x.IsCompleted).ToList();
         return(incompleteSessions);
     }
 }
コード例 #20
0
 public void UpdateExercise(Exercise exercise)
 {
     using (var context = new WorkoutDb())
     {
         context.Exercises.Attach(exercise);
         context.Entry(exercise).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
コード例 #21
0
 public Workout CreateWorkout(Workout workout)
 {
     using (var context = new WorkoutDb())
     {
         context.Workouts.Add(workout);
         context.SaveChanges();
         return(workout);
     }
 }
コード例 #22
0
        public Set CreateSet(Set set)
        {
            using (var context = new WorkoutDb())
            {
                context.Sets.Add(set);
                context.SaveChanges();

                return(set);
            }
        }
コード例 #23
0
 public WorkoutSession UpdateWorkoutSession(WorkoutSession workoutSession)
 {
     using (var db = new WorkoutDb())
     {
         workoutSession.Ended = DateTime.Now;
         db.Update(workoutSession);
         db.SaveChanges();
         return(workoutSession);
     }
 }
コード例 #24
0
ファイル: DbTests.cs プロジェクト: Stahhl/EzWorkout
        public async Task SeedDb()
        {
            Constants.DropDb();

            var db = new WorkoutDb();

            await db.InitializeAsync();

            await db.SeedData();
        }
コード例 #25
0
 public Set CreateSet(Set set)
 {
     using (var db = new WorkoutDb())
     {
         var order = db.Sets.Count(x => x.ExerciseId == set.ExerciseId && !x.IsDeleted) + 1;
         set.Order = order;
         db.Sets.Add(set);
         db.SaveChanges();
         return(set);
     }
 }
コード例 #26
0
 public List <Workout> GetWorkouts(Guid userId)
 {
     using (var db = new WorkoutDb())
     {
         var workouts = db.Workouts
                        .Where(x => x.OwnerId == userId.ToString())
                        .Include(x => x.Days)
                        .ToList();
         return(workouts);
     }
 }
コード例 #27
0
 public Exercise CreateExercise(Exercise exercise)
 {
     using (var db = new WorkoutDb())
     {
         var order = db.Exercises.Count(x => x.DayId == exercise.DayId && !x.IsDeleted) + 1;
         exercise.Order = order;
         db.Exercises.Add(exercise);
         db.SaveChanges();
         exercise.Sets = new List <Set>();
         return(exercise);
     }
 }
コード例 #28
0
 public Day CreateDay(Day day)
 {
     using (var db = new WorkoutDb())
     {
         var order = db.Days.Count(x => x.WorkoutId == day.WorkoutId && !x.IsDeleted) + 1;
         day.Order = order;
         db.Days.Add(day);
         db.SaveChanges();
         day.Exercises = new List <Exercise>();
         return(day);
     }
 }
コード例 #29
0
        public Workout CreateNewWorkout(Workout workout, Guid userId)
        {
            using (var db = new WorkoutDb())
            {
                workout.OwnerId = userId.ToString();

                db.Workouts.Add(workout);
                db.SaveChanges();
                workout.Days = new List <Day>();
                return(workout);
            }
        }
コード例 #30
0
        public void DeleteExercise(int exerciseId)
        {
            using (var context = new WorkoutDb())
            {
                var exercise = context.Exercises.Single(x => x.ExerciseId == exerciseId);
                exercise.IsDeleted = true;

                foreach (var set in exercise.Sets)
                {
                    set.IsDeleted = true;
                }
                context.SaveChanges();
            }
        }