/// <summary> /// Find CompanyUnitHierarchy Object using CompanyUnitRef and Filters DataTableUseTypeCategory for /// CompanyUnitObject /// </summary> /// <param name="id">CompanyUnitRef - Primary Key</param> /// <param name="dataTableUseTypeCategoryCode">DataTableUseTypeCategory</param> /// <returns></returns> public T Find(int id, DataTableUseTypeCategory dataTableUseTypeCategoryCode) { T companyUnit = (T)Find(id).Clone(); CompanyUnitDataTablesCollection <CompanyUnitDataTables> dataTableColl = new CompanyUnitDataTablesCollection <CompanyUnitDataTables>(); dataTableColl.Merge(companyUnit.DataTables[dataTableUseTypeCategoryCode]); companyUnit.DataTables = dataTableColl; return(companyUnit); }
//================================================================================ #endregion #region Methods //================================================================================ private Predicate <T> FindByDataTableUseTypeCategory( DataTableUseTypeCategory dataTableUseTypeCategoryCode) { return(delegate(T obj) { if (obj.DataTableUseTypeCategoryCode == dataTableUseTypeCategoryCode) { return true; } return false; }); }
//================================================================================ public CompanyUnitDataTablesCollection <T> this[ CompanyUnitHierarchy CompanyUnitObj, DataTableUseTypeCategory dataTableUseTypeCategoryCode] { get { CompanyUnitDataTablesCollection <T> tempColl = this.GetAllIncludingCompanyHierarchy( CompanyUnitObj.CompanyUnitRef, CompanyUnitObj.CompanyUnitParentRef, CompanyUnitObj.CompanyUnitGrandParentRef, CompanyUnitObj.CompanyUnitGreatGrandParentRef); //tempColl = tempColl[dataTableUseTypeCategoryCode]; return(tempColl[dataTableUseTypeCategoryCode]); } }
//================================================================================ public CompanyUnitDataTablesCollection <T> this[ DataTableUseTypeCategory dataTableUseTypeCategoryCode] { get { return(this.FindAll(FindByDataTableUseTypeCategory(dataTableUseTypeCategoryCode))); //CompanyUnitDataTablesCollection<T> tempColl = new CompanyUnitDataTablesCollection<T>(); //foreach(T obj in this) //{ // if(obj.DataTableUseTypeCategoryCode.Equals(dataTableUseTypeCategoryCode)) // tempColl.Add(obj); //} //return tempColl; } }