Hello,
I am attempting to remove some standalone tables from a map and subsequently launch a Python script that does some work on them.
Here is the code I am using:
The appendOptionAsync() call removes the tables from the map in preparation to run the python script.
Note that if I right click and remove the tables the locks disappear:
Before:


After:

However, if I run the tool and remove the tables that way... The locks persist

Leading to this error:

The locks remain even after I click out of the Python window:

However... as soon as I click the button to run the tool again, the locks disappear:
Before:

Immediately after clicking the Import button again (locks are cleared):

I feel like this might have something to do with garbage collection so I attempted to go back and put "using" statements as well as Dispose statements on the tables.
The launchBaconAsync() call launches the python script.
Thank you
-John
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>Collections<SPAN class="punctuation token">.</SPAN>Generic<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>Data<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>Linq<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> System<SPAN class="punctuation token">.</SPAN>Windows<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Core<SPAN class="punctuation token">.</SPAN>Data<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Catalog<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Core<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Core<SPAN class="punctuation token">.</SPAN>Geoprocessing<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Framework<SPAN class="punctuation token">.</SPAN>Contracts<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Framework<SPAN class="punctuation token">.</SPAN>Dialogs<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Framework<SPAN class="punctuation token">.</SPAN>Threading<SPAN class="punctuation token">.</SPAN>Tasks<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Mapping<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> Oracle<SPAN class="punctuation token">.</SPAN>ManagedDataAccess<SPAN class="punctuation token">.</SPAN>Client<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">namespace</SPAN> BulkLoadTool
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">internal</SPAN> <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">Bacon</SPAN> <SPAN class="punctuation token">:</SPAN> Button
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">static</SPAN> IEnumerable<SPAN class="operator token"><</SPAN>List<SPAN class="operator token"><</SPAN>T<SPAN class="operator token">></SPAN><SPAN class="operator token">></SPAN> SplitList<SPAN class="operator token"><</SPAN>T<SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN>List<SPAN class="operator token"><</SPAN>T<SPAN class="operator token">></SPAN> locations<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">int</SPAN> nSize <SPAN class="operator token">=</SPAN> <SPAN class="number token">1000</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">for</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">int</SPAN> i <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">;</SPAN> i <SPAN class="operator token"><</SPAN> locations<SPAN class="punctuation token">.</SPAN>Count<SPAN class="punctuation token">;</SPAN> i <SPAN class="operator token">+</SPAN><SPAN class="operator token">=</SPAN> nSize<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">yield</SPAN> <SPAN class="keyword token">return</SPAN> locations<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetRange</SPAN><SPAN class="punctuation token">(</SPAN>i<SPAN class="punctuation token">,</SPAN> Math<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Min</SPAN><SPAN class="punctuation token">(</SPAN>nSize<SPAN class="punctuation token">,</SPAN> locations<SPAN class="punctuation token">.</SPAN>Count <SPAN class="operator token">-</SPAN> i<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">async</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">appendOptionAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">await</SPAN> QueuedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">string</SPAN> selGDBitem <SPAN class="operator token">=</SPAN> Module1<SPAN class="punctuation token">.</SPAN>Current<SPAN class="punctuation token">.</SPAN>GDBdropdown<SPAN class="punctuation token">.</SPAN>SelectedItem<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>selGDBitem <SPAN class="operator token">==</SPAN> <SPAN class="string token">""</SPAN> <SPAN class="operator token">||</SPAN> selGDBitem <SPAN class="operator token">==</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> appFile <SPAN class="operator token">=</SPAN> System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>File<SPAN class="punctuation token">.</SPAN><SPAN class="token function">CreateText</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\configFiles\appendOption.log"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
appFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN>String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{0},\"{1}\""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"False"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">else</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">string</SPAN> appString <SPAN class="operator token">=</SPAN> String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Would you like to append to {0}?"</SPAN><SPAN class="punctuation token">,</SPAN> selGDBitem<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> appResult <SPAN class="operator token">=</SPAN> ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Framework<SPAN class="punctuation token">.</SPAN>Dialogs<SPAN class="punctuation token">.</SPAN>MessageBox<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Show</SPAN><SPAN class="punctuation token">(</SPAN>appString<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Append Features"</SPAN><SPAN class="punctuation token">,</SPAN> MessageBoxButton<SPAN class="punctuation token">.</SPAN>YesNo<SPAN class="punctuation token">,</SPAN> MessageBoxImage<SPAN class="punctuation token">.</SPAN>Information<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>appResult <SPAN class="operator token">==</SPAN> MessageBoxResult<SPAN class="punctuation token">.</SPAN>Yes<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> appFile <SPAN class="operator token">=</SPAN> System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>File<SPAN class="punctuation token">.</SPAN><SPAN class="token function">CreateText</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\configFiles\appendOption.log"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">try</SPAN>
<SPAN class="punctuation token">{</SPAN>
appFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN>String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{0},\"{1}\""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"True"</SPAN><SPAN class="punctuation token">,</SPAN> selGDBitem<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
IReadOnlyList<SPAN class="operator token"><</SPAN>StandaloneTable<SPAN class="operator token">></SPAN> standAloneTables <SPAN class="operator token">=</SPAN> MapView<SPAN class="punctuation token">.</SPAN>Active<SPAN class="punctuation token">.</SPAN>Map<SPAN class="punctuation token">.</SPAN>StandaloneTables<SPAN class="punctuation token">;</SPAN>
List<SPAN class="operator token"><</SPAN>StandaloneTable<SPAN class="operator token">></SPAN> removalStandAloneTables <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN>StandaloneTable<SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> sATbl <SPAN class="keyword token">in</SPAN> standAloneTables<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">string</SPAN> sAPath <SPAN class="operator token">=</SPAN> sATbl<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetTable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetDatastore</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetPath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>sAPath<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Contains</SPAN><SPAN class="punctuation token">(</SPAN>selGDBitem<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>sAPath<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">{</SPAN>
removalStandAloneTables<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>sATbl<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
sATbl<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetTable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">Dispose</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>selGDBitem<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
MapView<SPAN class="punctuation token">.</SPAN>Active<SPAN class="punctuation token">.</SPAN>Map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">RemoveStandaloneTables</SPAN><SPAN class="punctuation token">(</SPAN>removalStandAloneTables<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> dispData <SPAN class="operator token">=</SPAN> removalStandAloneTables<SPAN class="punctuation token">.</SPAN><SPAN class="token function">First</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetTable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetDatastore</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetPath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>AbsolutePath<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">catch</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">else</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> appFile <SPAN class="operator token">=</SPAN> System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>File<SPAN class="punctuation token">.</SPAN><SPAN class="token function">CreateText</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\configFiles\appendOption.log"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
appFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN>String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{0},\"{1}\""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"False"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">async</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">launchBaconAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">try</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">await</SPAN> QueuedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">object</SPAN> myCommand <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\Scripts\FutureBacon.bat"</SPAN><SPAN class="punctuation token">;</SPAN>
System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">.</SPAN>ProcessStartInfo procStartInfo <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">.</SPAN>ProcessStartInfo</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"cmd"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"/c"</SPAN> <SPAN class="operator token">+</SPAN> myCommand<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
procStartInfo<SPAN class="punctuation token">.</SPAN>RedirectStandardOutput <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">;</SPAN>
procStartInfo<SPAN class="punctuation token">.</SPAN>UseShellExecute <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">;</SPAN>
procStartInfo<SPAN class="punctuation token">.</SPAN>CreateNoWindow <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">;</SPAN>
System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">.</SPAN>Process proc <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">.</SPAN>Process</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
proc<SPAN class="punctuation token">.</SPAN>StartInfo <SPAN class="operator token">=</SPAN> procStartInfo<SPAN class="punctuation token">;</SPAN>
proc<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Start</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//string result = proc.StandardOutput.ReadToEnd();</SPAN>
<SPAN class="keyword token">string</SPAN> result <SPAN class="operator token">=</SPAN> String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Features selected. See Python Window"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(result);</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">catch</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="token class-name">Exception</SPAN> e<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Framework<SPAN class="punctuation token">.</SPAN>Dialogs<SPAN class="punctuation token">.</SPAN>MessageBox<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Show</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>Message<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">protected</SPAN> <SPAN class="keyword token">override</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">OnClick</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">try</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> prog <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ProgressDialog</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Gathering Route Info..."</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
prog<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Show</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
QueuedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> lyr <SPAN class="operator token">=</SPAN> MapView<SPAN class="punctuation token">.</SPAN>Active<SPAN class="punctuation token">.</SPAN>Map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetLayersAsFlattenedList</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>OfType<SPAN class="operator token"><</SPAN>FeatureLayer<SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">First</SPAN><SPAN class="punctuation token">(</SPAN>l <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN> l<SPAN class="punctuation token">.</SPAN>Name<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Contains</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"TxDOT_Roadways_Edits"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> selectionfromMap <SPAN class="operator token">=</SPAN> lyr<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetSelection</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> gidList <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> oids <SPAN class="operator token">=</SPAN> selectionfromMap<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetObjectIDs</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToList</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">int</SPAN> count <SPAN class="operator token">=</SPAN> oids<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Count</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> insp <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>Editing<SPAN class="punctuation token">.</SPAN>Attributes<SPAN class="punctuation token">.</SPAN>Inspector</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Dictionary<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> Dictionary<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="operator token">></SPAN> futureDict <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Dictionary</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> Dictionary<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> oid <SPAN class="keyword token">in</SPAN> oids<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
insp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Clear</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
insp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Load</SPAN><SPAN class="punctuation token">(</SPAN>lyr<SPAN class="punctuation token">,</SPAN> oid<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Dictionary<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN> futureNestedDict <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Dictionary</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> gid <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"GID"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> editOp <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"EDIT_TYPE"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//FUTURE BACON DICT PARAMETERS</SPAN>
<SPAN class="keyword token">var</SPAN> OGEOMS <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"OGEOMS"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> BEGIN_DFO <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"BEGIN_DFO"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> END_DFO <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"END_DFO"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> ETL_JOB_ID <SPAN class="operator token">=</SPAN> insp<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"ETL_JOB_ID"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>editOp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Contains</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Retire"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">continue</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
futureNestedDict<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"OGEOMS"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> OGEOMS<SPAN class="punctuation token">;</SPAN>
futureNestedDict<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"BEGIN_DFO"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> BEGIN_DFO<SPAN class="punctuation token">;</SPAN>
futureNestedDict<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"END_DFO"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> END_DFO<SPAN class="punctuation token">;</SPAN>
futureNestedDict<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"ETL_JOB_ID"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ETL_JOB_ID<SPAN class="punctuation token">;</SPAN>
futureNestedDict<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"IN_GRID"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"True"</SPAN><SPAN class="punctuation token">;</SPAN>
futureDict<SPAN class="punctuation token">[</SPAN>gid<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> futureNestedDict<SPAN class="punctuation token">;</SPAN>
gidList<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>gid<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
List<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN> removeGidList <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN>gidList<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN>OracleConnection oc <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OracleConnection</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
oc<SPAN class="punctuation token">.</SPAN>ConnectionString <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Data Source=*******;USER ID=*********;Password=*******"</SPAN><SPAN class="punctuation token">;</SPAN>
oc<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Open</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> chunks <SPAN class="operator token">=</SPAN> <SPAN class="token function">SplitList</SPAN><SPAN class="punctuation token">(</SPAN>gidList<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> chunk <SPAN class="keyword token">in</SPAN> chunks<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> chunkListJoin <SPAN class="operator token">=</SPAN> String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Join</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">","</SPAN><SPAN class="punctuation token">,</SPAN> chunk<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> sql <SPAN class="operator token">=</SPAN> String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"SELECT RDBD_GMTRY_LN_ID FROM GRIDOP.RDBD_GMTRY_LN WHERE GRIDOP.RDBD_GMTRY_LN.RDBD_GMTRY_LN_ID IN ({0})"</SPAN><SPAN class="punctuation token">,</SPAN> chunkListJoin<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
OracleDataAdapter oda <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OracleDataAdapter</SPAN><SPAN class="punctuation token">(</SPAN>sql<SPAN class="punctuation token">,</SPAN> oc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
DataTable dt <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">DataTable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
oda<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Fill</SPAN><SPAN class="punctuation token">(</SPAN>dt<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN>DataRow dr <SPAN class="keyword token">in</SPAN> dt<SPAN class="punctuation token">.</SPAN>Rows<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
removeGidList<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Remove</SPAN><SPAN class="punctuation token">(</SPAN>dr<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Not in GRID: "</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Join</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">","</SPAN><SPAN class="punctuation token">,</SPAN> removeGidList<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"In GRID: "</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Join</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">","</SPAN><SPAN class="punctuation token">,</SPAN> gidList<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> g <SPAN class="keyword token">in</SPAN> removeGidList<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
futureDict<SPAN class="punctuation token">[</SPAN>g<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">"IN_GRID"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"False"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
oc<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Close</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="comment token">//Write string to file</SPAN>
System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>FileInfo file <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>FileInfo</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\configFiles\futureBaconDict.log"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
file<SPAN class="punctuation token">.</SPAN>Directory<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Create</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> outFile <SPAN class="operator token">=</SPAN> System<SPAN class="punctuation token">.</SPAN>IO<SPAN class="punctuation token">.</SPAN>File<SPAN class="punctuation token">.</SPAN><SPAN class="token function">CreateText</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">@"C:\TxDOT\BulkLoad\LayerReference\configFiles\futureBaconDict.log"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">long</SPAN> gCount <SPAN class="operator token">=</SPAN> gidList<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Count</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">long</SPAN> curCount <SPAN class="operator token">=</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">var</SPAN> arr <SPAN class="keyword token">in</SPAN> gidList<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>curCount <SPAN class="operator token">==</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
outFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="comment token">//System.Diagnostics.Trace.WriteLine(arr);</SPAN>
<SPAN class="comment token">//System.Diagnostics.Trace.WriteLine(futureDict[arr]);</SPAN>
String dString <SPAN class="operator token">=</SPAN> String<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Format</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{0}:{{\"OGEOMS\":\"{1}\",\"BEGIN_DFO\":{2},\"END_DFO\":{3}}}"</SPAN><SPAN class="punctuation token">,</SPAN>
arr<SPAN class="punctuation token">,</SPAN>
futureDict<SPAN class="punctuation token">[</SPAN>arr<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">"OGEOMS"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
futureDict<SPAN class="punctuation token">[</SPAN>arr<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">"BEGIN_DFO"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
futureDict<SPAN class="punctuation token">[</SPAN>arr<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">"END_DFO"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
outFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN>dString<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>curCount <SPAN class="operator token"><</SPAN> gCount<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
outFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">","</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">else</SPAN>
<SPAN class="punctuation token">{</SPAN>
outFile<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Write</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"}"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
curCount <SPAN class="operator token">=</SPAN> curCount <SPAN class="operator token">+</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
prog<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Dispose</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//Check append option</SPAN>
<SPAN class="token function">appendOptionAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">launchBaconAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">catch</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="token class-name">Exception</SPAN> e<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
Trace<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>Message<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//Module1.CreateNotification("Adding Layer... Will take a minute or so", "Roadways Edits Not Found");</SPAN>
<SPAN class="comment token">//, @"Images\Bacon16.png");</SPAN>
<SPAN class="keyword token">var</SPAN> Datapath <SPAN class="operator token">=</SPAN> QueuedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">{</SPAN>
DatabaseConnectionProperties connectionProperties <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">DatabaseConnectionProperties</SPAN><SPAN class="punctuation token">(</SPAN>EnterpriseDatabaseType<SPAN class="punctuation token">.</SPAN>SQLServer<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
AuthenticationMode <SPAN class="operator token">=</SPAN> AuthenticationMode<SPAN class="punctuation token">.</SPAN>OSA<SPAN class="punctuation token">,</SPAN>
Instance <SPAN class="operator token">=</SPAN> <SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN>
Database <SPAN class="operator token">=</SPAN> <SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN>
Version <SPAN class="operator token">=</SPAN> <SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">*</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN>Geodatabase enterpriseGeodatabaseViaConnectionProperties <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Geodatabase</SPAN><SPAN class="punctuation token">(</SPAN>connectionProperties<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> gdbPath <SPAN class="operator token">=</SPAN> enterpriseGeodatabaseViaConnectionProperties<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetPath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">return</SPAN> gdbPath<SPAN class="punctuation token">.</SPAN>LocalPath<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> rdwaysEnd <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"TPP_GIS.APP_TPP_GIS_ADMIN.Roadways_Edits\TPP_GIS.APP_TPP_GIS_ADMIN.TxDOT_Roadways_Edits"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> fullRdwayPath <SPAN class="operator token">=</SPAN> Path<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Combine</SPAN><SPAN class="punctuation token">(</SPAN>Datapath<SPAN class="punctuation token">.</SPAN>Result<SPAN class="punctuation token">,</SPAN> rdwaysEnd<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Uri rdUri <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Uri</SPAN><SPAN class="punctuation token">(</SPAN>fullRdwayPath<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
QueuedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN> LayerFactory<SPAN class="punctuation token">.</SPAN>Instance<SPAN class="punctuation token">.</SPAN><SPAN class="token function">CreateLayer</SPAN><SPAN class="punctuation token">(</SPAN>rdUri<SPAN class="punctuation token">,</SPAN> MapView<SPAN class="punctuation token">.</SPAN>Active<SPAN class="punctuation token">.</SPAN>Map<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>