/// <summary> /// Handles external language status request /// </summary> /// <param name="parameters">Request parameters</param> /// <param name="requestContext">Request Context</param> /// <returns></returns> public async Task HandleExternalLanguageStatusRequest(ExternalLanguageStatusRequestParams parameters, RequestContext <ExternalLanguageStatusResponseParams> requestContext) { Logger.Write(TraceEventType.Verbose, "HandleExternalLanguageStatusRequest"); try { ConnectionInfo connInfo; ConnectionServiceInstance.TryFindConnection( parameters.OwnerUri, out connInfo); ExternalLanguageStatusResponseParams response = new ExternalLanguageStatusResponseParams { Status = false, }; if (connInfo == null) { await requestContext.SendError(new Exception(SR.ConnectionServiceDbErrorDefaultNotConnected(parameters.OwnerUri))); } else { using (IDbConnection dbConnection = ConnectionService.OpenSqlConnection(connInfo)) { response.Status = ExternalLanguageOperations.GetLanguageStatus(dbConnection, parameters.LanguageName); } await requestContext.SendResult(response); } } catch (Exception e) { // Exception related to run task will be captured here await requestContext.SendError(e); } }
public async void VerifyExternalLanguageStatusRequest() { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { var connectionResult = await LiveConnectionHelper.InitLiveConnectionInfoAsync("master", queryTempFile.FilePath); ExternalLanguageStatusResponseParams result = null; var requestContext = RequestContextMocks.Create <ExternalLanguageStatusResponseParams>(r => result = r).AddErrorHandling(null); ExternalLanguageStatusRequestParams requestParams = new ExternalLanguageStatusRequestParams { OwnerUri = connectionResult.ConnectionInfo.OwnerUri, LanguageName = "Python" }; await ExternalLanguageService.Instance.HandleExternalLanguageStatusRequest(requestParams, requestContext.Object); Assert.NotNull(result); ExternalLanguageService.Instance.ConnectionServiceInstance.Disconnect(new DisconnectParams { OwnerUri = queryTempFile.FilePath, Type = ServiceLayer.Connection.ConnectionType.Default }); } }
public async void VerifyExternalLanguageStatusRequestSendErrorGivenInvalidConnection() { ExternalLanguageStatusResponseParams result = null; var requestContext = RequestContextMocks.Create <ExternalLanguageStatusResponseParams>(r => result = r).AddErrorHandling(null); requestContext.Setup(x => x.SendError(It.IsAny <Exception>())).Returns(Task.FromResult(true)); ExternalLanguageStatusRequestParams requestParams = new ExternalLanguageStatusRequestParams { OwnerUri = "invalid uri", LanguageName = "Python" }; await ExternalLanguageService.Instance.HandleExternalLanguageStatusRequest(requestParams, requestContext.Object); requestContext.Verify(x => x.SendError(It.IsAny <Exception>())); }