Hi,
I have a piece of code below to create new rows with some attribute values in a standalone table. Every step worked perfectly but stopped at Line43(var result = createOperation.Execute();). No error message popped up and my visual studio showed running, but my Pro was frozen. It looked like waiting for the "Execute()" finishing. I only added 3 rows and shouldn't be that long. I even waited it for 30 minutes but still didn't go to the next step. I am using Visual studio 2019 and Pro 2.9. Does anyone have any idea about this problem? Or how can I do to debug this problem?
Thanks,
Saili
public Task<string> CreateNewRowsInTable(string drawingNumber, string remarks)
{
StandaloneTable lDrawingLinkTable = DETUtil.GetTableFromMap(mAssetDrawingInfo.AssetDrawingLinkTableName);
if (null == lDrawingLinkTable)
throw new AssignDrawingLogicException(Defs.ASSIGN_DRAWING_MSG_ERROR_NO_DRAW_LINK_TABLE + mAssetDrawingInfo.AssetDrawingLinkTableName);
return QueuedTask.Run(() => {
var selectedLayers = MapView.Active.Map.GetSelection();
string lAssetIDFieldName = mAssignDrawingConfig.GetAssetIDFieldForFeatureClass(selectedLayers.First().Key.Name);
int lTotalFeatures = 0;
var createOperation = new EditOperation();
Table lnkTable = lDrawingLinkTable.GetTable();
int lAssestNameCode = mAssignDrawingConfig.GetAssetNameCodeForFeatureClass(selectedLayers.First().Key.Name);
foreach (long ObjectId in selectedLayers.First().Value)
{
var selectedInspector = new Inspector();
selectedInspector.Load(selectedLayers.First().Key, ObjectId);
string lAssetID = selectedInspector[lAssetIDFieldName].ToString();
try
{
var attributes = new Dictionary<string, object>(); attributes.Add(mAssetDrawingInfo.AssetDrawingLinkAssetIDFieldname, lAssetID);
attributes.Add(mAssetDrawingInfo.AssetDrawingLinkAssetNameFieldname, lAssestNameCode);
attributes.Add(mAssetDrawingInfo.AssetDrawingLinkDrawNumberFieldname, drawingNumber);
if (!String.IsNullOrEmpty(remarks))
attributes.Add(mAssetDrawingInfo.AssetDrawingLinkRemarksFieldname, remarks);
createOperation.Create(lnkTable, attributes);
}
catch (Exception)
{
throw new AssignDrawingLogicException(Defs.ASSIGN_DRAWING_MSG_CANNOT_EDIT_LINK_TABLE + mAssetDrawingInfo.AssetDrawingLinkTableName);
}
}
if (!createOperation.IsEmpty)
{
var result = createOperation.Execute();
if (!result)
{
MessageBox.Show(String.Format("ERROR: AssignDrawing: Please check if you have Edit permission on the layer!", "Desktop Edit Tool Error", MessageBoxButtons.OK, MessageBoxIcon.Error));
}
}
return "Assigned Drawing to: " + lTotalFeatures.ToString() + $" feature(s).{Environment.NewLine}Assign Drawing Complete.";
});
}