Ejemplo n.º 1
0
        /// <summary>
        /// 获取模型添加列表
        /// </summary>
        /// <param name="modelList"></param>
        /// <param name="typeList"></param>
        /// <returns></returns>
        public ObjectAddList GetObjectAddList(List <DevModel> modelList, List <DevType> typeList)
        {
            //List<t_SetModel> modelList = db.t_SetModels.ToList();
            //List<t_Template_TypeProperty> typeList = db.t_TypeProperties.ToList();
            var ModelTypeList = from model in modelList
                                join type in typeList on(model.ModelId + "_前面板_0.png") equals type.FrontElevation into TempTable
                                from c in TempTable.DefaultIfEmpty()
                                    where model.Items != "" && model.Class != ""
                                orderby model.Items, model.Class
                select new ModelTypeItem
            {
                Item  = model.Items,
                Class = model.Class,
                Name  = model.Name,
                nType = c == null ? "0" : c.TypeCode.ToString()
            };
            ObjectAddList tempList = new ObjectAddList();



            modelItemDic.Clear();
            modelClassDic.Clear();
            //List<ModelTypeItem> itemListTemp;
            foreach (var item in ModelTypeList)
            {
                if (!modelItemDic.ContainsKey(item.Item))
                {
                    List <ModelTypeItem> itemListTemp = new List <ModelTypeItem>();
                    itemListTemp.Add(item);
                    modelItemDic.Add(item.Item, itemListTemp);
                }
                else
                {
                    List <ModelTypeItem> itemListTemp;
                    modelItemDic.TryGetValue(item.Item, out itemListTemp);
                    if (itemListTemp != null)
                    {
                        itemListTemp.Add(item);
                    }
                }
                if (!modelClassDic.ContainsKey(item.Class))
                {
                    List <ModelTypeItem> itemListTemp = new List <ModelTypeItem>();
                    itemListTemp.Add(item);
                    modelClassDic.Add(item.Class, itemListTemp);
                }
                else
                {
                    List <ModelTypeItem> itemListTemp;
                    modelClassDic.TryGetValue(item.Class, out itemListTemp);
                    if (itemListTemp != null)
                    {
                        itemListTemp.Add(item);
                    }
                }
            }
            foreach (KeyValuePair <string, List <ModelTypeItem> > Items in modelItemDic)
            {
                ObjectAddList_Type t = new ObjectAddList_Type();
                t.typeName      = Items.Key;
                t.childTypeList = new List <ObjectAddList_ChildType>();
                foreach (var item in Items.Value)
                {
                    ObjectAddList_ChildType t2 = new ObjectAddList_ChildType();
                    t2.childTypeName = item.Class;
                    List <ModelTypeItem> ClassTemp;
                    modelClassDic.TryGetValue(item.Class, out ClassTemp);
                    if (ClassTemp != null)
                    {
                        t2.modelList = new List <ObjectAddList_Model>();
                        foreach (var model in ClassTemp)
                        {
                            ObjectAddList_Model modelT = new ObjectAddList_Model();
                            modelT.modelName = model.Name;
                            modelT.typeCode  = model.nType;
                            t2.modelList.Add(modelT);
                        }
                        modelClassDic.Remove(item.Class);
                        t.childTypeList.Add(t2);
                    }
                }
                tempList.Add(t);
            }
            return(tempList);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取模型列表
        /// </summary>
        /// <param name="modelList"></param>
        /// <param name="typeList"></param>
        /// <returns></returns>
        public ObjectAddList GetObjectAddListEx(List <DevModel> modelList, List <DevType> typeList)
        {
            var ModelTypeList = from model in modelList
                                join type in typeList on(model.ModelId + "_前面板_0.png") equals type.FrontElevation into TempTable
                                from c in TempTable.DefaultIfEmpty()
                                    where !string.IsNullOrEmpty(model.Items) && !string.IsNullOrEmpty(model.Class)
                                orderby model.Items, model.Class
                select new ModelTypeItem
            {
                Item  = model.Items,
                Class = model.Class,
                Name  = model.Name,
                nType = c == null ? "0" : c.TypeCode.ToString()
            };

            modelItemDic.Clear();
            modelClassDic.Clear();
            foreach (var item in ModelTypeList)
            {
                InitDic(modelItemDic, item.Item, item);
                InitDic(modelClassDic, item.Class, item);
            }
            ObjectAddList tempList = new ObjectAddList();

            foreach (KeyValuePair <string, List <ModelTypeItem> > Items in modelItemDic)
            {
                ObjectAddList_Type t = new ObjectAddList_Type();
                t.typeName      = Items.Key;
                t.childTypeList = new List <ObjectAddList_ChildType>();
                foreach (var item in Items.Value)
                {
                    ObjectAddList_ChildType t2 = new ObjectAddList_ChildType();
                    t2.childTypeName = item.Class;
                    List <ModelTypeItem> ClassTemp;
                    modelClassDic.TryGetValue(item.Class, out ClassTemp);
                    if (ClassTemp != null && ClassTemp.Count != 0)
                    {
                        t2.modelList = new List <ObjectAddList_Model>();
                        List <ModelTypeItem> modelListTemp = new List <ModelTypeItem>();
                        foreach (var model in ClassTemp)
                        {
                            if (model.Item != t.typeName)
                            {
                                continue;                            //同一个大类的模型,可能不属于同一个大项
                            }
                            modelListTemp.Add(model);
                        }
                        foreach (var model in modelListTemp)
                        {
                            ObjectAddList_Model modelT = new ObjectAddList_Model();
                            modelT.modelName = model.Name;
                            modelT.typeCode  = model.nType;
                            t2.modelList.Add(modelT);
                            ClassTemp.Remove(model);
                        }
                        t.childTypeList.Add(t2);
                    }
                }
                tempList.Add(t);
            }
            tempList = tempList.Count == 0 ? null : tempList;
            return(tempList);
        }