コード例 #1
0
ファイル: DicService.cs プロジェクト: radtek/nanhang
        public string SubmitItem(DicItem itemsDetailEntity, string keyValue)
        {
            var list       = new List <DicItem>();
            var expression = ExtLinq.True <DicItem>();

            if (!string.IsNullOrEmpty(keyValue))
            {
                expression = expression.And(t => t.ItemId == itemsDetailEntity.ItemId);
                expression = expression.And(t => t.Code == itemsDetailEntity.Code);
                expression = expression.And(t => t.Id != keyValue);
                list       = Read(expression).ToList();
                if (list.Count > 0)
                {
                    return("重复的编码");
                }
                var data = Get <Dic>(keyValue);
                itemsDetailEntity.MapTo(data);
                data.Id = (keyValue);
                SaveChanges();
            }
            else
            {
                expression = expression.And(t => t.ItemId == itemsDetailEntity.ItemId);
                expression = expression.And(t => t.Code == itemsDetailEntity.Code);
                list       = Read(expression).ToList();
                if (list.Count > 0)
                {
                    return("重复的编码");
                }
                itemsDetailEntity.Id = Guid.NewGuid().ToString("N").ToUpper();
                AddAndSave(itemsDetailEntity);
            }

            return("");
        }
コード例 #2
0
ファイル: EnumService.cs プロジェクト: Luyingjin/Qy
        public static IList <DicItem> GetEnumDataSource(string enumKey, string category = "", string subCategory = "")
        {
            DataTable       dt   = GetEnumTable(enumKey, category, subCategory);
            IList <DicItem> list = new List <DicItem>();

            foreach (DataRow row in dt.Rows)
            {
                var dicItem = new DicItem
                {
                    Text  = row["text"].ToString(),
                    Value = row["value"].ToString()
                };
                if (dt.Columns.Contains("category"))
                {
                    dicItem.Category = row["category"].ToString();
                }
                if (dt.Columns.Contains("subCategory"))
                {
                    dicItem.SubCategory = row["subCategory"].ToString();
                }

                list.Add(dicItem);
            }
            return(list);
        }
コード例 #3
0
        public DicMeta Create()
        {
            var dicType      = DicType.AutoCreateFromAttribute(x => Dic_DicTypeCode.OrgType, typeof(Dic_DicTypeCode));
            var dicMeta      = DicMeta.Create(dicType);
            var orgTypeItems = DicItem.AutoCreateAllFromAttribute(typeof(Dic_OrgTypeCode), Dic_DicTypeCode.OrgType);

            dicMeta.DicItems = orgTypeItems.Cast <IDicItem>().ToList();
            return(dicMeta);
        }
コード例 #4
0
        public DicItem ToDicItem()
        {
            DicItem dicItem = new DicItem();

            dicItem.Id          = Id;
            dicItem.Key         = Key;
            dicItem.IsForDesign = IsForDesign;
            dicItem.Tr          = Tr;
            dicItem.En          = En;

            return(dicItem);
        }
コード例 #5
0
ファイル: Stc.cs プロジェクト: ismsrky/ElmasiumBackend
        //protected string GetDicValue(string key, params string[] param)
        //{
        //    Enums.Languages language = Enums.Languages.Turkce;
        //    if (Session != null)
        //    {
        //        RealPersonBo realPersonBo = Session.RealPerson;
        //        if (realPersonBo != null)
        //            language = realPersonBo.LanguageId;
        //    }

        //    return GetDicValue(key, language, param);
        //}
        public static string GetbyLang(DicItem dicItem, Enums.Languages language)
        {
            switch (language)
            {
            case Enums.Languages.xTurkish:
                return(dicItem.Tr);

            case Enums.Languages.xEnglish:
                return(dicItem.En);

            default:
                return(dicItem.Tr);
            }
        }
