Esempio n. 1
0
        private void AddSymbolOnceField(string symbol)
        {
            List <string> onceFields    = new List <string>();
            Type          typeOfYwField = typeof(YwField);

            string[] enumNames = Enum.GetNames(typeof(YwField));
            foreach (var n in enumNames)
            {
                YwField ft;
                if (Enum.TryParse <YwField>(n, out ft))
                {
                    YwFieldGroup group = GetAttributeEnumOfYwField(ft);
                    if ((group & YwFieldGroup.Once) == YwFieldGroup.Once)
                    {
                        onceFields.Add(n);
                    }
                }
            }
            this._symbolOnceFields.Add(symbol, onceFields);
        }
Esempio n. 2
0
        //private YwFieldGroup GetAttributeEnumOfYwField(string field)
        //{
        //    var enumMember = field.GetType().GetMember(field).FirstOrDefault();
        //    if (enumMember == null)
        //    { return YwFieldGroup.NotSpecific; }
        //    var categoryAttr =
        //        enumMember == null
        //            ? default(FieldCategoryAttribute)
        //            : enumMember.GetCustomAttribute(typeof(FieldCategoryAttribute)) as FieldCategoryAttribute;
        //    return categoryAttr.Group;
        //}

        private bool IsRefreshRequire(ChangeData notify)
        {
            YwFieldGroup fg = GetAttributeEnumOfYwField(notify.Topic.YwFieldType);

            if ((fg & YwFieldGroup.Once) == YwFieldGroup.Once)
            {
                List <string> fields = null;
                if (this._symbolOnceFields.TryGetValue(notify.Topic.Symbol, out fields) == false)
                {
                    return(false);
                }

                if (fields.Count == 0)
                {
                    return(false);
                }

                bool removed = fields.Remove(notify.Topic.FieldName);
                //Console.WriteLine("{0} removed {1} = {2}", notify.Topic.Symbol, fields, removed);
                return(removed);
            }
            return(true);
        }
Esempio n. 3
0
 public FieldCategoryAttribute(YwFieldGroup group)
 {
     this.Group = group;
 }