コード例 #1
0
        public static ObserverDataTable Observe(string key)
        {
            IObserver observer = null;
            lock (_syncRoot) {
                if (!_observers.TryGetValue(key, out observer)) {
                    throw new KeyNotFoundException("Observer Not Found:" + key);
                }
            }

            List<ObserverItem> list = observer.Observe();
            ObserverDataTable table = new ObserverDataTable();

            if (list.Count == 0) {
                table.Columns = new string[0];
                table.ColumnTypes = new ObserverColumnType[0];
                table.Rows = new List<RpcClass<string[]>>();
                table.ClearTime = DateTime.Parse("2000-01-01");
                return table;
            }

            var formatter = list[0].GetFormatter();
            table.ClearTime = observer.ClearTime;
            table.Columns = formatter.Columns;
            table.ColumnTypes = formatter.ColumnTypes;
            table.Rows = new List<RpcClass<string[]>>();

            foreach (var i in list) {
                string[] ss = formatter.GetRow(i);
                table.Rows.Add(new RpcClass<string[]>(ss));
            }
            return table;
        }
コード例 #2
0
ファイル: ObserverManager.cs プロジェクト: ilahsa/bai_pro
        public static ObserverDataTable Observe(string key)
        {
            IObserver observer = null;

            lock (_syncRoot) {
                if (!_observers.TryGetValue(key, out observer))
                {
                    throw new KeyNotFoundException("Observer Not Found:" + key);
                }
            }

            List <ObserverItem> list  = observer.Observe();
            ObserverDataTable   table = new ObserverDataTable();

            if (list.Count == 0)
            {
                table.Columns     = new string[0];
                table.ColumnTypes = new ObserverColumnType[0];
                table.Rows        = new List <RpcClass <string[]> >();
                table.ClearTime   = DateTime.Parse("2000-01-01");
                return(table);
            }

            var formatter = list[0].GetFormatter();

            table.ClearTime   = observer.ClearTime;
            table.Columns     = formatter.Columns;
            table.ColumnTypes = formatter.ColumnTypes;
            table.Rows        = new List <RpcClass <string[]> >();

            foreach (var i in list)
            {
                string[] ss = formatter.GetRow(i);
                table.Rows.Add(new RpcClass <string[]>(ss));
            }
            return(table);
        }