internal ElementReferenceFieldData(Dictionary <string, object> values)
        {
            this._fields = new List <Element>();

            foreach (var item in values)
            {
                if (item.Value is double)
                {
                    Element elmDouble = new ElementReferenceDouble(item.Key.ToUpper(), (double)item.Value);
                    this._fields.Add(elmDouble);
                }
                else if (item.Value is int)
                {
                    Element elmInt = new ElementReferenceInt(item.Key.ToUpper(), (int)item.Value);
                    this._fields.Add(elmInt);
                }
                else if (item.Value is DateTime)
                {
                    Element elmDateTime = new ElementReferenceDateTime(item.Key.ToUpper(), (DateTime)item.Value);
                    this._fields.Add(elmDateTime);
                }
                else if (item.Value is string)
                {
                    Element elmString = new ElementReferenceString(item.Key.ToUpper(), (string)item.Value);
                    this._fields.Add(elmString);
                }
                else if (item.Value is ElementReferenceArrayChainTickers)
                {
                    this._fields.Add((ElementReferenceArrayChainTickers)item.Value);
                }
            }
        }
        internal ElementReferenceErrorInfo()
        {
            string sourceGibberish = Types.RandomDataGenerator.RandomString(5).ToLower();

            this._source = new ElementReferenceString("source", string.Format("{0}::{1}{2}", Types.RandomDataGenerator.RandomInt(99), sourceGibberish, Types.RandomDataGenerator.RandomInt(99)));
            this._code = new ElementReferenceInt("code", Types.RandomDataGenerator.RandomInt(99));
            this._category = new ElementReferenceString("category", "BAD_FLD");
            this._message = new ElementReferenceString("message", "Field not valid");
            this._subCategory = new ElementReferenceString("subcategory", "INVALID_FIELD");
        }
        internal ElementReferenceSecurityError(string security)
        {
            int code = Types.RandomDataGenerator.RandomInt(99);
            string sourceGibberish = Types.RandomDataGenerator.RandomString(5).ToLower();

            this._source = new ElementReferenceString("source", string.Format("{0}::{1}{2}", code, sourceGibberish, Types.RandomDataGenerator.RandomInt(99)));
            this._code = new ElementReferenceInt("code", code);
            this._category = new ElementReferenceString("category", "BAD_SEC");
            this._message = new ElementReferenceString("message", string.Format("Unknown/Invalid security [nid:{0}]", code));
            this._subCategory = new ElementReferenceString("subcategory", "INVALID_SECURITY");
        }
        internal ElementReferenceSecurityData(string securityName, Dictionary<string, object> fieldData, int sequenceNumber)
        {
            this._isSecurityError = Types.Rules.IsSecurityError(securityName);

            { //find bad field names
                List<string> badFields = new List<string>();
                foreach (var item in fieldData)
                {
                    if (Types.Rules.IsBadField(item.Key))
                        badFields.Add(item.Key);
                }

                //remove bad field names from the dictionary
                foreach (var item in badFields)
                {
                    fieldData.Remove(item);
                }

                if (badFields.Count == 0)
                    this._elmFieldExceptions = null;
                else
                    this._elmFieldExceptions = new ElementReferenceFieldExceptionsArray(badFields);
            }

            this._elmSecurityName = new ElementReferenceString("security", securityName);
            if (this._isSecurityError)
            {
                this._elmSequenceNumber = new ElementReferenceInt("sequenceNumber", sequenceNumber);
                this._elmSecError = new ElementReferenceSecurityError(securityName);
                this._elmFieldData = new ElementReferenceFieldData(new Dictionary<string, object>());
            }
            else
            {
                this._elmSequenceNumber = new ElementReferenceInt("sequenceNumber", sequenceNumber);
                this._elmSecError = null;
                this._elmFieldData = new ElementReferenceFieldData(fieldData);
            }
        }
示例#5
0
 internal ElementReferenceSecurityData(string securityName, Dictionary <string, object> fieldData, int sequenceNumber)
 {
     this._elmSecurityName   = new ElementReferenceString("security", securityName);
     this._elmSequenceNumber = new ElementReferenceInt("sequenceNumber", sequenceNumber);
     this._elmFieldData      = new ElementReferenceFieldData(fieldData);
 }