using Azylee.Core.AppUtils.AppConfigUtils.AppConfigInterfaces;
using Azylee.Core.DataUtils.CollectionUtils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Azylee.Core.AppUtils.AppConfigUtils.AppConfigModels
{
///
/// 配置块模型
///
///
public class AppConfigRegionModel where T : IAppConfigItemModel
{
public List Items { get; set; }
public AppConfigRegionModel()
{
this.Items = new List();
}
public bool HasItems()
{
return Ls.Ok(Items);
}
public void AddItem(T item, bool overwrite = false)
{
bool repeat = false;
for (int i = 0; i < Items.Count; i++)
{
if (Items[i].GetUniqueName() == item.GetUniqueName())
{
if (overwrite) { Items[i] = item; }
repeat = true;
}
}
if (!repeat) { this.Items.Add(item); }
}
public void RemoveItem(string name)
{
for (int i = 0; i < Items.Count; i++)
{
if (Items[i].GetUniqueName() == name)
{
Items.RemoveAt(i);
break;
}
}
}
public T GetItem(string name)
{
for (int i = 0; i < Items.Count; i++)
{
if (Items[i].GetUniqueName() == name)
{
return Items[i];
}
}
return default(T);
}
public void OrderByNumber()
{
Items = Items.OrderBy(x => x.GetOrderNumber()).ThenBy(x => x.GetUniqueName()).ToList();
}
public List GetNames()
{
List rs = new List();
foreach (var item in Items)
{
rs.Add(item.GetUniqueName());
}
return rs;
}
}
}