private async Task LookupTypeAndUnits(Aquarium aquarium)
        {
            // Lookup units
            aquarium.DimensionUnit = await _unitManager.LookUpByName(aquarium.DimensionUnit);

            aquarium.VolumeUnit = await _unitManager.LookUpByName(aquarium.VolumeUnit);

            //Look Up Type
            aquarium.Type = _aquariumTypeManager.LookupFromName(aquarium.Type);
        }
Esempio n. 2
0
        public async Task <IActionResult> Post(int aquariumId, [FromBody] MeasurementModel model)
        {
            try
            {
                var measurement = _mapper.Map <Measurement>(model);

                if (measurement == null)
                {
                    return(UnprocessableEntity());
                }

                // User URL values over model values
                measurement.UserId     = UserId;
                measurement.AquariumId = aquariumId;

                // Measurement Type
                measurement.MeasurementType = _measurementManager.LookupFromName(measurement.MeasurementType);

                var results = _validationManager.Validate(measurement);

                if (results.Count != 0)
                {
                    return(UnprocessableEntity(results));
                }

                // Lookup unit
                measurement.Unit = await _unitManager.LookUpByName(measurement.Unit);

                await _repository.Add(measurement);

                AddETag(measurement.RowVersion);

                var url = Url.Link("MeasurementGet", new { UserId, aquariumId, ((Measurement)measurement).Id });
                return(Created(url, _mapper.Map <MeasurementModel>(measurement)));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "An error occured whilst trying to create Measurement.");
            }
            return(BadRequest("Could not create Measurement"));
        }