private void intersectLayerDetailsFunctions(ILayer pLay, List<IGeometry> pGeos, AAState.intersectOptions strOpt, ref bool found,
ref List<Globals.OptionsToPresent> strFiles, ref ESRI.ArcGIS.Geodatabase.IObject inObject, int intFldIdx, List<string> MatchPattern)
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain194") + pLay.Name);
IRasterLayer pRasLay = null;
IEnvelope pEnv = null;
IRelationalOperator pRel = null;
IRelationalOperator2 pRel2 = null;
ISpatialFilter pSpatFilt = null;
IFeatureLayer pFLay = null;
try
{
if (pLay is IRasterLayer)
{
pRasLay = pLay as IRasterLayer;
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain195") + pRasLay.Name);
pEnv = pRasLay.AreaOfInterest;
pRel = pEnv as IRelationalOperator;
pRel2 = pEnv as IRelationalOperator2;
foreach (IGeometry pGeo in pGeos)
{
if (pRel.Crosses(pGeo) || pRel.Touches(pGeo) || pRel.Overlaps(pGeo) || pRel2.ContainsEx(pGeo, esriSpatialRelationExEnum.esriSpatialRelationExClementini))
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain196") + pRasLay.Name);
string pathForLay = Globals.GetPathForALayer(pLay);
string fcname = Globals.getClassName(pLay);
switch (formatString)
{
case "P":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
case "N":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
case "F":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || fcname.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
default:
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
}
}
}
}
else if (pLay is IFeatureLayer)
{
pFLay = pLay as IFeatureLayer;
if (pFLay.FeatureClass == inObject.Class)
{
}
else
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain195") + pFLay.Name);
foreach (IGeometry pGeo in pGeos)
{
pSpatFilt = new SpatialFilterClass();
pSpatFilt.GeometryField = pFLay.FeatureClass.ShapeFieldName;
pSpatFilt.Geometry = pGeo as IGeometry;
pSpatFilt.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
if (pFLay.FeatureClass.FeatureCount(pSpatFilt) > 0)
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain196") + pFLay.Name);
string pathForLay = Globals.GetPathForALayer(pLay);
string fcname = Globals.getClassName(pLay);
switch (formatString)
{
case "P":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
case "N":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pLay.Name, pLay.Name, pLay.Name));
}
}
else
{
inObject.set_Value(intFldIdx, pLay.Name);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
case "F":
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || fcname.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, fcname, fcname, fcname)))
{
strFiles.Add(new Globals.OptionsToPresent(0, fcname, fcname, fcname));
}
}
else
{
inObject.set_Value(intFldIdx, fcname);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
default:
if (MatchPattern == null)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else if (MatchPattern.Count == 0)
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
else
{
foreach (string MatPat in MatchPattern)
{
if (pathForLay.ToUpper().Contains(MatPat.ToUpper()) || pLay.Name.ToUpper().Contains(MatPat.ToUpper()))
{
if (strOpt == AAState.intersectOptions.PromptMulti)
{
if (!strFiles.Contains(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay)))
{
strFiles.Add(new Globals.OptionsToPresent(0, pathForLay, pathForLay, pathForLay));
}
}
else
{
inObject.set_Value(intFldIdx, pathForLay);
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
found = true;
return;
}
}
}
}
break;
}
}
else
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain197") + pFLay.Name);
}
}
}
}
else
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain198"));
}
}
catch (Exception ex)
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorError_14a") + ex.Message);
}
finally
{
pRasLay = null;
pEnv = null;
pRel = null;
pRel2 = null;
pSpatFilt = null;
pFLay = null;
}
}