private string GetProcessArguments(ServiceInstance instance)
        {
            var configParameters = new Dictionary<string, string>();
            configParameters.Add("log", instance.LogPath);
            configParameters.Add("db", instance.DbPath);
            configParameters.Add("run-projections", instance.RunProjections);

            if (!string.IsNullOrWhiteSpace(instance.InternalAddresses))
            {
                configParameters.Add("int-http-prefixes", instance.InternalAddresses);
            }

            if (!string.IsNullOrWhiteSpace(instance.ExternalAddresses))
            {
                configParameters.Add("ext-http-prefixes", instance.ExternalAddresses);
            }

            var externalIp = GetIp(instance.ExternalIP);
            configParameters.Add("ext-ip", externalIp);
            var internalIp = GetIp(instance.InternalIP);
            configParameters.Add("int-ip", internalIp);

            return configParameters.Aggregate("",
                (acc, next) => string.Format("{0} --{1} \"{2}\"", acc, next.Key, next.Value));
        }
        public ProcessStartInfo GetProcessStartInfo(string executable, ServiceInstance instance)
        {
            var arguments = GetProcessArguments(instance);

            return new ProcessStartInfo(executable, arguments)
            {
                UseShellExecute = false
            };
        }
        private string GetProcessArguments(ServiceInstance instance)
        {
            var configParameters = new Dictionary <string, string>();

            configParameters.Add("log", instance.LogPath);
            configParameters.Add("db", instance.DbPath);
            configParameters.Add("run-projections", instance.RunProjections);
            if (!string.IsNullOrWhiteSpace(instance.Addresses))
            {
                configParameters.Add("httpprefixes", instance.Addresses);
            }
            var externalIp = GetIp(instance.ExternalIP);

            configParameters.Add("ext-ip", externalIp);
            var internalIp = GetIp(instance.InternalIP);

            configParameters.Add("int-ip", internalIp);

            return(configParameters.Aggregate("",
                                              (acc, next) => string.Format("{0} --{1} {2}", acc, next.Key, next.Value)));
        }