public async Task <IActionResult> Post(
            Guid categoryId, [FromBody] ExerciseGroupUpdateApi exerciseGroupUpdate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if ((await _categoryRepository.Get(categoryId)) == null)
            {
                return(NotFound("Category not found."));
            }

            var item = new ExerciseGroup
            {
                Id   = Guid.NewGuid(),
                Name = exerciseGroupUpdate.Name,
                Note = exerciseGroupUpdate.Note
            };
            await _exerciseGroupRepository.Add(item, categoryId);

            return(CreatedAtRoute("GetExerciseGroup",
                                  new { Controller = "ExerciseGroup", id = item.Id },
                                  new CategoryApi {
                Id = item.Id, Name = item.Name, Note = item.Note
            }));
        }
        private async Task <ExerciseGroup> GetExerciseGroup(IStatementResultCursor reader)
        {
            ExerciseGroup item = null;

            while (await reader.FetchAsync())
            {
                item = new ExerciseGroup()
                {
                    Id   = Guid.Parse(reader.Current[0].ToString()),
                    Name = reader.Current[1].ToString(),
                    Note = reader.Current[2]?.ToString()
                };
            }
            return(item);
        }
        public async Task <ExerciseGroup> Update(ExerciseGroup exerciseGroup)
        {
            using (var session = _graphRepository.Driver.Session())
            {
                var reader = await session.RunAsync(
                    @"MATCH (eg:ExerciseGroup { id: $id }) 
                    SET eg.name = $name, eg.note = $note 
                    RETURN eg.id, eg.name, eg.note",
                    new { id = exerciseGroup.Id.ToString(), name = exerciseGroup.Name, note = exerciseGroup.Note }
                    );

                exerciseGroup = await GetExerciseGroup(reader);
            }
            return(exerciseGroup);
        }
        public async Task <ExerciseGroupResult> AdaptAsync(ExerciseGroup group, ExerciseGroup first, CancellationToken cancellationToken)
        {
            var previous = await _context.ExerciseGroupClient.GetPreviousExerciseGroup(group.Recorded, cancellationToken).ConfigureAwait(false);

            var exercises = (await _context.ExerciseClient
                             .GetExercisesInDateRange(previous?.Recorded ?? DateTime.MinValue, group.Recorded, cancellationToken)
                             .ConfigureAwait(false)).ToArray();

            var result = new ExerciseGroupResult
            {
                Id        = group.Id,
                Recorded  = group.Recorded,
                Weight    = group.Weight,
                CanDelete = previous != null,
                Exercises = exercises
            };


            return(result);
        }
Example #5
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var group = await _context.Groups.Where(x => x.Id == request.GroupId).FirstOrDefaultAsync();

                if (group == null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Grupa = "Nie znaleziono grupy" });
                }

                var exercise = await _context.Exercises.Where(x => x.Id == request.ExerciseId).FirstOrDefaultAsync();

                if (exercise == null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Zadanie = "Nie znaleziono zadania" });
                }

                var exerciseGroup = await _context.ExerciseGroups.Where(x => x.GroupId == group.Id && x.ExerciseId == exercise.Id).FirstOrDefaultAsync();

                if (exerciseGroup != null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Zadanie = "Zadanie już jest przypisane do grupy" });
                }

                exerciseGroup = new ExerciseGroup()
                {
                    GroupId    = group.Id,
                    ExerciseId = exercise.Id
                };

                _context.ExerciseGroups.Add(exerciseGroup);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem podczas dodawania");
            }
        public async Task <ExerciseGroup> Add(ExerciseGroup exerciseGroup, Guid categoryId)
        {
            using (var session = _graphRepository.Driver.Session())
            {
                var reader = await session.RunAsync(
                    @"MATCH (c:Category { id: $categoryId })
                    CREATE (eg:ExerciseGroup { id: $id, name: $name, note: $note }),
                    (eg)-[:FOR_CATEGORY]->(c)
                    RETURN eg.id, eg.name, eg.note",
                    new
                {
                    categoryId = categoryId.ToString(),
                    id         = exerciseGroup.Id.ToString(),
                    name       = exerciseGroup.Name,
                    note       = exerciseGroup.Note
                }
                    );

                exerciseGroup = await GetExerciseGroup(reader);
            }
            return(exerciseGroup);
        }
