/*
     *  获取一级列表
     *  @Return 一级列表内容信息
     * **/
    public static List <MedicineListInfo> getLevelOneList()
    {
        XElement xml    = XElement.Load(xmlPath);
        var      LevelA = from e in xml.Elements("levelA") select e;
        List <MedicineListInfo> alist = new List <MedicineListInfo>();

        foreach (var element in LevelA)
        {
            MedicineListInfo obj = new MedicineListInfo();
            obj.LevelAName = element.Attribute("name").Value;
            obj.Type       = element.Attribute("level").Value;
            alist.Add(obj);
        }
        return(alist);
    }
    /*
     *
     *  获取二级列表
     *  @Param levelOneText: 选中的一级列表的item内容
     *  @Return 二级列表内容信息
     * **/
    public static List <MedicineListInfo> getLevelTwoPageList(string levelOneText)
    {
        XElement xml    = XElement.Load(xmlPath);
        var      LevelA = from e in xml.Elements("levelA") where (e.Attribute("name").Value == levelOneText) select e;
        var      LevelB = from e in LevelA.First().Elements("levelB") select e;
        List <MedicineListInfo> blist = new List <MedicineListInfo>();

        foreach (var element in LevelB)
        {
            MedicineListInfo obj = new MedicineListInfo();
            obj.LevelAName = levelOneText;
            obj.LevelBName = element.Attribute("name").Value;
            obj.Type       = element.Attribute("level").Value;
            blist.Add(obj);
        }
        return(blist);
    }
    /*
     * 全局搜索
     * @Param text 关键字
     * @Return 所有相关结果集合
     * **/
    public static List <MedicineListInfo> search(string text)
    {
        XElement xml = XElement.Load(xmlPath);
        List <MedicineListInfo> fullSearchList = new List <MedicineListInfo>();
        var LevelAS = from e in xml.Elements("levelA") select e;

        foreach (var levelA in LevelAS)   //level one
        {
            if (levelA.Attribute("name").Value.Contains(text))
            {
                MedicineListInfo obj = new MedicineListInfo();
                obj.Type       = levelA.Attribute("level").Value;
                obj.LevelAName = levelA.Attribute("name").Value;
                fullSearchList.Add(obj);
            }
            var LevelBS = from e in levelA.Elements("levelB") select e;
            foreach (var levelB in LevelBS)  // level two
            {
                if (levelB.Attribute("name").Value.Contains(text))
                {
                    MedicineListInfo obj = new MedicineListInfo();
                    obj.Type       = levelB.Attribute("level").Value;
                    obj.LevelAName = levelA.Attribute("name").Value;
                    obj.LevelBName = levelB.Attribute("name").Value;
                    fullSearchList.Add(obj);
                }
                var medicines = from e in levelB.Elements("medicine") select e;
                foreach (var element in medicines)   //medicine
                {
                    if (element.Value.Contains(text))
                    {
                        MedicineListInfo obj = new MedicineListInfo();
                        obj.Type       = element.Attribute("level").Value;
                        obj.LevelAName = levelA.Attribute("name").Value;
                        obj.LevelBName = levelB.Attribute("name").Value;
                        obj.Medicine   = element.Value;
                        fullSearchList.Add(obj);
                    }
                }
            }
        }
        return(fullSearchList);
    }