Beispiel #1
0
        public List <DynamicBerConverterField> Decode(byte[] val)
        {
            List <DynamicBerConverterField> ret = new List <DynamicBerConverterField>();

            object[] decoded = null;

            int berpos = -1;

            foreach (int curpos in ConversionRules.Keys)
            {
                try
                {
                    decoded = BerConverter.Decode(ConversionRules[curpos], val);

                    berpos = curpos;

                    break;
                }

                catch (Exception ex)
                { ex.ToDummy(); }
            }

            if (berpos != -1)
            {
                try
                {
                    foreach (int pos in FieldNames[berpos].Keys)
                    {
                        DynamicBerConverterField bf = new DynamicBerConverterField();

                        bf.Name = FieldNames[berpos][pos];

                        bf.FieldType = FieldTypes[berpos][pos];

                        bf.Value = Convert.ChangeType(decoded[pos], bf.FieldType);

                        if (bf.FieldType == typeof(string))
                        {
                            bf.Value = ((string)bf.Value).Replace("\0", String.Empty);
                        }                                                              // \0 -> nothing returned due to missing perms?

                        ret.Add(bf);
                    }
                }

                catch (Exception ex)
                { ex.ToDummy(); }
            }

            return(ret);
        }
        private void RemoveFieldsFromList(List <string> valNames)
        {
            foreach (string name in valNames)
            {
                try
                {
                    DynamicBerConverterField retfield = Fields.Where(f => String.Equals(f.Name, name, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

                    if (retfield != null)
                    {
                        Fields.Remove(retfield);
                    }
                }

                catch (Exception ex)
                { ex.ToDummy(); }
            }
        }
        private object GetValueFromList(string valName)
        {
            object ret = (int)0;

            try
            {
                DynamicBerConverterField retfield = Fields.Where(f => String.Equals(f.Name, valName, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

                if (retfield != null)
                {
                    if (retfield.Value != null)
                    {
                        ret = retfield.Value;
                    }
                }
            }

            catch (Exception ex)
            { ex.ToDummy(); }

            return(ret);
        }