public ActionResult <ValueDto> PartiallyUpdate(int id, [FromBody] JsonPatchDocument <ValueUpdateDto> patchDoc)
        {
            if (patchDoc == null)
            {
                return(BadRequest());
            }

            Value existingEntity = _valueRepository.GetSingle(id);

            if (existingEntity == null)
            {
                return(NotFound());
            }

            ValueUpdateDto valueUpdateDto = Mapper.Map <ValueUpdateDto>(existingEntity);

            patchDoc.ApplyTo(valueUpdateDto, ModelState);

            TryValidateModel(valueUpdateDto);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Mapper.Map(valueUpdateDto, existingEntity);
            Value updated = _valueRepository.Update(id, existingEntity);

            if (!_valueRepository.Save())
            {
                throw new Exception("Updating an item failed on save.");
            }

            return(Ok(Mapper.Map <ValueDto>(updated)));
        }
        public ActionResult <ValueDto> Update(int id, [FromBody] ValueUpdateDto updateDto)
        {
            if (updateDto == null)
            {
                return(BadRequest());
            }

            var item = _valueRepository.GetSingle(id);

            if (item == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Mapper.Map(updateDto, item);

            _valueRepository.Update(id, item);

            if (!_valueRepository.Save())
            {
                throw new Exception("Updating an item failed on save.");
            }

            return(Ok(Mapper.Map <ValueDto>(item)));
        }