private void ConfigureTrace(string connectionString, AdomdType connectionType, string sessionId, string applicationName, string databaseName, bool filterForCurrentSession)
        {
            Log.Verbose("{class} {method} {event} ConnStr: {connectionString} SessionId: {sessionId}", "QueryTraceEngine", "ConfigureTrace", "Start", connectionString, sessionId);
            _sessionId       = sessionId;
            _connectionType  = connectionType;
            _applicationName = applicationName;
            _databaseName    = databaseName;

            var connStrBuilder = new System.Data.OleDb.OleDbConnectionStringBuilder(connectionString);

            connStrBuilder.Remove("MDX Compatibility");
            connStrBuilder.Remove("Cell Error Mode");
            connStrBuilder.Remove("Roles");
            connStrBuilder.Remove("EffectiveUsername");
            connStrBuilder["SessionId"] = _sessionId;
            if (_databaseName.Length > 0)
            {
                connStrBuilder["Initial Catalog"] = _databaseName;
            }
            _connectionString = connStrBuilder.ToString();
            //_connectionString = string.Format("{0};SessionId={1}", connectionString, sessionId);
            //_connectionString = _connectionString.Replace("MDX Compatibility=1;", ""); // remove MDX Compatibility setting
            //_connectionString = _connectionString.Replace("Cell Error Mode=TextValue;", ""); // remove MDX Compatibility setting

            Log.Verbose("{class} {method} {event} ", "QueryTraceEngine", "ConfigureTrace", "End");
        }
 public QueryTraceEngine(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List<DaxStudioTraceEventClass> events)
 {
     Log.Verbose("{class} {method} {event} connstr: {connnectionString} sessionId: {sessionId}", "QueryTraceEngine", "<Constructor>", "Start",connectionString,sessionId);
     Status = QueryTraceStatus.Stopped;
     ConfigureTrace(connectionString, connectionType, sessionId, applicationName, events);
     Log.Verbose("{class} {method} {event}", "QueryTraceEngine", "<Constructor>", "End");
 }
        //public delegate void TraceStartedHandler(object sender);//, TraceStartedEventArgs eventArgs);


        public QueryTraceEngineExcel(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List <DaxStudioTraceEventClass> events)
        {
            Status = QueryTraceStatus.Stopped;
            _originalConnectionString = connectionString;
            _sessionId = sessionId;
            ConfigureTrace(connectionString, connectionType, sessionId, applicationName);
            Events = events;
        }
Beispiel #4
0
 private void ConfigureTrace(string connectionString, AdomdType connectionType, string sessionId, string applicationName) //, List<DaxStudioTraceEventClass> events)
 {
     //_connectionString = string.Format("{0};SessionId={1}",connectionString,sessionId);
     _connectionString = connectionString;
     _connectionString = _connectionString.Replace("MDX Compatibility=1;", "");       // remove MDX Compatibility setting
     _connectionString = _connectionString.Replace("Cell Error Mode=TextValue;", ""); // remove MDX Compatibility setting
     _connectionType   = connectionType;
     _applicationName  = applicationName;
 }
Beispiel #5
0
        public QueryTraceEngine(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List <DaxStudioTraceEventClass> events, IGlobalOptions globalOptions)
        {
            _globalOptions = globalOptions;
            Log.Verbose("{class} {method} {event} connstr: {connnectionString} sessionId: {sessionId}", "QueryTraceEngine", "<Constructor>", "Start", connectionString, sessionId);
            Status = QueryTraceStatus.Stopped;
            ConfigureTrace(connectionString, connectionType, sessionId, applicationName);
            Events = events;

            Log.Verbose("{class} {method} {event}", "QueryTraceEngine", "<Constructor>", "End - event count" + events.Count);
        }
 public void ConfigureTrace(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List<DaxStudioTraceEventClass> events)
 {
     _connectionString = string.Format("{0};SessionId={1}",connectionString,sessionId);
     _connectionString = _connectionString.Replace("MDX Compatibility=1;", ""); // remove MDX Compatibility setting
     _connectionString = _connectionString.Replace("Cell Error Mode=TextValue;", ""); // remove MDX Compatibility setting
     _connectionType = connectionType;
     _sessionId = sessionId;
     _applicationName = applicationName;
     _eventsToCapture = events;
 }
