public XrmService(IXrmConfiguration crmConfig) { XrmConfiguration = crmConfig; Controller = new LogController(); }
public XrmService(IXrmConfiguration crmConfig) { XrmConfiguration = crmConfig; _controller = new LogController(); }
public XrmService(IXrmConfiguration crmConfig, LogController controller) { XrmConfiguration = crmConfig; Controller = controller; }
public XrmService(IXrmConfiguration crmConfig, LogController controller) { XrmConfiguration = crmConfig; _controller = controller; }
public override GetOrganisationConnectionResponse GetOrganisationConnection(IXrmConfiguration xrmConfiguration) { if (!xrmConfiguration.UseXrmToolingConnector) { return(base.GetOrganisationConnection(xrmConfiguration)); } else { lock (_lockObject) { GetOrganisationConnectionResponse result = null; Action connectionUsingTooling = () => { if (string.IsNullOrWhiteSpace(xrmConfiguration.ToolingConnectionId)) { throw new Exception($"{nameof(IXrmConfiguration.ToolingConnectionId)} Is Required On The {nameof(IXrmConfiguration)} When {nameof(IXrmConfiguration.UseXrmToolingConnector)} Is Set"); } if (!_cachedToolingConnections.ContainsKey(xrmConfiguration.ToolingConnectionId)) { var loginFrm = new ToolingConnectorForm(xrmConfiguration.ToolingConnectionId, xrmConfiguration.Name); // Login process is Async, thus we need to detect when login is completed and close the form. loginFrm.ConnectionToCrmCompleted += LoginFrm_ConnectionToCrmCompleted; // Show the dialog here. loginFrm.ShowDialog(); // If the login process completed, assign the connected service to the CRMServiceClient var if (loginFrm.CrmConnectionMgr != null && loginFrm.CrmConnectionMgr.CrmSvc != null && loginFrm.CrmConnectionMgr.CrmSvc.IsReady) { if (!_cachedToolingConnections.ContainsKey(xrmConfiguration.ToolingConnectionId)) { _cachedToolingConnections.Add(xrmConfiguration.ToolingConnectionId, loginFrm.CrmConnectionMgr.CrmSvc); } } else { throw new Exception("A Successful Connection Was Not Made By The Tooling Connector"); } } var service = _cachedToolingConnections[xrmConfiguration.ToolingConnectionId]; var organisation = new Organisation(service.ConnectedOrgUniqueName, service.ConnectedOrgFriendlyName, service.ConnectedOrgVersion?.ToString(), service.ConnectedOrgPublishedEndpoints); result = new GetOrganisationConnectionResponse(service, organisation); }; if (ApplicationController.CurrentThreadIsDispatcher()) { connectionUsingTooling(); } else { var isFinished = false; Exception tempEx = null; ApplicationController.DoOnMainThread(() => { try { connectionUsingTooling(); isFinished = true; } catch (Exception ex) { tempEx = ex; isFinished = true; } }); while (!isFinished) { Thread.Sleep(1000); } if (tempEx != null) { throw tempEx; } } return(result); } } }
public XrmConnection(IXrmConfiguration crmConfig) { CrmConfig = crmConfig; }
/// <summary> /// Return Organisation Service Proxy /// </summary> /// <returns></returns> public static OrganizationServiceProxy GetOrgServiceProxy(IXrmConfiguration crmConfig) { var connection = new XrmConnection(crmConfig); return(connection.GetOrgServiceProxy()); }
private XrmConnection(IXrmConfiguration crmConfig) { CrmConfig = crmConfig; }