public void AddAdvertisement(Advertisement advertisement) { const string logPrefix = "AdvertisementService: AddAdvertisement() "; try { _logger.Debug(logPrefix + advertisement); if (!advertisement.IsValid) { var errorMessages = string.Join("\n", advertisement.GetValidationErrors()); throw new ValidationException("Validation errors: " + errorMessages); } var dataAccessFactory = new DataAccessFactory(_configuration.DataProvider, _logger); var advertisementRepository = dataAccessFactory.GetAdvertisementRepository(); advertisementRepository.Create(advertisement); } catch (ValidationException ex) { _logger.Debug(logPrefix + ex); // I don't mind returning the StackTrace and errors for a validation error throw; } catch (Exception ex) { _logger.Error(logPrefix + ex); throw new Exception("Exception thrown. Check server logs"); } }
public Task SaveAsync() { ValidationErrors = _advertisement.GetValidationErrors(); if (!ValidationErrors.Any()) { return(_service.AddAdvertisementAsync(_advertisement)); } return(null); }