コード例 #6
0
ファイル: Stc.cs プロジェクト: ismsrky/ElmasiumBackend
        public static string GetDicValue(string key, Enums.Languages language, params string[] param)
        {
            if (Stc.DicItemList == null || Stc.DicItemList.Count == 0)
            {
                return(key);
            }

            DicItem item = Stc.DicItemList.Where(x => x.Key == key).FirstOrDefault();

            if (item == null)
            {
                return(key);
            }

            return(GetbyLang(item, language));
        }
コード例 #7
0
ファイル: Stc.cs プロジェクト: ismsrky/ElmasiumBackend
        public static Guid GetDicChangeSetId(Enums.Languages langId)
        {
            Guid result;

            DicItem dicItem = DicItemList.Where(x => x.Id == -1).First();

            switch (langId)
            {
            case Enums.Languages.xTurkish:
                result = dicItem.Tr.ToGuid();
                break;

            case Enums.Languages.xEnglish:
                result = dicItem.En.ToGuid();
                break;

            default:
                result = dicItem.Tr.ToGuid();
                break;
            }

            return(result);
        }
コード例 #8
0
    static void ReadLangFile(string filePath, List <DicItem> Lists)
    {
        if (Lists == null)
        {
            Lists = new List <DicItem>();
        }
        var           file = File.Open(filePath, FileMode.Open);
        List <string> txt  = new List <string>();

        LoadTextData(file, txt);
        file.Close();
        file.Dispose();
        string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath) + "_";

        foreach (var item in txt)
        {
            string[] resultString = Regex.Split(item, splitStr, RegexOptions.IgnoreCase);
            DicItem  d            = new DicItem();
            d.Key         = resultString[0].Replace("\\r\\n", Environment.NewLine).Trim('\"');
            d.TargetValue = resultString[1].Replace("\\r\\n", Environment.NewLine).Trim('\"');
            d.NamePrex    = fileName;
            Lists.Add(d);
        }
    }
コード例 #9
0
        public DicItem ParseDic(string raw)
        {
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(raw);

            HtmlNodeCollection links = doc.DocumentNode.SelectNodes("//a[@href]");//the parameter is use xpath see: https://www.w3schools.com/xml/xml_xpath.asp

            DicItem di          = new DicItem();
            var     fromwebnode = doc.DocumentNode.SelectSingleNode("//img[contains(@src,'/btn_collect.gif')]") ?? doc.DocumentNode.SelectSingleNode("//img[contains(@src,'/bg_opendict.gif')]");

            if (fromwebnode != null)
            {
                //웹수집은 건너뛰자
                return(null);
            }

            var yominode = doc.DocumentNode.SelectSingleNode("//span[@class=\"maintitle\"]");

            if (yominode != null)
            {
                di.Yomi = WebUtility.HtmlDecode(yominode.InnerText);
                if (Regex.Match(di.Yomi, @"[^ぁ-んァ-ンー*]").Success)
                {
                    return(null);
                }
            }

            var mainnode = doc.DocumentNode.SelectSingleNode("//h3/em");

            if (mainnode != null)
            {
                var words = WebUtility.HtmlDecode(mainnode.InnerText).Replace("[", "").Replace("]", "").Split(new string[] { "·" }, StringSplitOptions.RemoveEmptyEntries).ToList();
                int i     = 0;
                while (i < words.Count)
                {
                    if (words[i] == di.Yomi)
                    {
                        words.Remove(di.Yomi);
                    }
                    else
                    {
                        if (di.Word != null)
                        {
                            di.Word += ", ";
                        }
                        di.Word += words[i];
                        i++;
                    }
                }
            }


            var summarynode = doc.DocumentNode.SelectSingleNode("//div[@class=\"spot_area\"]/p");

            if (summarynode != null)
            {
                di.Summary = WebUtility.HtmlDecode(summarynode.InnerText);
            }

            var typenode = doc.DocumentNode.SelectSingleNode("//div[@class=\"tc-panels\"]//h5");

            if (typenode != null)
            {
                di.Type = WebUtility.HtmlDecode(typenode.InnerText);
            }

            var meaning = doc.DocumentNode.SelectNodes("//li[@class=\"inner_lst\"]/span");

            if (meaning != null)
            {
                for (int i = 0; i < meaning.Count; i++)
                {
                    di.Content += string.Format("{0}. {1}", i + 1, WebUtility.HtmlDecode(meaning[i].InnerText)) + "\n";
                }
            }

            var starnode = doc.DocumentNode.SelectSingleNode("//div[@class=\"spot_area\"]//img[@class=\"star\"]");

            if (starnode != null)
            {
                string cname = starnode.Attributes["src"].Value;
                Match  m     = Regex.Match(cname, @"(?<star>\d).gif$");
                if (m.Success)
                {
                    di.Stars = Convert.ToInt32(m.Groups["star"].Value);
                }
                else
                {
                    di.Stars = 1;
                }
            }

            var jlptnode = doc.DocumentNode.SelectSingleNode("//div[@class=\"spot_area\"]//a[contains(@class,'jlpt')]/span");

            if (jlptnode != null)
            {
                string cname = jlptnode.InnerText;
                Match  m     = Regex.Match(cname, @"\d");
                if (m.Success)
                {
                    di.JLPT = m.Value;
                }
            }

            return(di);
        }
