Пример #1
0
        public static bool HasRealData(object dataSource)
        {
            StringCollection dataSourceDataMembers = DataBindingHelper.GetDataSourceDataMembers(dataSource);

            if (dataSourceDataMembers.Count == 0)
            {
                bool          flag                    = false;
                IDbConnection dbConnection            = null;
                IEnumerable   dataSourceAsIEnumerable = DataBindingHelper.GetDataSourceAsIEnumerable(dataSource, (string)null, out flag, out dbConnection);
                try
                {
                    IEnumerator enumerator = dataSourceAsIEnumerable.GetEnumerator();
                    try
                    {
                        if (enumerator.MoveNext())
                        {
                            object current2 = enumerator.Current;
                            return(true);
                        }
                    }
                    finally
                    {
                        IDisposable disposable2 = enumerator as IDisposable;
                        if (disposable2 != null)
                        {
                            disposable2.Dispose();
                        }
                    }
                }
                finally
                {
                    if (flag)
                    {
                        ((IDataReader)dataSourceAsIEnumerable).Close();
                    }
                    if (dbConnection != null)
                    {
                        dbConnection.Close();
                    }
                }
            }
            else
            {
                StringEnumerator enumerator2 = dataSourceDataMembers.GetEnumerator();
                try
                {
                    while (enumerator2.MoveNext())
                    {
                        string        current                  = enumerator2.Current;
                        bool          flag2                    = false;
                        IDbConnection dbConnection2            = null;
                        IEnumerable   dataSourceAsIEnumerable2 = DataBindingHelper.GetDataSourceAsIEnumerable(dataSource, current, out flag2, out dbConnection2);
                        try
                        {
                            IEnumerator enumerator3 = dataSourceAsIEnumerable2.GetEnumerator();
                            try
                            {
                                if (enumerator3.MoveNext())
                                {
                                    object current3 = enumerator3.Current;
                                    return(true);
                                }
                            }
                            finally
                            {
                                IDisposable disposable3 = enumerator3 as IDisposable;
                                if (disposable3 != null)
                                {
                                    disposable3.Dispose();
                                }
                            }
                        }
                        finally
                        {
                            if (flag2)
                            {
                                ((IDataReader)dataSourceAsIEnumerable2).Close();
                            }
                            if (dbConnection2 != null)
                            {
                                dbConnection2.Close();
                            }
                        }
                    }
                }
                finally
                {
                    IDisposable disposable = enumerator2 as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
            }
            return(false);
        }