Esempio n. 1
0
 public XrmService(IXrmConfiguration crmConfig)
 {
     XrmConfiguration = crmConfig;
     Controller = new LogController();
 }
Esempio n. 2
0
 public XrmService(IXrmConfiguration crmConfig)
 {
     XrmConfiguration = crmConfig;
     _controller      = new LogController();
 }
Esempio n. 3
0
 public XrmService(IXrmConfiguration crmConfig, LogController controller)
 {
     XrmConfiguration = crmConfig;
     Controller = controller;
 }
Esempio n. 4
0
 public XrmService(IXrmConfiguration crmConfig, LogController controller)
 {
     XrmConfiguration = crmConfig;
     _controller      = controller;
 }
Esempio n. 5
0
        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;
 }
Esempio n. 7
0
        /// <summary>
        ///     Return Organisation Service Proxy
        /// </summary>
        /// <returns></returns>
        public static OrganizationServiceProxy GetOrgServiceProxy(IXrmConfiguration crmConfig)
        {
            var connection = new XrmConnection(crmConfig);

            return(connection.GetOrgServiceProxy());
        }
Esempio n. 8
0
 private XrmConnection(IXrmConfiguration crmConfig)
 {
     CrmConfig = crmConfig;
 }