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); }
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); }
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); }
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); }