/// <summary> /// Creates a brewery from a brewery DTO to begin tracking. /// </summary> /// <param name="breweryDto">Brewery data transfer object</param> public void CreateBrewery(BreweryDto breweryDto) { // Map breweryDto to brewery object var newBrewery = _mapper.Map <BreweryDto, Brewery>(breweryDto); if (ValidateBreweryExists(newBrewery)) { throw new BrewdoggerException("BreweryService::CreateBrewery - Brewery [" + newBrewery.BreweryName + "] already exists"); } // Validate brewery var breweryValidator = new BreweryValidator(); var validatedBrewery = breweryValidator.Validate(newBrewery, ruleSet: "InputFields,StateRules"); if (validatedBrewery.IsValid && validatedBrewery.Errors.Count == 0) { _breweryRepository.SaveBrewery(newBrewery); Log.Information("BreweryService::CreateBrewery - Brewery [{0}] saved successfully", newBrewery.BreweryName); return; } // Return validation error if any if (!validatedBrewery.IsValid) { Log.Error("BreweryService::CreateBrewery - Brewery is not valid, creation failed"); if (validatedBrewery.Errors.Count > 0) { foreach (var error in validatedBrewery.Errors) { Log.Information("BreweryService::CreateBrewery - Error code [{0}] validation error: {1}", error.ErrorCode, error.ErrorMessage); } } throw new BrewdoggerException("Validation error while attempting to add brewery to database"); } }
public void Setup() { _breweryValidator = new BreweryValidator(); }