Beispiel #7
0
 private void ConfigureTrace(string connectionString, AdomdType connectionType, string sessionId, string applicationName)
 {
     Log.Verbose("{class} {method} {event} ConnStr: {connectionString} SessionId: {sessionId}", "QueryTraceEngine", "ConfigureTrace", "Start", connectionString, sessionId);
     _connectionString = string.Format("{0};SessionId={1}", connectionString, sessionId);
     _connectionString = _connectionString.Replace("MDX Compatibility=1;", "");       // remove MDX Compatibility setting
     _connectionString = _connectionString.Replace("Cell Error Mode=TextValue;", ""); // remove MDX Compatibility setting
     _connectionType   = connectionType;
     _sessionId        = sessionId;
     _applicationName  = applicationName;
     Log.Verbose("{class} {method} {event} ", "QueryTraceEngine", "ConfigureTrace", "End");
 }
Beispiel #8
0
        public QueryTraceEngineExcel(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List <DaxStudioTraceEventClass> events, bool filterForCurrentSession)
        {
            Contract.Requires(connectionString != null, "connectionString must not be null");

            Status = QueryTraceStatus.Stopped;
            _originalConnectionString = connectionString;
            _sessionId = sessionId;
            FilterForCurrentSession = filterForCurrentSession;
            ConfigureTrace(connectionString, connectionType, sessionId, applicationName);
            Events = events;
        }
Beispiel #9
0
 public QueryTraceEngine(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List <DaxStudioTraceEventClass> events, IGlobalOptions globalOptions, bool filterForCurrentSession, string powerBIFileName)
 {
     Log.Verbose("{class} {method} {event} connstr: {connnectionString} sessionId: {sessionId}", "QueryTraceEngine", "<Constructor>", "Start", connectionString, sessionId);
     _globalOptions = globalOptions;
     Status         = QueryTraceStatus.Stopped;
     ConfigureTrace(connectionString, connectionType, sessionId, applicationName, filterForCurrentSession);
     Events = events;
     _filterForCurrentSession = filterForCurrentSession;
     _powerBIFileName         = powerBIFileName;
     Log.Verbose("{class} {method} {event}", "QueryTraceEngine", "<Constructor>", "End - event count" + events.Count);
 }
 public void ConfigureTrace(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List<DaxStudioTraceEventClass> events)
 {
     Log.Verbose("{class} {method} {event} ConnStr: {connectionString} SessionId: {sessionId}", "QueryTraceEngine", "ConfigureTrace", "Start",connectionString, sessionId);
     _connectionString = string.Format("{0};SessionId={1}", connectionString, sessionId);
     _connectionString = _connectionString.Replace("MDX Compatibility=1;", ""); // remove MDX Compatibility setting
     _connectionString = _connectionString.Replace("Cell Error Mode=TextValue;", ""); // remove MDX Compatibility setting
     _connectionType = connectionType;
     _sessionId = sessionId;
     _applicationName = applicationName;
     _eventsToCapture = events;
     Log.Verbose("{class} {method} {event} EventCount: {eventcount}", "QueryTraceEngine", "ConfigureTrace", "End", events.Count);
 }
Beispiel #11
0
 public AdomdConnection(string connectionString, AdomdType type)
 {
     _type = type;
     if (_type == AdomdType.AnalysisServices)
     {
         _conn = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
     }
     else
     {
         ExcelAdoMdConnections.VoidDelegate f = delegate
         {
             _connExcel = new ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
         };
         f();
     }
 }
Beispiel #12
0
 public AdomdConnection(string connectionString, AdomdType type)
 {
     _type = type;
     if (_type == AdomdType.AnalysisServices)
     {
         _conn = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
     }
     else
     {
         ExcelAdoMdConnections.VoidDelegate f = delegate
         {
             _connExcel = new ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
         };
         f();
     }
 }
