Example #1
0
        /// <summary>
        /// Runs the URI for specified version.
        /// </summary>
        /// <param name="uri">The URI.</param>
        /// <param name="pid">The pid.</param>
        /// <param name="activeProcessFolder">The active process folder.</param>
        /// <param name="fileVersion">The file version.</param>
        /// <param name="showMessageIfNotFound">if set to <c>true</c> [show message if not found].</param>
        /// <returns></returns>
        private static bool RunForVersion(string uri, String activeProcessFolder, string fileVersion, bool showMessageIfNotFound = true)
        {
            var navPath = FindNavClient(fileVersion, activeProcessFolder);

            if (String.IsNullOrEmpty(navPath))
            {
                if (showMessageIfNotFound)
                {
                    MessageBox.Show("Version " + fileVersion + " of RTC was not found!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                return(false);
            }
            var navClient = NAVClientFactory.GetObject(fileVersion);

            navClient.Uri  = uri;
            navClient.Path = navPath;
            RunProcess(navClient);
            return(true);
        }
Example #2
0
        /// <summary>
        /// The URI was fired from NAV client.
        /// </summary>
        /// <param name="uri">The URI.</param>
        /// <param name="pid">The NAV client pid.</param>
        /// <param name="activeProcessFolder">The active process folder.</param>
        /// <param name="path">The path.</param>
        private static void RunFromClient(string uri, uint pid, String activeProcessFolder, String path)
        {
            var versionInfo = FileVersionInfo.GetVersionInfo(activeProcessFolder);
            var fileVersion = versionInfo.FileVersion;

            if (pid != 0)
            {
                // Only trigger GetExtendedUri if uri does not contain service tier server and instance
                if (uri.Contains("////"))
                {
                    var newUri = NAV_URI_Extender.GetExtendedUri(new Uri(uri), pid);
                    if (newUri != null)
                    {
                        uri = newUri.ToString();
                    }
                }
            }

            NAVClient2URI.UpdateVersion(uri, fileVersion);
            if (File.Exists(path + "Microsoft.Dynamics.Nav.Client.x86.exe"))
            //Runs the client from same folder as calling process
            {
                var navClient = NAVClientFactory.GetObject(fileVersion);
                navClient.Path = path + "Microsoft.Dynamics.Nav.Client.x86.exe";
                navClient.Uri  = uri;
                RunProcess(navClient);
                return;
            }
            else
            {
                if (File.Exists(path + "Microsoft.Dynamics.Nav.Client.exe"))
                //Runs the client from same folder as calling process
                {
                    var navClient = NAVClientFactory.GetObject(fileVersion);
                    navClient.Path = path + "Microsoft.Dynamics.Nav.Client.exe";
                    navClient.Uri  = uri;
                    RunProcess(navClient);
                    return;
                }
            }

            RunForVersion(uri, activeProcessFolder, fileVersion);
        }