/// <summary> /// ProcessResolved /// </summary> /// <param name="contracts"></param> private void ProcessResolved(IList <Contract> contracts) { for (int i = 0; i < contracts.Count(); i++) { Contract contract = contracts[i]; if (!SymbolProcessed.Any(s => s.ToUpper() == contract.Symbol.ToUpper())) { if (DataContext.Instance.Contracts.Any(c => c.Symbol == contract.Symbol)) { LogCurrent.Add($"Symbol {contract.Symbol} exists already in database table Contracts. Adding record in table NotUnique."); DataContext.Instance.NotUnique.Add(new NotUnique { Symbol = contract.Symbol, Company = contract.Company }); continue; } DataContext.Instance.Contracts.Add(contract); SymbolProcessed.Add(contract.Symbol); } } CompaniesProcessed.Add(CurrentCompany); }
/// <summary> /// ResponseHandlerFundamentalData /// </summary> /// <param name="obj"></param> private void ResponseHandlerFundamentalData(IBSampleApp.messages.FundamentalsMessage obj) { BackgroundLog = Brushes.White; var message = string.Empty; LogCurrent.Add($"Processing {CurrentContract.Company} ... {ContractList.Count()} companies more."); ContractList.Remove(CurrentContract); string fmpSymbol = QueryFactory.SymbolByCompanyNameQuery.Run(CurrentContract.Company); if (string.IsNullOrWhiteSpace(fmpSymbol)) { LogCurrent.Add($"ERROR! FMP symbol for {CurrentContract.Company} could not be found."); return; } foreach (string date in Dates) { FundamentalsXmlDocument xmlDocument = XmlFactory.Instance.CreateXml(obj, date); SaveIncomeStatement(CurrentContract, fmpSymbol, xmlDocument, date); SaveBalanceSheet(CurrentContract, fmpSymbol, xmlDocument, date); SaveCashFlowStatement(CurrentContract, fmpSymbol, xmlDocument, date); } }
/// <summary> /// ResponseHandlerConnectionClosed /// </summary> private void ResponseHandlerConnectionClosed() { ConnectedToIb = false; LogCurrent.Add($"Connection to IB server closed."); }