//================================================================================ /// <summary> /// Bind CompanyUnitDataTablesCollection, CompanyDataItemCollection & CompanyDataEnumerationCollection /// to each CompanyUnit from CompanyUnitHierarchyCollection /// </summary> /// <param name="allDataTables"></param> /// <param name="allDataItems"></param> /// <param name="allDataEnumeration"></param> /// <returns></returns> public void BindDataTablesToEachCompanyUnitHierarchy (CompanyUnitDataTablesCollection <CompanyUnitDataTables> allDataTables, CompanyDataItemCollection <CompanyDataItem> allDataItems, CompanyDataEnumerationCollection <CompanyDataEnumeration> allDataEnumeration ) { foreach (T companyUnitObj in this) { CompanyUnitDataTablesCollection <CompanyUnitDataTables> companyUnitDataTableColl = allDataTables[companyUnitObj]; CompanyDataItemCollection <CompanyDataItem> companyUnitDataItemColl = allDataItems[companyUnitObj]; CompanyDataEnumerationCollection <CompanyDataEnumeration> companyUnitDataEnumerationColl = allDataEnumeration[companyUnitObj]; companyUnitDataItemColl.BindDataEnumerationToEachDataItems(companyUnitDataEnumerationColl); companyUnitDataTableColl.BindDataItemsToEachDataTable(companyUnitDataItemColl); if (companyUnitDataTableColl.Count > 0) { companyUnitObj.DataTables = companyUnitDataTableColl; } } }
/// <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); }
//================================================================================ /// <summary> /// Merge given CompanyUnitDataTablesCollection (mergeFromColl) using DataTableRef /// to existing CompanyUnitDataTablesCollection /// </summary> /// <param name="mergeFromColl"></param> public CompanyUnitDataTablesCollection <T> Merge(CompanyUnitDataTablesCollection <T> mergeFromColl) { if (mergeFromColl != null) { foreach (T obj in mergeFromColl) { if (!this.Contains(obj.DataTableRef)) { this.Add(obj); } } } return(this); }
//================================================================================ 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> FindAll(Predicate <T> match) { if (this == null) { throw new ArgumentNullException("Item collection empty."); } if (match == null) { throw new ArgumentNullException("Match condition empty."); } CompanyUnitDataTablesCollection <T> tempColl = new CompanyUnitDataTablesCollection <T>(); foreach (T obj in this) { if (match(obj)) { tempColl.Add(obj); } } return(tempColl); }