public async Task CreateCollectorValue_CreatesNewCollectorValue()
        {
            //Arrange
            Guid           id = new Guid("3265cf70-f323-4021-932b-08813b1d3d5c");
            CollectorValue newCollectorValue = new CollectorValue
            {
                Id   = id,
                PF60 = 52.15
            };

            //Act
            await _collectorValueService.CreateCollectorValue(newCollectorValue);

            await _unitOfWork.Save();

            //Assert
            Assert.Equal(7, (await _collectorValueService.FindCollectorValues(resourceParameters)).Count());
            Assert.Equal(52.15, (await _collectorValueService.FindCollectorValueById(id)).PF60);
        }
        public async Task <IActionResult> CreateCollectorValue([FromBody] CollectorValueCreationDto collectorValue,
                                                               [FromHeader(Name = "Accept")] string mediaType)
        {
            if (collectorValue == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var newCollectorValue = _mapper.Map <CollectorValue>(collectorValue);
            await _collectorValueService.CreateCollectorValue(newCollectorValue);

            if (!await _collectorValueService.Save())
            {
                throw new Exception("Creating a collector value failed on save.");
            }

            var returnedCollectorValue = _mapper.Map <CollectorValueDto>(newCollectorValue);

            if (mediaType == "application/json+hateoas")
            {
                var links          = CreateCollectorValueLinks(returnedCollectorValue.Id, null);
                var linkedResource = returnedCollectorValue.ShapeData(null) as IDictionary <string, object>;

                linkedResource.Add("links", links);

                return(CreatedAtRoute("GetCollectorValue",
                                      new { id = returnedCollectorValue.Id },
                                      linkedResource));
            }
            else
            {
                return(CreatedAtRoute("GetCollectorValue",
                                      new { id = returnedCollectorValue.Id },
                                      returnedCollectorValue));
            }
        }