| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using WPfPointInfo.InfoProperty;
- namespace SAGA.MBI.ModeInfoEdit
- {
- public static class EquipmentCombineUtil
- {
- public static List<ItemProperty> GetGroupProperties(List<ItemProperty> items)
- {
- List<ItemProperty> resultItems=new List<ItemProperty>();
- var validItems = items.Where(i => i.Definition.CurrentIndex < i.Definition.Level).ToList();
- var groups = validItems.GroupBy(item =>
- {
- var key = item.Definition.Categories[item.Definition.CurrentIndex];
- item.Definition.MoveNext();
- return key;
- }).ToList();
- foreach (var gp in groups)
- {
- ItemProperty categoryItem = new ItemProperty() { Definition = PropertyDefinition.CreateCagetoryDefinition() };
- categoryItem.Definition.EditId = "Category_2";
- categoryItem.Value = gp.Key;
- List<ItemProperty> nextItems = new List<ItemProperty>();
- foreach (var item in gp.ToList())
- {
- if (item.Definition.CurrentIndex == item.Definition.Level)
- {
- categoryItem.Children.Add(item);
- }
- else if (item.Definition.CurrentIndex < item.Definition.Level)
- {
- nextItems.Add(item);
- }
- }
- if (nextItems.Any())
- {
- categoryItem.Children.AddRange(GetGroupProperties(nextItems));
- }
- resultItems.Add(categoryItem);
- }
- return resultItems;
- }
- public static List<ItemProperty> GetOriginProperties(string id1, string id2)
- {
- var combineItems= EquipmentCombineItem.GetCombineItem(id1, id2);
- return combineItems.Select(c => c.ConvertItemProperty()).ToList();
- }
- /// <summary>
- /// 获取分组后的属性信息
- /// </summary>
- /// <param name="id1"></param>
- /// <param name="id2"></param>
- /// <returns></returns>
- public static List<ItemProperty> GetProperties(string id1, string id2)
- {
- var items = GetOriginProperties(id1, id2);
- return GetGroupProperties(items);
- }
- }
- }
|