예제 #1
0
        /// <summary>
        ///     批量生成代码
        /// </summary>
        /// <returns></returns>
        public async Task <OperateStatus> GeneratingCode()
        {
            OperateStatus operateStatus = new OperateStatus();

            try
            {
                //获取所有字典树
                var dics = (await GetAllEnumerableAsync()).ToList();

                var topDics = dics.Where(w => w.ParentId == Guid.Empty);
                foreach (var dic in topDics)
                {
                    dic.Code = PinYinUtil.GetFirst(dic.Name);
                    await UpdateAsync(dic);
                    await GeneratingCodeRecursion(dic, dics.ToList(), "");
                }
            }
            catch (Exception ex)
            {
                operateStatus.Message = string.Format(Chs.Error, ex.Message);
                return(operateStatus);
            }
            operateStatus.Message    = Chs.Successful;
            operateStatus.ResultSign = ResultSign.Successful;
            return(operateStatus);
        }
예제 #2
0
        IParamBuilder ISearch.Search(EasySearch easySearch, SearchField searchType,
                                     TkDbContext context, IFieldInfo fieldName, string fieldValue)
        {
            TkDebug.AssertArgumentNull(context, "context", this);
            TkDebug.AssertArgumentNull(fieldName, "fieldName", this);

            if (string.IsNullOrEmpty(fieldValue))
            {
                return(null);
            }

            fieldValue = StringUtil.EscapeAposString(fieldValue);
            string sql;

            if (fieldValue.IndexOfAny(WideChars) != -1)
            {
                fieldValue = StringUtil.EscapeSqlString(fieldValue);
                sql        = string.Format(ObjectUtil.SysCulture,
                                           "(({0} LIKE '{1}%' ESCAPE '\\') OR ({0} LIKE '{2}%' ESCAPE '\\') OR ({3}))",
                                           context.EscapeName(fieldName.FieldName), fieldValue.ToUpper(ObjectUtil.SysCulture),
                                           fieldValue.ToLower(ObjectUtil.SysCulture),
                                           PinYinUtil.GetCharFullCondition(context, fieldName.FieldName, fieldValue));
            }
            else
            {
                sql = string.Format(ObjectUtil.SysCulture,
                                    "(({0} LIKE '{1}%') OR ({0} LIKE '{2}%') OR ({3}))",
                                    context.EscapeName(fieldName.FieldName), fieldValue.ToUpper(ObjectUtil.SysCulture),
                                    fieldValue.ToLower(ObjectUtil.SysCulture),
                                    PinYinUtil.GetCharFullCondition(context, fieldName.FieldName, fieldValue));
            }
            return(SqlParamBuilder.CreateSql(sql));
        }
예제 #3
0
        public EasySearchDataItem(T item)
        {
            TkDebug.AssertArgumentNull(item, "item", null);

            fItem  = item;
            Pinyin = PinYinUtil.GetPyHeader(Item.Name, string.Empty);
        }
예제 #4
0
파일: Form1.cs 프로젝트: yyan/winform
        private void btnPinyinUtil_Click(object sender, EventArgs e)
        {
            string[] maxims = new string[] {
                "事常与人违,事总在人为",
                "骏马是跑出来的,强兵是打出来的",
                "驾驭命运的舵是奋斗。不抱有一丝幻想,不放弃一点机会,不停止一日努力。 ",
                "如果惧怕前面跌宕的山岩,生命就永远只能是死水一潭",
                "懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡"
            };

            string[] medicines = new string[] {
                "聚维酮碘溶液",
                "开塞露",
                "炉甘石洗剂",
                "苯扎氯铵贴",
                "鱼石脂软膏",
                "莫匹罗星软膏",
                "红霉素软膏",
                "氢化可的松软膏",
                "曲安奈德软膏",
                "丁苯羟酸乳膏",
                "双氯芬酸二乙胺乳膏",
                "冻疮膏",
                "克霉唑软膏",
                "特比奈芬软膏",
                "酞丁安软膏",
                "咪康唑软膏、栓剂",
                "甲硝唑栓",
                "复方莪术油栓",
                "右桥小脑角岩斜区肿瘤"
            };

            StringBuilder sb = new StringBuilder("UTF8句子拼音:");

            foreach (string s in maxims)
            {
                sb.AppendFormat("汉字:{0}\n拼音:{1}\n简码:{2} \r\n", s, Pinyin.GetPinyin(s), Pinyin.GetFirstPY(s));
            }

            Encoding gb2312 = Encoding.GetEncoding("GB2312");

            sb.AppendFormat("GB2312拼音简码:");
            foreach (string m in medicines)
            {
                string s = Pinyin.ConvertEncoding(m, Encoding.UTF8, gb2312);
                sb.AppendFormat("药品:{0}\n简码:{1}\n", s, Pinyin.GetFirstPY(s, gb2312));
            }

            string testWord = "右桥小脑角岩斜区肿瘤,聚维酮碘溶液,酞丁安软膏";
            //中文拼音(首字母大写,空格分开)
            string letters = PinYinUtil.CHSToPinyin(testWord, " ", true);

            sb.AppendLine(testWord);
            sb.AppendLine("中文拼音:" + letters);
            sb.AppendLine("首字母:" + PinYinUtil.GetFirstPY(testWord));

            MessageDxUtil.ShowTips(sb.ToString());
        }
