public QlikApp(string appName, string connectUri, IQlikCredentials credentials) { if (String.IsNullOrEmpty(connectUri) || connectUri == "Qlik Sense Desktop") { //Qlik Sense Desktop AppName = appName; AppUri = new Uri("ws://127.0.0.1:4848"); IsServerConnection = false; } else { //Qlik Sense Server var resultValue = Guid.TryParse(appName, out var result) ? (Guid?)result : null; if (resultValue == null) { AppName = appName; } else { AppId = resultValue.Value; } AppUri = new Uri(connectUri); IsServerConnection = true; } Credentials = credentials; Sessions = new List <QlikAppSession>(); }
public bool Reconnect(IQlikCredentials credentials, bool createDefaultSession = false) { Credentials = credentials; return(Connect(createDefaultSession)); }
public static QlikApp GetQlikInstance(ConnectorParameter parameter, string appId = null) { try { IQlikCredentials qlikAuth = null; var connectUri = "Qlik Sense Desktop"; if (!parameter.UseDesktop) { connectUri = $"https://{parameter.ConnectUri}"; var session = GetVaildSession(parameter.UserName); if (ValidateWinCredentials(parameter.UserName, parameter.Password)) { connectUri = $"wss://{parameter.ConnectUri}:4747"; qlikAuth = new CertificateAuth(parameter.UserName, Environment.UserDomainName); } else if (session != null) { qlikAuth = new SessionAuth(session.Id); } else { qlikAuth = new WindowsAuth(parameter.UserName, parameter.Password); } } activeApp = new QlikApp(appId, connectUri, qlikAuth); if (appId != null && activeApp.Connect()) { var session = sessionMem.FirstOrDefault(s => s.UserName == parameter.UserName) ?? null; if (session == null) { sessionMem.Add(new SessionMemory() { UserName = parameter.UserName, Id = activeApp.FirstSession.SessionId, Stamp = DateTime.Now, }); } else { session.Id = activeApp.FirstSession.SessionId; session.Stamp = DateTime.Now; var index = sessionMem.IndexOf(session); sessionMem[index] = session; } } else { if (!String.IsNullOrEmpty(appId)) { throw new Exception($"No connection with app {appId}"); } } return(activeApp); } catch (Exception ex) { logger.Error(ex, "app connection failed"); return(null); } }