private static bool Store( EditOperation.IEditContext editContext, IDictionary <Feature, Geometry> result) { foreach (KeyValuePair <Feature, Geometry> keyValuePair in result) { Feature feature = keyValuePair.Key; Geometry geometry = keyValuePair.Value; if (geometry.IsEmpty) { throw new Exception("One or more result geometries have become empty."); } feature.SetShape(geometry); feature.Store(); editContext.Invalidate(feature); feature.Dispose(); } _msg.InfoFormat("Successfully stored {0} updated features.", result.Count); return(true); }
private static void StoreShape(KeyValuePair <Feature, Geometry> keyValuePair, EditOperation.IEditContext editContext) { Feature feature = keyValuePair.Key; Geometry geometry = keyValuePair.Value; StoreShape(feature, geometry, editContext); }
private static void StoreShape(Feature feature, Geometry geometry, EditOperation.IEditContext editContext) { if (geometry.IsEmpty) { throw new Exception("One or more updates geometries have become empty."); } feature.SetShape(geometry); feature.Store(); editContext.Invalidate(feature); }
public static bool StoreTx( EditOperation.IEditContext editContext, [CanBeNull] IDictionary <Feature, Geometry> updates, [CanBeNull] IDictionary <Feature, IList <Geometry> > copies = null) { _msg.DebugFormat("Saving {0} updates and {1} inserts...", updates?.Count ?? 0, copies?.Count ?? 0); if (updates != null && updates.Count > 0) { foreach (KeyValuePair <Feature, Geometry> keyValuePair in updates) { StoreShape(keyValuePair, editContext); } _msg.InfoFormat("Successfully stored {0} updated feature(s).", updates.Count); } if (copies != null && copies.Count > 0) { foreach (KeyValuePair <Feature, IList <Geometry> > keyValuePair in copies) { Feature originalFeature = keyValuePair.Key; IList <Geometry> newGeometries = keyValuePair.Value; FeatureClass featureClass = originalFeature.GetTable(); foreach (Geometry newGeometry in newGeometries) { RowBuffer rowBuffer = DuplicateRow(originalFeature); SetShape(rowBuffer, newGeometry, featureClass); Feature newFeature = featureClass.CreateRow(rowBuffer); StoreShape(newFeature, newGeometry, editContext); } } _msg.InfoFormat("Successfully created {0} new feature(s).", copies.Count); } return(true); }