Beispiel #13
0
        public AdomdConnection(string connectionString, AdomdType type)
        {
            _type = type;
            if (_type == AdomdType.AnalysisServices)
            {
                _conn = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
            }
            else
            {
                void f()
                {
                    _connExcel = new ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
                }

                f();
            }
        }
Beispiel #14
0
        public QueryTraceEngine(string connectionString, AdomdType connectionType, string sessionId, string applicationName, string databaseName, List <DaxStudioTraceEventClass> events, IGlobalOptionsBase globalOptions, bool filterForCurrentSession, string powerBiFileName)
        {
            Log.Verbose("{class} {method} {event} connectionString: {connectionString}", "QueryTraceEngine", "<Constructor>", "Start", connectionString);
            _globalOptions = globalOptions;
            Status         = QueryTraceStatus.Stopped;

            _sessionId       = sessionId;
            _connectionType  = connectionType;
            _applicationName = applicationName;
            _databaseName    = databaseName;

            _connectionString        = AdjustConnectionString(connectionString);
            Events                   = events;
            _filterForCurrentSession = filterForCurrentSession;
            _powerBiFileName         = powerBiFileName;
            Log.Verbose("{class} {method} {event}", "QueryTraceEngine", "<Constructor>", "End - event count" + events.Count);
        }
