public async Task <ActionResult <BodyMeasurement> > GetBodyMeasurement(Guid id)
        {
            var bodyMeasurement = await _bll.BodyMeasurements.FindWithAppUserIdAsync(id, User.UserId());

            if (bodyMeasurement == null)
            {
                return(NotFound());
            }
            return(Ok(Mapper.MapBLLEntityToPublicDTO(bodyMeasurement)));
        }
        public async Task <ActionResult <BodyMeasurement> > PostBodyMeasurement(BodyMeasurementCreate dto)
        {
            var bodyMeasurement = Mapper.MapPublicDTOToBLLEntity(dto);

            bodyMeasurement.AppUserId = User.UserId();
            var result = _bll.BodyMeasurements.Add(bodyMeasurement);
            await _bll.SaveChangesAsync();

            return(Ok(Mapper.MapBLLEntityToPublicDTO(result)));
        }
        public async Task <ActionResult <BodyMeasurement> > DeleteBodyMeasurement(Guid id)
        {
            var bodyMeasurement = await _bll.BodyMeasurements.FindWithAppUserIdAsync(id, User.UserId());

            if (bodyMeasurement == null)
            {
                return(NotFound());
            }
            _bll.BodyMeasurements.Remove(bodyMeasurement);
            await _bll.SaveChangesAsync();

            return(Ok(Mapper.MapBLLEntityToPublicDTO(bodyMeasurement)));
        }
        public async Task <ActionResult <BodyMeasurement> > PutBodyMeasurement(Guid id, BodyMeasurementEdit dto)
        {
            if (id != Guid.Parse(dto.Id))
            {
                return(BadRequest());
            }
            var bodyMeasurement = await _bll.BodyMeasurements.FindWithAppUserIdAsync(id, User.UserId());

            if (bodyMeasurement == null)
            {
                return(NotFound());
            }
            _bll.BodyMeasurements.Update(Mapper.MapPublicDTOFieldsToBLLEntity(dto, bodyMeasurement));
            await _bll.SaveChangesAsync();

            return(Ok(Mapper.MapBLLEntityToPublicDTO(bodyMeasurement)));
        }