public ActionResult CreateRealEstate(RealEstateAssetData model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    AssetQuoter quoter = new AssetQuoter(new ZillowClient(), new YahooFinanceClient()); //TODO setup ninject to inject these automatically
                    model.Asset.Symbol = quoter.GetPropertyId(model.Address, model.City, model.State, model.Zip);
                }
                catch (ZillowPropertyNotFoundException)
                {
                    ModelState.AddModelError(string.Empty, "Property not found on Zillow");
                }
            }

            if (ModelState.IsValid)
            {
                repository.AddRealEstateAssetData(model);
                return RedirectToAction("RealEstate");
            }

            return View(model);
        }
 public void GetPropertyId_PropertyNotFound_ExceptionThrown()
 {
     zillowClient.Setup<XDocument>(z => z.GetSearchResults(fakeAddress, fakeCityStateZip)).Returns(fakeNotFoundZillowSearchResult);
     AssetQuoter assetQuoter = new AssetQuoter(zillowClient.Object, yahooFinanceClient.Object);
     assetQuoter.GetPropertyId(fakeAddress, fakeCity, fakeState, fakeZip);
 }
 public void GetPropertyId_PropertyFound_ExpectedResult()
 {
     zillowClient.Setup<XDocument>(z => z.GetSearchResults(fakeAddress, fakeCityStateZip)).Returns(fakeFoundZillowSearchResult);
     AssetQuoter assetQuoter = new AssetQuoter(zillowClient.Object, yahooFinanceClient.Object);
     string propertyId = assetQuoter.GetPropertyId(fakeAddress, fakeCity, fakeState, fakeZip);
     Assert.AreEqual<string>(fakeZpId, propertyId);
 }
 public void GetQuote_InvalidSymbol_ExceptionThrown()
 {
     yahooFinanceClient.Setup<AssetQuote>(y => y.GetQuote(string.Empty)).Returns(new AssetQuote());
     AssetQuoter assetQuoter = new AssetQuoter(zillowClient.Object, yahooFinanceClient.Object);
     FreedomCalculator.Models.AssetQuote quote = assetQuoter.GetQuote(string.Empty);
 }
 public void GetQuotes_InvalidSymbols_ExceptionThrown()
 {
     yahooFinanceClient.Setup<List<AssetQuote>>(y => y.GetQuotes(new List<string>())).Returns(new List<AssetQuote>());
     AssetQuoter assetQuoter = new AssetQuoter(zillowClient.Object, yahooFinanceClient.Object);
     assetQuoter.GetQuotes(new List<string>());
 }
 public void GetPropertyValue_ExpectedResult()
 {
     zillowClient.Setup<XDocument>(z => z.GetZestimate(fakeZpId)).Returns(fakeZestimateSearchResult);
     AssetQuoter assetQuoter = new AssetQuoter(zillowClient.Object, yahooFinanceClient.Object);
     AssetQuoter.PropertyValue propVal = assetQuoter.GetPropertyValue(fakeZpId);
     Assert.AreEqual<string>(fakeZestimateAmount, propVal.amount);
 }