public string CreateQuote(Search search) { Check.If(search).IsNotNull(); //find a price range var priceRange = _priceRangeRepository.FindMatchingPriceRange(search); //create a zero quote if (priceRange.IsNull()) priceRange = new PriceRange(); //save the search var result = _quoteRepository.CreateSearch( search.CreateReference(_referenceGenerator).CreateQuote(_referenceGenerator, priceRange)); //return the quote reference return result ? search.GetQuoteReference(): null; }