private static void ListAllQuotesOfType(QuoteType quoteType) { Console.WriteLine(); List <Quote> quotes = new List <Quote>(); using (var context = new SamuraiContext()) { context.Samurais.SelectMany(s => s.Quotes).Where(q => q.Type == quoteType).ToList().ForEach(q => quotes.Add(q)); } if (quotes.Count == 0) { Console.WriteLine($"There are no quotes of type {quoteType.ToString()}."); } else { foreach (var quote in quotes) { Console.WriteLine($"\"{quote.Text}\" is a {quote.Type.ToString().ToLower()} quote said by {FindSamurai(quote.SamuraiId).Name}."); } } Console.WriteLine(); }
private bool UpdateIndices(HugoDataSet.IndexWeightsRow[] rows) { try { List <HugoDataSet.IndicesRow> subscribeList = new List <HugoDataSet.IndicesRow>(); lock (m_portfolioLock) { m_indexWeights = rows; foreach (HugoDataSet.IndexWeightsRow indexWeightsRow in rows) { HugoDataSet.IndicesRow indicesRow = m_indices.Rows.Find(new string[] { indexWeightsRow.AcctName, indexWeightsRow.Symbol }) as HugoDataSet.IndicesRow; if (indicesRow == null) { indicesRow = m_indices.NewIndicesRow(); indicesRow.AcctName = indexWeightsRow.AcctName; indicesRow.Symbol = indexWeightsRow.Symbol; m_indices.Rows.Add(indicesRow); } indicesRow.Weight = indexWeightsRow.Weight; indicesRow.IndexFlag = indexWeightsRow.IndexFlag; if (IsSubscribed && (indicesRow.SubscriptionStatus != SubscriptionStatus.Subscribed.ToString())) { indicesRow.SubscriptionStatus = SubscriptionStatus.Subscribed.ToString(); subscribeList.Add(indicesRow); } } } if (IsSubscribed) { if (subscribeList.Count > 0) { foreach (HugoDataSet.IndicesRow row in subscribeList) { QuoteType quoteType = row.IndexFlag ? QuoteType.Index : QuoteType.Stock; m_messageUtilities2.Subscribe(row.Symbol, quoteType, row); PositionMonitorUtilities.Info(String.Format("{0} now subscribed to {1} as {2}", Name, row.Symbol, quoteType.ToString())); } PositionMonitorUtilities.Info(String.Format("{0} subscribed to {1} new indices", Name, subscribeList.Count)); } } } catch (Exception ex) { PositionMonitorUtilities.Error(String.Format("{0} unable to fill indices table", Name), ex); return(false); } return(true); }
public void Remove(string symbol, QuoteType quoteType) { this.feed.Remove(symbol, quoteType.ToString()); }
public void Add(string symbol, QuoteType quoteType) { this.feed.Add(symbol, quoteType.ToString()); }
public static object[,] MakeInstrumentInfoArray(InstrumentFactory factory, string identifier) { object[,] output = new object[9, 2]; string whiteSpace = ""; QuoteType quoteType = factory.InstrumentTypeMap[identifier]; output[0, 0] = quoteType.ToString(); output[0, 1] = whiteSpace; output[4, 0] = whiteSpace; output[4, 1] = whiteSpace; output[7, 0] = whiteSpace; output[7, 1] = whiteSpace; output[8, 0] = whiteSpace; output[8, 1] = whiteSpace; // InstrumentStrings output[5, 0] = InstrumentFactoryHeaders.GetHeaders[factory.InstrumentFormatTypeMap[identifier]]; output[5, 1] = whiteSpace; output[6, 0] = factory.IdentifierStringMap[identifier]; output[6, 1] = whiteSpace; switch (quoteType) { case QuoteType.ParSwapRate: output[1, 0] = factory.IrSwaps[identifier].FloatLeg.StartDate.ToString("dd/MM/yyyy"); output[1, 1] = factory.IrSwaps[identifier].FixedLeg.StartDate.ToString("dd/MM/yyyy"); output[2, 0] = factory.IrSwaps[identifier].FloatLeg.EndDate.ToString("dd/MM/yyyy"); output[2, 1] = factory.IrSwaps[identifier].FixedLeg.EndDate.ToString("dd/MM/yyyy"); output[3, 0] = factory.IrSwaps[identifier].FloatLeg.Tenor.ToString(); output[3, 1] = factory.IrSwaps[identifier].FixedLeg.Tenor.ToString(); break; case QuoteType.OisRate: output[1, 0] = factory.OisSwaps[identifier].StartDate.ToString("dd/MM/yyyy"); output[1, 1] = whiteSpace; output[2, 0] = factory.OisSwaps[identifier].EndDate.ToString("dd/MM/yyyy"); output[2, 1] = whiteSpace; //output[3, 1] = factory.OisSwaps[dentifier]. output[3, 0] = whiteSpace; output[3, 1] = whiteSpace; output[8, 0] = "(Float schedule -- Fixed schedule)"; break; case QuoteType.FraRate: output[1, 0] = factory.Fras[identifier].StartDate.ToString("dd/MM/yyyy"); output[1, 1] = whiteSpace; output[2, 0] = factory.Fras[identifier].EndDate.ToString("dd/MM/yyyy"); output[2, 1] = whiteSpace; output[3, 0] = factory.Fras[identifier].ReferenceIndex.ToString(); output[3, 1] = whiteSpace; break; case QuoteType.ParBasisSpread: output[1, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.StartDate.ToString("dd/MM/yyyy"); output[1, 1] = factory.BasisSwaps[identifier].FloatLegSpread.StartDate.ToString("dd/MM/yyyy"); output[2, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.EndDate.ToString("dd/MM/yyyy"); output[2, 1] = factory.BasisSwaps[identifier].FloatLegSpread.EndDate.ToString("dd/MM/yyyy"); output[3, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.Tenor.ToString(); output[3, 1] = factory.BasisSwaps[identifier].FloatLegSpread.Tenor.ToString(); break; case QuoteType.FuturesRate: output[1, 0] = factory.Futures[identifier].FraSameSpec.StartDate.ToString("dd/MM/yyyy"); output[1, 1] = whiteSpace; output[2, 0] = factory.Futures[identifier].FraSameSpec.EndDate.ToString("dd/MM/yyyy"); output[2, 1] = whiteSpace; output[3, 0] = factory.Futures[identifier].FraSameSpec.ReferenceIndex.ToString(); output[3, 1] = whiteSpace; output[8, 0] = "Convexity adjustment: " + Math.Round(factory.Futures[identifier].Convexity, 4).ToString(); break; case QuoteType.Deposit: // do something break; default: throw new InvalidOperationException("QuoteType for identifier is not valid."); } return(output); }