Example #7
0
        public async Task <IEnumerable <ExerciseGroupSummary> > AdaptAsync(IEnumerable <ExerciseGroup> groups, ExerciseGroup first, CancellationToken cancellationToken)
        {
            var results = await Task.WhenAll(groups.Select(async(group) =>
            {
                var result = await _resultAdapter.AdaptAsync(group, first, cancellationToken).ConfigureAwait(false);

                return(new ExerciseGroupSummary
                {
                    Id = result.Id,
                    Recorded = result.Recorded,
                    Weight = result.Weight,
                    CanDelete = result.CanDelete,
                    StartDate = first.Recorded,
                    ExerciseCount = result.Exercises.Count()
                });
            })).ConfigureAwait(false);

            return(results);
        }
Example #8
0
        private async Task PopulateTablesWithData()
        {
            await _connection.ExecuteAsync("DELETE FROM ExerciseGroup");

            var exerciseGroup1 = new ExerciseGroup {
                ExerciseGroupName = "Upper Body"
            };                                                                           //maybe remove these two
            var exerciseGroup2 = new ExerciseGroup {
                ExerciseGroupName = "Lower Body"
            };
            var exerciseGroup3 = new ExerciseGroup {
                ExerciseGroupName = "Legs"
            };
            var exerciseGroup4 = new ExerciseGroup {
                ExerciseGroupName = "Chest"
            };
            var exerciseGroup5 = new ExerciseGroup {
                ExerciseGroupName = "Back"
            };
            var exerciseGroup6 = new ExerciseGroup {
                ExerciseGroupName = "Shoulders"
            };
            var exerciseGroup7 = new ExerciseGroup {
                ExerciseGroupName = "Core"
            };
            var exerciseGroup8 = new ExerciseGroup {
                ExerciseGroupName = "Full Body"
            };
            var exerciseGroup9 = new ExerciseGroup {
                ExerciseGroupName = "Arms"
            };
            var exerciseGroup10 = new ExerciseGroup {
                ExerciseGroupName = "Cardio"
            };

            await _connection.InsertAsync(exerciseGroup1);

            await _connection.InsertAsync(exerciseGroup2);

            await _connection.InsertAsync(exerciseGroup3);

            await _connection.InsertAsync(exerciseGroup4);

            await _connection.InsertAsync(exerciseGroup5);

            await _connection.InsertAsync(exerciseGroup6);

            await _connection.InsertAsync(exerciseGroup7);

            await _connection.InsertAsync(exerciseGroup8);

            await _connection.InsertAsync(exerciseGroup9);

            await _connection.InsertAsync(exerciseGroup10);


            await _connection.ExecuteAsync("DELETE FROM ExerciseName");

            var exerciseName1 = new ExerciseName {
                ExerciseNameString = "Bench Press", ExerciseGroupId = 4
            };
            var exerciseName2 = new ExerciseName {
                ExerciseNameString = "Squat", ExerciseGroupId = 3
            };
            var exerciseName3 = new ExerciseName {
                ExerciseNameString = "Db Shoulder Press", ExerciseGroupId = 6
            };
            var exerciseName4 = new ExerciseName {
                ExerciseNameString = "Deadlift", ExerciseGroupId = 5
            };

            // fill in later.
            //var exerciseName5 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId =  };
            //var exerciseName6 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId =  };
            //var exerciseName7 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId =  };
            //var exerciseName8 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId =  };
            //var exerciseName9 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId =  };
            //var exerciseName10 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId = };
            //var exerciseName11 = new ExerciseName { ExerciseNameString = "", ExerciseGroupId = };

            await _connection.InsertAsync(exerciseName1);

            await _connection.InsertAsync(exerciseName2);

            await _connection.InsertAsync(exerciseName3);

            await _connection.InsertAsync(exerciseName4);
        }