Beispiel #15
0
        //public void ConstructQueryTraceEngine(ADOTabular.AdomdClientWrappers.AdomdType connectionType, string sessionId, List<DaxStudioTraceEventClass> eventsToCapture)
        //{
        //    var stubGlobalOptions =  new StubGlobalOptions();
        //    ConstructQueryTraceEngine(connectionType, sessionId, eventsToCapture, stubGlobalOptions);
        //}

        public void ConstructQueryTraceEngine(AdomdType connectionType, string sessionId, List <DaxStudioTraceEventClass> eventsToCapture, bool filterForCurrentSession, string powerBIFileName)    //, IGlobalOptions globalOptions)
        {
            try
            {
                Log.Debug("{class} {method} {event}", "QueryTraceHub", "ConstructQueryTraceEngine", "Starting");
                string powerPivotConnStr = "";
                using (var xl = new ExcelHelper(Globals.ThisAddIn.Application))
                {
                    powerPivotConnStr = xl.GetPowerPivotConnectionString();
                    // override command type if this is Excel 2013 or later
                    if (xl.IsExcel2013OrLater)
                    {
                        connectionType = AdomdType.Excel;
                        Log.Debug("{class} {method} {event}", "QueryTraceHub", "ConstructQueryTraceEngine", "Constructing QueryTraceEngineExcel");
                        // Anonymouse delegate stops .Net from trying to load MIcrosoft.Excel.Amo.dll when we are running inside Excel 2010
                        VoidDelegate f = delegate
                        {
                            _xlEngine                 = new QueryTraceEngineExcel(powerPivotConnStr, connectionType, sessionId, "", eventsToCapture, filterForCurrentSession);
                            _xlEngine.TraceError     += ((o, e) => { Clients.Caller.OnTraceError(e); });
                            _xlEngine.TraceCompleted += ((o, e) => { OnTraceCompleted(e); });
                            _xlEngine.TraceStarted   += ((o, e) => { Clients.Caller.OnTraceStarted(); });
                        };
                        f();
                        Log.Debug("{class} {method} {event} {status}", "QueryTraceHub", "ConstructQueryTraceEngine", "Constructed QueryTraceEngineExcel", (_xlEngine != null));
                    }
                    else
                    {
                        connectionType = AdomdType.AnalysisServices;
                        Log.Debug("{class} {method} {event}", "QueryTraceHub", "ConstructQueryTraceEngine", "Constructing QueryTraceEngine");
                        _engine                 = new QueryTraceEngine(powerPivotConnStr, connectionType, sessionId, "", "", eventsToCapture, new StubGlobalOptions(), filterForCurrentSession, powerBIFileName);
                        _engine.TraceError     += ((o, e) => { Clients.Caller.OnTraceError(e); });
                        _engine.TraceWarning   += ((o, e) => { Clients.Caller.OnTraceWarning(e); });
                        _engine.TraceCompleted += ((o, e) => { OnTraceCompleted(e); });
                        _engine.TraceStarted   += ((o, e) => { Clients.Caller.OnTraceStarted(); });
                        Log.Debug("{class} {method} {event} {status}", "QueryTraceHub", "ConstructQueryTraceEngine", "Constructed QueryTraceEngine", (_engine != null));
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error("{class} {method} {exception}", "QueryTraceHub", "ConstructQueryTraceEngine", ex.Message);
                Clients.Caller.OnTraceError(string.Format("{0}\n{1}", ex.Message, ex.StackTrace));
            }
        }
        public ADOTabularConnection(string connectionString, AdomdType connectionType, bool showHiddenObjects, ADOTabularMetadataDiscovery vistorType)
        {
            ShowHiddenObjects = showHiddenObjects;
            ConnectionString  = connectionString;
            _adomdConn        = new AdomdConnection(ConnectionString, connectionType);
            _connectionType   = connectionType;
            //   _adomdConn.ConnectionString = connectionString;

            //_adomdConn.Open();
            if (vistorType == ADOTabularMetadataDiscovery.Adomd)
            {
                Visitor = new MetaDataVisitorADOMD(this);
            }
            else
            {
                Visitor = new MetaDataVisitorCSDL(this);
            }
            ConnectionChanged?.Invoke(this, new EventArgs());
        }
        public QueryTraceEngine(IConnectionManager connectionManager, List <DaxStudioTraceEventClass> events, IGlobalOptions globalOptions, bool filterForCurrentSession, string powerBIFileName)
        {
            Log.Verbose("{class} {method} {event} connstr: {connnectionString}", "QueryTraceEngine", "<Constructor>", "Start", connectionManager.ConnectionString);
            _globalOptions     = globalOptions;
            _connectionManager = connectionManager;
            Status             = QueryTraceStatus.Stopped;

            // ping the connection to make sure it is connected
            connectionManager.Ping();

            _sessionId       = connectionManager.SessionId;
            _connectionType  = connectionManager.Type;
            _applicationName = connectionManager.ApplicationName;
            _databaseName    = connectionManager.DatabaseName;

            _connectionString        = AdjustConnectionString(_connectionManager.ConnectionString);
            Events                   = events;
            _filterForCurrentSession = filterForCurrentSession;
            _powerBIFileName         = powerBIFileName;
            Log.Verbose("{class} {method} {event}", "QueryTraceEngine", "<Constructor>", "End - event count" + events.Count);
        }
Beispiel #18
0
        public RemoteQueryTraceEngine(string connectionString, AdomdType connectionType, string sessionId, List <DaxStudioTraceEventClass> events, int port, IGlobalOptions globalOptions, bool filterForCurrentSession, string powerBIFileName)
        {
            Log.Debug("{{class} {method} {message}", "RemoteQueryTraceEngine", "constructor", "entered");
            // connect to hub
            hubConnection      = new HubConnection(string.Format("http://*****:*****@"d:\temp\SignalR_ClientLog.txt");
            //writer.AutoFlush = true;
            //hubConnection.TraceLevel = TraceLevels.All;
            //hubConnection.TraceWriter = writer;

            queryTraceHubProxy.On("OnTraceStarted", () => { OnTraceStarted(); });
            queryTraceHubProxy.On("OnTraceComplete", (e) => { OnTraceComplete(e); });
            queryTraceHubProxy.On <string>("OnTraceError", (msg) => { OnTraceError(msg); });
            hubConnection.Start().Wait();
            // configure trace
            Log.Debug("{class} {method} {message} connectionType: {connectionType} sessionId: {sessionId} eventCount: {eventCount}", "RemoteQueryTraceEngine", "<constructor>", "about to create remote engine", connectionType.ToString(), sessionId, events.Count);
            queryTraceHubProxy.Invoke("ConstructQueryTraceEngine", connectionType, sessionId, events, filterForCurrentSession, _powerBIFileName).Wait();
            // wire up hub events
        }
Beispiel #19
0
 public AdomdConnection(ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdConnection obj)
 {
     _type = AdomdType.Excel;
     _connExcel = obj;
 }
Beispiel #20
0
 public AdomdConnection(ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdConnection obj)
 {
     _type      = AdomdType.Excel;
     _connExcel = obj;
 }
Beispiel #21
0
 public AdomdDataReader(ExcelAdomdClientReference::Microsoft.AnalysisServices.AdomdClient.AdomdDataReader obj)
 {
     _objExcel = obj;
     _type     = AdomdType.Excel;
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType, ADOTabularMetadataDiscovery visitorType)
     : this(connectionString, connectionType, true, visitorType)
 {
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType, bool showHidden)
     : this(connectionString, connectionType, showHidden, ADOTabularMetadataDiscovery.Csdl)
 {
 }
        public ADOTabularConnection(string connectionString, AdomdType connectionType, bool showHiddenObjects, ADOTabularMetadataDiscovery vistorType)
        {
            ShowHiddenObjects = showHiddenObjects;
            ConnectionString = connectionString;
            _adomdConn = new AdomdConnection(ConnectionString,connectionType);
            _connectionType = connectionType;
             //   _adomdConn.ConnectionString = connectionString;

            //_adomdConn.Open();
            if (vistorType == ADOTabularMetadataDiscovery.Adomd)
            {
                Visitor = new MetaDataVisitorADOMD(this);
            }
            else
            {
                Visitor = new MetaDataVisitorCSDL(this);
            }
            if (ConnectionChanged != null)
                ConnectionChanged(this, new EventArgs());
        }
 public AdomdDataReader(AsAdomdClient.AdomdDataReader obj)
 {
     _type   = AdomdType.AnalysisServices;
     _reader = obj;
 }
Beispiel #26
0
 public AdomdConnection(string connectionString, AdomdType type)
 {
     Type  = type;
     _conn = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(connectionString);
 }
Beispiel #27
0
 public AdomdConnection(Microsoft.AnalysisServices.AdomdClient.AdomdConnection obj)
 {
     _type = AdomdType.AnalysisServices;
     _conn = obj;
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType)
     : this(connectionString, connectionType, ADOTabularMetadataDiscovery.Csdl)
 {
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType, ADOTabularMetadataDiscovery visitorType)
     : this(connectionString, connectionType, true, visitorType)
 {
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType, bool showHidden)
     : this(connectionString, connectionType, showHidden, ADOTabularMetadataDiscovery.Csdl)
 {
 }
 public ADOTabularConnection(string connectionString, AdomdType connectionType)
     : this(connectionString,connectionType, ADOTabularMetadataDiscovery.Csdl)
 {
 }
Beispiel #32
0
        public AdomdDataReader(Microsoft.AnalysisServices.AdomdClient.AdomdDataReader obj)
        {
            _obj = obj;

            _type = AdomdType.AnalysisServices;
        }
 //public delegate void TraceStartedHandler(object sender);//, TraceStartedEventArgs eventArgs);
 public QueryTraceEngineExcel(string connectionString, AdomdType connectionType, string sessionId, string applicationName, List<DaxStudioTraceEventClass> events)
 {
     Status = QueryTraceStatus.Stopped;
     ConfigureTrace(connectionString, connectionType, sessionId, applicationName, events);
 }
Beispiel #34
0
 public AdomdConnection(Microsoft.AnalysisServices.AdomdClient.AdomdConnection obj)
 {
     _type = AdomdType.AnalysisServices;
     _conn = obj;
 }
 public void ConfigureTrace(string connectionString, AdomdType connectionType, string applicationName, string sessionId, List<DaxStudioTraceEventClass> events)
 {
     throw new InvalidOperationException("ConfigureTrace should not be called directly on the SignalR hub");
 }
 public AdomdDataReader(ExcelAdomdClient.AdomdDataReader obj)
 {
     _type        = AdomdType.Excel;
     _readerExcel = obj;
 }
 public AdomdConnection(ExcelAdomdClient.AdomdConnection obj)
 {
     _type      = AdomdType.Excel;
     _connExcel = obj;
 }