using System; using System.Collections.Generic; using System.Linq; using System.Text; using Com.Piwigo.Lib.DTO; namespace Com.Piwigo.Wpf.DTO.Helper { public static class PwgCategoryListWPFHelper { public static void AddPwgCategoryToList( PwgCategory aPwgCategory, ref PwgCategoryListWPF aPwgCategoryListWPF) { if (aPwgCategory != null) { if (aPwgCategoryListWPF == null) { aPwgCategoryListWPF = new PwgCategoryListWPF(); } PwgCategoryWPF pwgCat = new PwgCategoryWPF(); PwgCategoryWPFHelper.ConvertPwgCategoryToPwgCategoryWPF(aPwgCategory, ref pwgCat); aPwgCategoryListWPF.Add(pwgCat); } } public static void ConvertPwgCategoryListToPwgCategoryListWPF(List aPwgCategoryList, ref PwgCategoryListWPF aPwgCategoryListWPF) { if (aPwgCategoryList != null) { if (aPwgCategoryListWPF == null) { aPwgCategoryListWPF = new PwgCategoryListWPF(); } foreach (PwgCategory pwgCat in aPwgCategoryList) { AddPwgCategoryToList(pwgCat, ref aPwgCategoryListWPF); } } } public static void ConvertPwgCategoryListToPwgRootCategoryWPF(List aPwgCategoryList, ref PwgRootCategoryWPF aPwgRootCategory) { if (aPwgCategoryList != null) { if ((aPwgRootCategory == null) || (aPwgRootCategory.Childrens == null)) { throw new SystemException("The PwgCategoryListWPFHelper.InitRootCategory must be called before calling this."); } if (aPwgRootCategory.Childrens == null) { aPwgRootCategory.Childrens = new PwgCategoryListWPF(); } PwgCategoryListWPF aPwgCategoryListWPF = aPwgRootCategory.Childrens; foreach (PwgCategory pwgCat in aPwgCategoryList) { AddPwgCategoryToList(pwgCat, ref aPwgCategoryListWPF); } } } public static void InitRootCategory () { if (PwgModelManager.Instance.CategoryList == null) { throw new SystemException("The PwgModelManager.Instance.CategoryList must be initialized from presentation tread before calling this."); } if (PwgModelManager.Instance.CategoryList.Count != 1) { PwgModelManager.Instance.CategoryList.Clear(); PwgRootCategoryWPF aRootCategory = new PwgRootCategoryWPF(); aRootCategory.Name = "Categories"; aRootCategory.Childrens = new PwgCategoryListWPF(); PwgModelManager.Instance.CategoryList.Add(aRootCategory); PwgModelManager.Instance.RootCategoryList = aRootCategory; } if (PwgModelManager.Instance.RootCategoryList == null) { PwgModelManager.Instance.RootCategoryList = PwgModelManager.Instance.CategoryList.ElementAtOrDefault(0); } } } }