public void InitFabricState()
{
//get the fabric layers from the map
IArray pFabricSubLayerArray;
bool bHasFabricLayers = GetAllFabricSubLayers(out pFabricSubLayerArray);
//bool bHasFabricLayers = GetFabricSubLayersByClass(esriCadastralFabricTable.esriCFTParcels, out pFabricSubLayerArray);
//return the parcels fabric class as a feature class
if (bHasFabricLayers)
{
AAState._fabricLayers = pFabricSubLayerArray;
for (int i = 0; i < pFabricSubLayerArray.Count; i++)
{
IFeatureLayer pFLyr = (IFeatureLayer)pFabricSubLayerArray.get_Element(i);
IFeatureClass featureClass = (IFeatureClass)pFLyr.FeatureClass;
int iObjClassID = featureClass.ObjectClassID;
if (AAState._fabricInMemTablesLookUp == null)
AAState._fabricInMemTablesLookUp = new Dictionary<int, ITable>();
if (AAState._fabricObjectClasses == null)
AAState._fabricObjectClasses = new ArrayClass();
if (!AAState._fabricInMemTablesLookUp.ContainsKey(iObjClassID))
{
AAState._fabricObjectClasses.Add(featureClass);
IWorkspace pWS = Globals.CreateInMemoryWorkspace();
try
{
IFields NewFields = Globals.createFieldsFromSourceFields(featureClass.Fields);
IDataset pDS = featureClass as IDataset;
ITable InMemTable = Globals.createTableInMemory(pDS.Name, NewFields, pWS);
if (InMemTable != null)
AAState._fabricInMemTablesLookUp.Add(iObjClassID, InMemTable);
}
catch (Exception ex)
{
MessageBox.Show("Error Creating In Memory Fabric Table" + Environment.NewLine + ex.Message);
}
}
if (AAState._fabricObjectClassIds == null)
AAState._fabricObjectClassIds = new List<int>();
if (!AAState._fabricObjectClassIds.Contains(iObjClassID))
AAState._fabricObjectClassIds.Add(iObjClassID);
}
WireFabricEvents();
}
}