示例#1
0
        bool TryParseParameters(IntPtr hParentWnd, string parameters, string commonRoot, out string serviceUri, out string user, out string password)
        {
            serviceUri = user = password = null;

            if (String.IsNullOrEmpty(parameters) && !String.IsNullOrEmpty(commonRoot))
            {             //Read from svn...
                SvnProperties props   = new SvnProperties(commonRoot);
                string        testUri = props.Search(".", true, Connector.UriPropertyName);
                if (!String.IsNullOrEmpty(testUri))
                {
                    parameters = testUri;
                }
            }
            if (String.IsNullOrEmpty(parameters))
            {
                string test = System.Configuration.ConfigurationManager.AppSettings[Connector.UriPropertyName];
                if (!String.IsNullOrEmpty(test))
                {
                    parameters = test;
                }
            }

            Uri uri;

            if (Uri.TryCreate(parameters, UriKind.Absolute, out uri))
            {
                serviceUri = String.Format("{0}://{1}:{2}{3}", uri.Scheme, uri.Host, uri.Port, uri.PathAndQuery);

                if (!String.IsNullOrEmpty(uri.UserInfo))
                {
                    string[] parts = uri.UserInfo.Split(':');
                    if (parts.Length == 2 && !String.IsNullOrEmpty(parts[0]) && !String.IsNullOrEmpty(parts[1]))
                    {
                        user     = parts[0];
                        password = parts[1];
                    }
                    else
                    {
                        user     = uri.UserInfo;
                        password = ReadSettings(hParentWnd, serviceUri, ref user);
                    }
                }
                else
                {
                    password = ReadSettings(hParentWnd, serviceUri, ref user);
                }

                if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(password))
                {
                    return(true);
                }
            }
            return(false);
        }
示例#2
0
        bool TryParseParameters(IntPtr hParentWnd, string parameters, string commonRoot, out string serviceUri, out string user, out string password)
        {
            serviceUri = user = password = null;

            if (String.IsNullOrEmpty(parameters) && !String.IsNullOrEmpty(commonRoot))
            { //Read from svn...
                SvnProperties props = new SvnProperties(commonRoot);
                string testUri = props.Search(".", true, Connector.UriPropertyName);
                if (!String.IsNullOrEmpty(testUri))
                    parameters = testUri;
            }
            if (String.IsNullOrEmpty(parameters))
            {
                string test = System.Configuration.ConfigurationManager.AppSettings[Connector.UriPropertyName];
                if (!String.IsNullOrEmpty(test))
                    parameters = test;
            }

            Uri uri;
            if (Uri.TryCreate(parameters, UriKind.Absolute, out uri))
            {
                serviceUri = String.Format("{0}://{1}:{2}{3}", uri.Scheme, uri.Host, uri.Port, uri.PathAndQuery);

                if (!String.IsNullOrEmpty(uri.UserInfo))
                {
                    string[] parts = uri.UserInfo.Split(':');
                    if (parts.Length == 2 && !String.IsNullOrEmpty(parts[0]) && !String.IsNullOrEmpty(parts[1]))
                    {
                        user = parts[0];
                        password = parts[1];
                    }
                    else
                    {
                        user = uri.UserInfo;
                        password = ReadSettings(hParentWnd, serviceUri, ref user);
                    }
                }
                else
                    password = ReadSettings(hParentWnd, serviceUri, ref user);

                if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(password))
                    return true;
            }
            return false;
        }