コード例 #10
0
        public static Dictionary <string, DicItem[]> GetMany(string keys)
        {
            var dics = DicItem.GetDics(keys.Split(","));

            return(dics);
        }
コード例 #11
0
        public static DicItem[] Get(string key)
        {
            var dic = DicItem.GetDics(key).ElementAt(0).Value;

            return(dic);
        }
コード例 #12
0
ファイル: ProductService.cs プロジェクト: tianzhifeng/EPC
        public static QrCodeDTO GetProductDetail(string id, decimal versionnumber)
        {
            var formDic    = new List <DicItem>();
            var subFormDic = new List <DicItem>();
            var result     = new QrCodeDTO {
                AuditStep = ""
            };

            var SqlHelper = SQLHelper.CreateSqlHelper("Project");
            var sql       = "select * from S_E_ProductVersion with(nolock) where ProductID='" + id + "' and Version='" + versionnumber + "'";
            var version   = SqlHelper.ExecuteDataTable(sql).AsEnumerable().FirstOrDefault();

            if (version == null)
            {
                throw new Exception("没有找到ID为【" + id + "】,版本为【" + versionnumber.ToString() + "】的成品图纸");
            }

            sql = "select * from S_I_ProjectInfo where ID='" + version["ProjectInfoID"].ToString() + "'";
            var project = SqlHelper.ExecuteDataTable(sql).AsEnumerable().FirstOrDefault();

            if (project == null)
            {
                throw new Exception("没有找到指定的成品图纸");
            }

            sql = "select * from S_W_WBS with(nolock) where ProjectInfoID='" + version["ProjectInfoID"].ToString() + "'";
            var wbsList = SqlHelper.ExecuteDataTable(sql).AsEnumerable().Where(a => version["WBSFullID"].ToString().StartsWith(a["FullID"].ToString()));

            var FormDics = new List <Dictionary <string, string> >();

            try
            {
                string strDLLPath = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
                strDLLPath = strDLLPath.Substring(8);
                string filePath = Path.GetDirectoryName(strDLLPath) + "\\QrCodeItems.json";
                if (System.IO.File.Exists(filePath))
                {
                    using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
                    {
                        byte[] mybyte     = Encoding.UTF8.GetBytes(sr.ReadToEnd());
                        var    jsonString = Encoding.UTF8.GetString(mybyte);
                        var    json       = JsonHelper.ToObject(jsonString);
                        FormDics = JsonHelper.ToObject <List <Dictionary <string, string> > >(json["FormDic_Product"].ToString());
                    }
                }
            }
            catch (Exception)
            {
                throw new Exception("Json配置文件出错");
            }

            result.ID       = version["ID"].ToString();
            result.Title    = version["Name"].ToString();
            result.SubTitle = version["Code"].ToString();
            //获取子项、专业等WBS节点
            var wbsListDic = new Dictionary <string, DataRow>();
            var wbsTypes   = Enum.GetNames(typeof(QrCodeView.Models.WBSType));

            foreach (var wbsType in wbsTypes)
            {
                var dataRow = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == wbsType);
                if (dataRow != null)
                {
                    wbsListDic.Add(wbsType, dataRow);
                }
            }
            var subproject = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == WBSType.SubProject.ToString());
            var area       = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == WBSType.Area.ToString());
            var device     = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == WBSType.Device.ToString());
            var major      = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == WBSType.Major.ToString());
            var work       = wbsList.FirstOrDefault(a => a["WBSType"].ToString() == WBSType.Work.ToString());
            //获取成果的图框信息
            var frameDic     = new Dictionary <string, string>();
            var frameDicList = new List <AttburiteColInfo>();
            var isOld        = true;

            if (version.Table.Columns.Contains("FrameAllAttInfo"))
            {
                if (!string.IsNullOrEmpty(version["FrameAllAttInfo"].ToString()))
                {
                    if (version["FrameAllAttInfo"].ToString().StartsWith("{"))
                    {
                        isOld    = true;
                        frameDic = JsonHelper.ToObject <Dictionary <string, string> >(version["FrameAllAttInfo"].ToString());
                    }
                    else
                    {
                        isOld        = false;
                        frameDicList = JsonHelper.ToObject <List <AttburiteColInfo> >(version["FrameAllAttInfo"].ToString());
                    }
                }
            }

            foreach (var f in FormDics)
            {
                var dic = new DicItem();
                dic.FieldName = f.GetValue("FieldName");

                var valueFrom  = f.GetValue("ValueFrom");
                var fieldCode  = f.GetValue("FieldCode");
                var frameItems = f.GetValue("FrameItems");

                if (valueFrom.Equals(ValueFrom.FieldValue.ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    dic.FieldValue = f["FieldValue"];
                }
                else if (valueFrom.Equals(ValueFrom.FrameInfo.ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    dic.FieldValue = f["FrameItems"];
                    //修订算法,支持找不到设为空 2019-3-31
                    if (dic.FieldValue.IndexOf('}') >= 0)
                    {
                        string[] _keyDics1 = dic.FieldValue.Split('}');
                        foreach (var key1 in _keyDics1)
                        {
                            string[] _keyDics2 = key1.Split('{');
                            if (_keyDics2.Length > -1)
                            {
                                string key2 = _keyDics2.Last();
                                if (isOld)
                                {
                                    dic.FieldValue = dic.FieldValue.Replace("{" + key2 + "}", frameDic.GetValue(key2));
                                }
                                else
                                {
                                    var frameValue = frameDicList.FirstOrDefault(a => a.Name == key2);
                                    dic.FieldValue = dic.FieldValue.Replace("{" + key2 + "}", frameValue == null ? "" : frameValue.Value);
                                }
                            }
                        }
                    }
                }
                else if (valueFrom.IndexOf('.') >= 0)
                {
                    var adapters = valueFrom.Split('.');
                    if (adapters.Length > 0)
                    {
                        var tableName  = adapters[0];
                        var columnName = adapters.Last();
                        if (tableName.Equals(TableName.S_I_ProjectInfo.ToString(), StringComparison.OrdinalIgnoreCase))
                        {
                            if (project.Table.Columns.Contains(columnName))
                            {
                                dic.FieldValue = project[columnName].ToString();
                            }
                        }
                        else if (tableName.Equals(TableName.S_E_ProductVersion.ToString(), StringComparison.OrdinalIgnoreCase))
                        {
                            if (version.Table.Columns.Contains(columnName))
                            {
                                dic.FieldValue = version[columnName].ToString();
                            }
                        }
                        else if (adapters.Length > 1)
                        {
                            var type = adapters[1];
                            var wbs  = wbsListDic.GetValue(type);
                            if (wbs != null && wbs.Table.Columns.Contains(columnName))
                            {
                                dic.FieldValue = wbs[columnName].ToString();
                            }
                        }
                    }
                }
                else
                {
                    switch (f["FieldCode"])
                    {
                    case "Customer":
                        if (project.Table.Columns.Contains("CustomerName"))
                        {
                            dic.FieldValue = project["CustomerName"].ToString();
                        }
                        break;

                    case "Name":
                        if (version.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = version["Name"].ToString();
                        }
                        break;

                    case "Code":
                        if (version.Table.Columns.Contains("Code"))
                        {
                            dic.FieldValue = version["Code"].ToString();
                        }
                        break;

                    case "ProjectInfoName":
                        if (project.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = project["Name"].ToString();
                        }
                        break;

                    case "ProjectInfoCode":
                        if (project.Table.Columns.Contains("Code"))
                        {
                            dic.FieldValue = project["Code"].ToString();
                        }
                        break;

                    case "SubProjectName":
                        if (subproject != null && subproject.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = subproject["Name"].ToString();
                        }
                        break;

                    case "AreaName":
                        if (area != null && area.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = area["Name"].ToString();
                        }
                        break;

                    case "DeviceName":
                        if (device != null && device.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = device["Name"].ToString();
                        }
                        break;

                    case "MajorName":
                        if (major != null && major.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = major["Name"].ToString();
                        }
                        break;

                    case "WorkName":
                        if (work != null && work.Table.Columns.Contains("Name"))
                        {
                            dic.FieldValue = work["Name"].ToString();
                        }
                        break;

                    case "ProjectChargerName":
                        if (project.Table.Columns.Contains("ChargeUserName"))
                        {
                            dic.FieldValue = project["ChargeUserName"].ToString();
                        }
                        break;

                    case "MajorChargerName":
                        if (major != null && major.Table.Columns.Contains("ChargeUserName"))
                        {
                            dic.FieldValue = major["ChargeUserName"].ToString();
                        }
                        break;

                    case "ApproverName":
                        if (version.Table.Columns.Contains("ApproverName"))
                        {
                            dic.FieldValue = version["ApproverName"].ToString();
                        }
                        break;

                    case "AuditorName":
                        if (version.Table.Columns.Contains("AuditorName"))
                        {
                            dic.FieldValue = version["AuditorName"].ToString();
                        }
                        break;

                    case "CollactorName":
                        if (version.Table.Columns.Contains("CollactorName"))
                        {
                            dic.FieldValue = version["CollactorName"].ToString();
                        }
                        break;

                    case "DesignerName":
                        if (version.Table.Columns.Contains("DesignerName"))
                        {
                            dic.FieldValue = version["DesignerName"].ToString();
                        }
                        break;

                    default:
                        break;
                    }
                }

                dic.IconCls = f.GetValue("IconCls");
                formDic.Add(dic);
            }
            result.FormDic = formDic;

            var subdic1 = new DicItem {
                FieldName = "Version", FieldValue = "版本:" + versionnumber
            };

            subFormDic.Add(subdic1);
            result.SubFormDic = subFormDic;
            return(result);
        }
コード例 #13
0
        /// <summary>
        /// Look up word from online dictionary .
        /// </summary>
        /// <param name="word">Word parameter .</param>
        /// <param name="isOOV">If the word is OOV.</param>
        /// <returns>Return a LexicalItem for each word .</returns>
        public LexicalItem Lookup(string word, ref bool isOOV)
        {
            _item = new LexicalItem(_language);
            _word = word.ToLower();
            _item.Grapheme = _word;
            bool flag = false;
            Dictionary<string, Collection<string>> prons = new Dictionary<string, Collection<string>>();
            isOOV = false;
            foreach (DictionaryModel dic in _dics)
            {
                Collection<string> pronunciations = dic.Lookup(word);
                isOOV = dic.IsOOV;
                if (!dic.IsOOV)
                {
                    if (string.IsNullOrEmpty(dic.Word))
                    {
                        throw new InvalidDataException(Helper.NeutralFormat(
                            "Error happened when processing word \"{0}\": The word parsed from web is empty", word));
                    }
                    else if (dic.Pronunciations.Count == 0)
                    {
                        throw new InvalidDataException(Helper.NeutralFormat(
                            "Error happened when processing word \"{0}\": The pronunciation parsed from web is empty", word));
                    }
                    else
                    {
                        DicItem item = new DicItem();
                        item.Word = dic.Word;
                        item.POS = dic.POS;
                        item.Pronunciations = dic.Pronunciations;
                        _dicItems.Add(item);
                        if (word.Equals(dic.Word, StringComparison.InvariantCultureIgnoreCase))
                        {
                            foreach (string pron in dic.Pronunciations)
                            {
                                if (!prons.Keys.Contains(pron))
                                {
                                    Collection<string> pos = new Collection<string>();
                                    pos.Add(dic.POS);
                                    prons.Add(pron, pos);
                                }
                                else
                                {
                                    if (!prons[pron].Contains(dic.POS))
                                    {
                                        prons[pron].Add(dic.POS);
                                    }
                                }
                            }
                        }
                        else
                        {
                            flag = true;
                        }
                    }
                }

                dic.Reset();
            }

            GenerateLexicalItem(prons);
            _isMorphology = flag;
            return Item;
        }
コード例 #14
0
        public JsonResult Add(DicItem model)
        {
            var result = bll.Add(model);

            return(Json(result));
        }
コード例 #15
0
        //protected string GetDicValue(string key, params string[] param)
        //{
        //    Enums.Languages language = Enums.Languages.Turkce;
        //    if (Session != null)
        //    {
        //        RealPersonBo realPersonBo = Session.RealPerson;
        //        if (realPersonBo != null)
        //            language = realPersonBo.LanguageId;
        //    }

        //    return GetDicValue(key, language, param);
        //}
        protected string GetbyLang(DicItem dicItem, Enums.Languages language)
        {
            return(Stc.GetbyLang(dicItem, language));
        }
コード例 #16
0
        //Adds dictonary items designating them as the root, category or just a word
        public DictionaryItem(bool isRoot, bool isCategory, string categoryName = "", params DictionaryItem [] dictionaryItems)
        {
            this._isRoot     = isRoot;
            this._isCategory = isCategory;


            if (isCategory == true && categoryName != string.Empty)
            {
                this.RootName    = ActiveDictionary.Dictionary.Root.RootName;
                _dictionaryItems = new List <DictionaryItem>();

                if (DictionaryTree.HasCategory(categoryName, ActiveDictionary.Dictionary.Root) == false)
                {
                    _categoryName   = categoryName;
                    _wordName       = null;
                    _wordDefinition = null;

                    foreach (DictionaryItem DicItem in dictionaryItems)
                    {
                        if (DicItem.IsCategory == false && DicItem.IsRoot == false)
                        {
                            if (!DictionaryTree.HasWord(DicItem.WordName, ActiveDictionary.Dictionary.Root))
                            {
                                _dictionaryItems.Add(DicItem);
                            }
                            else
                            {
                                continue;
                            }
                        }
                    }
                }
                else
                {
                    //If the category already exists just add the word
                    foreach (DictionaryItem DicItem in ActiveDictionary.Dictionary.Root.DictionaryItems)
                    {
                        if (!DictionaryTree.HasWord(DicItem.WordName, ActiveDictionary.Dictionary.Root))
                        {
                            if (DicItem.CategoryName == categoryName)
                            {
                                DicItem.AddDictionaryItem(dictionaryItems[0]);
                                break;
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                    return;
                }
            }
            else
            if (isCategory == false && isRoot == false && categoryName != "")
            {
                foreach (DictionaryItem DicItem in ActiveDictionary.Dictionary.Root.DictionaryItems)
                {
                    if (!DictionaryTree.HasWord(DicItem.WordName, ActiveDictionary.Dictionary.Root))
                    {
                        if (DicItem.CategoryName == categoryName)
                        {
                            DicItem.AddDictionaryItem(dictionaryItems[0]);
                            break;
                        }
                    }
                    else
                    {
                        continue;
                    }
                }
            }
        }
コード例 #17
0
        public JsonResult Edit(DicItem model)
        {
            var result = bll.Edit(model);

            return(Json(result));
        }