示例#1
0
        /// <summary>
        /// Standard constructor
        /// </summary>
        /// <param name="login">Login</param>
        /// <param name="password">Password</param>
        /// <param name="server">Server</param>
        /// <param name="policy">Policy</param>
        public LoginPasswordServer(string login, string password, string server, LoginPasswordServerPolicy policy)
        {
            Login    = login ?? "";
            Password = password ?? "";
            Server   = server ?? "";

            Policy = policy;
        }
示例#2
0
        /// <summary>
        /// Parse
        /// </summary>
        public static LoginPasswordServer Parse(string value, LoginPasswordServerPolicy policy)
        {
            if (null == value)
            {
                throw new ArgumentNullException(nameof(value));
            }

            if (TryParse(value, out var result, policy))
            {
                return(result);
            }

            throw new FormatException($"Invalid format: string provided can't be parsed as {typeof(LoginPasswordServer).Name}");
        }
示例#3
0
        /// <summary>
        /// Try Parse
        /// </summary>
        public static bool TryParse(string value, out LoginPasswordServer result, LoginPasswordServerPolicy policy)
        {
            result = null;

            if (string.IsNullOrWhiteSpace(value))
            {
                return(false);
            }

            int p = value.LastIndexOf('@');

            string server = "";

            if (p >= 0)
            {
                server = value[(p + 1)..];
示例#4
0
        /// <summary>
        /// Try Parse
        /// </summary>
        public static bool TryParse(string value, out LoginPasswordServer result, LoginPasswordServerPolicy policy)
        {
            result = null;

            if (string.IsNullOrWhiteSpace(value))
            {
                return(false);
            }

            int p = value.LastIndexOf('@');

            string server = "";

            if (p >= 0)
            {
                server = value.Substring(p + 1);
                value  = value.Substring(0, p);
            }

            string login    = value;
            string password = "";

            p = value.IndexOfAny(new char[] { '\\', '/' });

            if (p >= 0)
            {
                login    = value.Substring(0, p);
                password = value.Substring(p + 1);
            }

            login = login.TrimStart();

            if (string.IsNullOrEmpty(login))
            {
                return(false);
            }

            result = new LoginPasswordServer(login, password, server, policy);

            return(true);
        }
示例#5
0
 private static StringComparison ComparisonFor(LoginPasswordServerPolicy left, LoginPasswordServerPolicy right) =>
 ((left & right) == LoginPasswordServerPolicy.None)
 ? StringComparison.Ordinal
 : StringComparison.OrdinalIgnoreCase;