/// <summary> /// Removes the specified type. /// </summary> /// <param name="source">The source.</param> /// <param name="type">The type.</param> public void Remove(IObjectClass source, Type type) { foreach (var entry in source.GetSubtypes()) { this.Remove(source.ObjectClassID, entry.Key, type); } }
/// <summary> /// Determines whether the type is inoperable. /// </summary> /// <param name="source">The source.</param> /// <param name="type">The type.</param> /// <returns> /// Returns a <see cref="bool" /> representing <c>true</c> when the type is inoperable for the source. /// </returns> public bool Contains(IObjectClass source, Type type) { var subtypes = source.GetSubtypes(); var items = subtypes as KeyValuePair <int, string>[] ?? subtypes.ToArray(); var flags = items.Select(entry => this.Contains(source.ObjectClassID, entry.Key, type)).ToList(); return(flags.Count == items.Count()); }
/// <summary> /// Exports the ArcFM Edit Event Properties to a CSV file. /// </summary> /// <param name="table">The table.</param> /// <param name="source">The source.</param> /// <param name="editEvents">The edit events.</param> private void Export <T>(DataTable table, IObjectClass source, params mmEditEvent[] editEvents) { if (source == null) { return; } var configTopLevel = ConfigTopLevel.Instance; var dataset = source as IDataset; var featureDataset = (source is IFeatureClass) ? ((IFeatureClass)source).FeatureDataset : null; var subtypes = new Dictionary <int, string>(); var list = source.GetSubtypes().ToList(); if (list.Any()) { subtypes = list.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); } foreach (var editEvent in editEvents) { var values = configTopLevel.GetAutoValues(source, editEvent); if (values.Any()) { foreach (var value in values) { var subtypeCode = value.Key; var subtypeName = subtypes.ContainsKey(subtypeCode) ? subtypes[subtypeCode] : "All"; foreach (var a in value.Value) { var row = this.ExportRow <T>(a, subtypeCode, subtypeName, dataset, featureDataset); table.Rows.Add(row); } } } } }