/// <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();
 }