public async Task UpdateShouldUpdateFields()
        {
            var user = new Traininglog {
                Id = _random.Next(), UserId = _currentUser.Id
            };

            _traininglogList.Add(user);

            var model = new UpdateTrainingLogModel
            {
                Date        = DateTime.Now,
                Description = _random.Next().ToString(),
                Rating      = _random.Next(),
                Comment     = _random.Next().ToString()
            };

            var result = await _query.Update(user.Id, model);

            result.Should().Be(user);
            result.Description.Should().Be(model.Description);
            result.Comment.Should().Be(model.Comment);
            result.Date.Should().BeCloseTo(model.Date);
            result.Rating.Should().Be(model.Rating);

            _uow.Verify(x => x.CommitAsync());
        }
        public async Task <TrainingLogModel> Put(int id, [FromBody] UpdateTrainingLogModel requestModel)
        {
            var item = await _query.Update(id, requestModel);

            var model = _mapper.Map <TrainingLogModel>(item);

            return(model);
        }
        public async Task <Traininglog> Update(int id, UpdateTrainingLogModel model)
        {
            var traininglog = GetQuery().FirstOrDefault(x => x.Id == id);

            if (traininglog == null)
            {
                throw new NotFoundException("Traininglog is not found");
            }

            traininglog.Date        = model.Date;
            traininglog.Description = model.Description;
            traininglog.Rating      = model.Rating;
            traininglog.Comment     = model.Comment;

            await _uow.CommitAsync();

            return(traininglog);
        }