public T Get <T>(PortfolioPosition position, ScalarAttribute attribute, DateTime dateTime, T defaultValue) where T : struct, IConvertible { return(_dataProvider.Get <T>(position, attribute, dateTime, defaultValue)); }
public T Get <T>(PortfolioPosition position, ScalarAttribute attribute, DateTime dateTime, T defaultValue) where T : struct, IConvertible { //прочитали скалярный атрибут scalarStr //нашли в нем наше значение //вернули //не нашли в нем наше значение вернули defaultValue ScalarStr str = GetScalarStr(position, attribute); if (str == null || !str.HasValue(dateTime)) { return(defaultValue); } string strIdent = str.Get(dateTime); KeyValuePair <Type, string> tke = new KeyValuePair <Type, string>(typeof(T), strIdent); if (_mapping.TKE.ContainsKey(tke)) { Enum value = _mapping.TKE[tke]; return((T)Enum.Parse(typeof(T), value.ToString(), true)); } else { return(defaultValue); } }
public static Status Query(Scalar scalar, ScalarAttribute attribute, out OpenVX.Type obj) { unsafe { fixed(OpenVX.Type *p_obj = &obj) { return(Query(scalar, attribute, new IntPtr(p_obj), (UIntPtr)4)); } } }
public bool Get <T>(PortfolioPosition position, ScalarAttribute attribute, DateTime dateTime) { ScalarStr str = GetScalarStr(position, attribute); if (str == null || !str.HasValue(dateTime)) { return(false); } return(true); }
public ScalarStr GetScalarStr(PortfolioPosition position, ScalarAttribute attribute) { var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute)); foreach (var x in markets) { ScalarStr scalarStr = x.GetScalarStr(position, attribute); if (scalarStr != null) { return(scalarStr); } } 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); }
public bool Get <T>(PortfolioPosition position, ScalarAttribute attribute, DateTime dateTime) { var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute)); foreach (var x in markets) { if (x.Get <T>(position, attribute, dateTime)) { return(true); } } return(false); }
public T Get <T>(PortfolioPosition position, ScalarAttribute attribute, DateTime dateTime, T defaultValue) where T : struct, IConvertible { var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute)); foreach (var x in markets) { if (x.Get <T>(position, attribute, dateTime)) { return(x.Get <T>(position, attribute, dateTime, defaultValue)); } } return(defaultValue); }
public ScalarEnum GetScalarEnum(PortfolioPosition position, ScalarAttribute attribute) { KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>(position, attribute); if (!_cache.ContainsKey(key)) { ScalarStr scalarStr = null; string fif_id = _mapping.GetAI(attribute); string query = string.Format( @"SELECT fi.ident, fd.dat_from, fd.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_item 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 <fisdstring>(query); if (result != null && result.Count() != 0) { Dictionary <DateTime, string> values = new Dictionary <DateTime, string>(); foreach (var x in result) { values.Add(x.dat_from, x.val); } scalarStr = new ScalarStr(values); } _cache.Add(key, scalarStr); } ScalarStr str = (ScalarStr)_cache[key]; if (str == null) { return(null); } //прочитаем все значения if (!_mapping.FindET(attribute)) { return(null); } Type type = _mapping.GetET(attribute); var bushuevs = Enum.GetValues(type).OfType <Enum>().OrderBy(z => z).ToList(); if (bushuevs.Count == 0) { return(null); } Dictionary <DateTime, Enum> enumerations = new Dictionary <DateTime, Enum>(); foreach (var x in str.Dictionary) { KeyValuePair <Type, string> keyEnum = new KeyValuePair <Type, string>(type, x.Value); if (_mapping.TKE.ContainsKey(keyEnum)) { Enum enumeration = _mapping.TKE[keyEnum]; enumerations.Add(x.Key, enumeration); } else { Enum enumeration = bushuevs.First(); enumerations.Add(x.Key, enumeration); } } ScalarEnum scalarEnum = new ScalarEnum(enumerations); //конвертируем их в соответствии с типом, если получается return(scalarEnum); }
public ScalarStr GetScalarStr(PortfolioPosition position, ScalarAttribute attribute) { return(_dataProvider.GetScalarStr(position, attribute)); }