public void Add(PortfolioPosition position, Enum enumeration, ScalarNum scalar) { KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>(position, enumeration); if (_numbers.ContainsKey(key)) { _numbers[key] = scalar; } else { _numbers.Add(key, scalar); } }
public ScalarNum GetScalarNum(PortfolioPosition position, ScalarAttribute attribute) { var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute)); foreach (var x in markets) { ScalarNum scalarNum = x.GetScalarNum(position, attribute); if (scalarNum != null) { return(scalarNum); } } return(null); }
public ScalarNum GetScalarNum(PortfolioPosition position, ScalarAttribute attribute) { if (!_mapping.FindAI(attribute)) { return(null); } KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>(position, attribute); if (_cache.ContainsKey(key)) { return((ScalarNum)_cache[key]); } string fif_id = _mapping.GetAI(attribute); ScalarNum scalarNum = null; string query = string.Format( @" SELECT fi.ident as ident, fd.dat_from as dat_from, fd.val as val from fin_instrument fi join ffd t on t.fi_id = fi.fi_id join data_source ds on t.ds_id = ds.ds_id join fisd_num fd on fd.fisd_id = t.fisd_id where fi.ident = '{0}' and t.fif_id = {1} and ds.ident = '{2}'" , position.Ident, fif_id, _providerParams[SCALAR]); var result = _dbLink.GetConnection().Query <fisdnumber>(query); if (result != null && result.Count() != 0) { Dictionary <DateTime, decimal> values = new Dictionary <DateTime, decimal>(); foreach (var x in result) { values.Add(x.dat_from, x.val); } scalarNum = new ScalarNum(values); } _cache.Add(key, scalarNum); return(scalarNum); }