Example #1
0
        /// <summary>
        /// 获取随机字符串
        /// </summary>
        /// <param name="length">长度</param>
        /// <param name="prefix">前缀</param>
        /// <param name="suffix">后缀</param>
        /// <param name="seedType">StringSeedTypeEnum</param>
        /// <param name="caseType">StringCaseTypeEnum</param>
        /// <returns></returns>
        public static string GetRandomCode(int length, string prefix = "", string suffix = "", StringSeedTypeEnum seedType = StringSeedTypeEnum.Number, StringCaseTypeEnum caseType = StringCaseTypeEnum.Normal)
        {
            char[] seedList = null;
            if (seedType == StringSeedTypeEnum.Number)
            {
                seedList = NUMBER_SEED_LIST;
            }
            else if (seedType == StringSeedTypeEnum.Char)
            {
                seedList = CHAR_SEED_LIST;
            }
            else
            {
                seedList = NUMBER_CHAR_SEED_LIST;
            }
            int seedLength = seedList.Length;

            Random random = new Random();

            StringBuilder stringBuilder = new StringBuilder();

            if (!string.IsNullOrEmpty(prefix))
            {
                stringBuilder.Append(prefix);
            }
            for (int index = 0; index < length; index++)
            {
                stringBuilder.Append(seedList[random.Next(0, seedLength)]);
            }
            if (!string.IsNullOrEmpty(suffix))
            {
                stringBuilder.Append(suffix);
            }

            if (caseType == StringCaseTypeEnum.Lower)
            {
                return(stringBuilder.ToString().ToLower());
            }
            else if (caseType == StringCaseTypeEnum.Upper)
            {
                return(stringBuilder.ToString().ToUpper());
            }
            return(stringBuilder.ToString());
        }
        /// <summary>
        /// 获取日期字符串
        /// </summary>
        /// <param name="length">长度</param>
        /// <param name="prefix">前缀</param>
        /// <param name="suffix">后缀</param>
        /// <param name="seedType">StringSeedTypeEnum</param>
        /// <param name="caseType">StringCaseTypeEnum</param>
        /// <returns></returns>
        public static string GetDateCode(int length, string prefix = "", string suffix = "", StringSeedTypeEnum seedType = StringSeedTypeEnum.Number, StringCaseTypeEnum caseType = StringCaseTypeEnum.Normal)
        {
            string code = DateTime.Now.ToString("yyyyMMddHHmmssfff");

            if (length <= code.Length)
            {
                return(code.Substring(0, length));
            }

            int subLength = length - code.Length;

            if (!string.IsNullOrEmpty(prefix))
            {
                if (subLength <= prefix.Length)
                {
                    prefix = prefix.Substring(0, prefix.Length - subLength);
                }
                code       = prefix + code;
                subLength -= prefix.Length;
            }
            if (subLength > 0)
            {
                string randomCode = GetRandomCode(subLength, "", "", seedType, caseType);
                code      += randomCode;
                subLength -= randomCode.Length;
            }
            if (!string.IsNullOrEmpty(suffix))
            {
                if (subLength <= suffix.Length)
                {
                    suffix = suffix.Substring(0, suffix.Length - subLength);
                }
                code      += suffix;
                subLength -= suffix.Length;
            }
            return(code);
        }