예제 #5
0
 public override Task <UserDto> Update(UserDto input)
 {
     input.EName = PinYinUtil.GetAllPinYin(input.Name);
     input.SName = PinYinUtil.GetSimplePinYin(input.Name);
     _userManager.SetOrganizationUnit(input.Id, input.OrganIds);
     _userManager.SetRole(input.Id, input.RoleIds);
     _userManager.SetPermission(input.Id, input.PersIds);
     return(base.Update(input));
 }
예제 #6
0
 public override Task <UserDto> Create(CreateUserDto input)
 {
     input.EName    = PinYinUtil.GetAllPinYin(input.Name);
     input.SName    = PinYinUtil.GetSimplePinYin(input.Name);
     input.Password = GetEncrpyedAccessToken(input.Password);
     _userManager.SetOrganizationUnit(input.Id, input.OrganIds);
     _userManager.SetRole(input.Id, input.RoleIds);
     _userManager.SetPermission(input.Id, input.PersIds);
     return(base.Create(input));
 }
예제 #7
0
        /// <summary>
        /// 递归获取代码
        /// </summary>
        /// <param name="dictionary"></param>
        /// <param name="dictionaries"></param>
        /// <param name="generationCode"></param>
        private async Task GeneratingCodeRecursion(SystemDictionary dictionary, IList <SystemDictionary> dictionaries, string generationCode)
        {
            string emp = PinYinUtil.GetFirst(dictionary.Name);
            //获取下级
            var nextDic = dictionaries.Where(w => w.ParentId == dictionary.DictionaryId).ToList();

            if (nextDic.Any())
            {
                emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp;
            }
            foreach (var dic in nextDic)
            {
                dic.Code = emp + "_" + PinYinUtil.GetFirst(dic.Name);
                await UpdateAsync(dic);
                await GeneratingCodeRecursion(dic, dictionaries, emp);
            }
        }
예제 #8
0
        /// <summary>
        /// 递归获取代码
        /// </summary>
        /// <param name="organization"></param>
        /// <param name="dictionaries"></param>
        /// <param name="generationCode"></param>
        private async Task GeneratingCodeRecursion(SystemOrganization organization, IList <SystemOrganization> dictionaries, string generationCode)
        {
            string emp = PinYinUtil.GetFirst(organization.Name);
            //获取下级
            var nextOrg = dictionaries.Where(w => w.ParentId == organization.OrganizationId).ToList();

            if (nextOrg.Any())
            {
                emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp;
            }
            foreach (var org in nextOrg)
            {
                org.Code = emp + "_" + PinYinUtil.GetFirst(org.Name);
                await UpdateAsync(org);
                await GeneratingCodeRecursion(org, dictionaries, emp);
            }
        }
예제 #9
0
        /// <summary>
        /// 递归获取代码
        /// </summary>
        /// <param name="menu"></param>
        /// <param name="menus"></param>
        /// <param name="generationCode"></param>
        private async Task GeneratingCodeRecursion(SystemMenu menu, IList <SystemMenu> menus, string generationCode)
        {
            string emp = PinYinUtil.GetFirst(menu.Name);
            //获取下级
            var nextMenu = menus.Where(w => w.ParentId == menu.MenuId).ToList();

            if (nextMenu.Any())
            {
                emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp;
            }
            foreach (var me in nextMenu)
            {
                me.Code = emp + "_" + PinYinUtil.GetFirst(me.Name);
                await UpdateAsync(me);
                await GeneratingCodeRecursion(me, menus, emp);
            }
        }
예제 #10
0
        public override Task <UserDto> Update(UserDto input)
        {
            CheckUpdatePermission();
            input.EName = PinYinUtil.GetAllPinYin(input.Name);
            input.SName = PinYinUtil.GetSimplePinYin(input.Name);
            if (IsGranted(PermissionNames.Pages_Users_SetOrgan))
            {
                _userManager.SetOrganizationUnit(input.Id, input.OrganIds);
            }
            if (IsGranted(PermissionNames.Pages_Users_SetRole))
            {
                _userManager.SetRole(input.Id, input.RoleIds);
            }
            if (IsGranted(PermissionNames.Pages_Users_SetPers))
            {
                _userManager.SetPermission(input.Id, input.PersIds);
            }

            return(base.Update(input));
        }
예제 #11
0
 public override Task <UserDto> Create(CreateUserDto input)
 {
     CheckCreatePermission();
     input.EName    = PinYinUtil.GetAllPinYin(input.Name);
     input.SName    = PinYinUtil.GetSimplePinYin(input.Name);
     input.Password = GetEncrpyedAccessToken(input.Password);
     if (IsGranted(PermissionNames.Pages_Users_SetOrgan))
     {
         _userManager.SetOrganizationUnit(input.Id, input.OrganIds);
     }
     if (IsGranted(PermissionNames.Pages_Users_SetRole))
     {
         _userManager.SetRole(input.Id, input.RoleIds);
     }
     if (IsGranted(PermissionNames.Pages_Users_SetPers))
     {
         _userManager.SetPermission(input.Id, input.PersIds);
     }
     return(base.Create(input));
 }
예제 #12
0
 protected void tbxSUPNAME_TextChanged(object sender, EventArgs e)
 {
     tbxSTR2.Text = PinYinUtil.GetCodstring(tbxSUPNAME.Text);
 }
예제 #13
0
        public void GetFirstLetterTest(string chStr, string letter)
        {
            var actual = PinYinUtil.GetCodstring(chStr);

            Assert.Equal(letter, actual);
        }
예제 #14
0
        public void ConvertToPinYin(string chStr, string pinyinStr)
        {
            var actual = PinYinUtil.ConvertToPinYin(chStr);

            Assert.Equal(pinyinStr, actual);
        }