public virtual IField GetFieldFromRelationedObject(esriRelRole relationshipType, string tableName, string fieldName) { IObject relatoned = GetRelationedObject(relationshipType, tableName, fieldName); if (relatoned != null) return relatoned.Fields.get_Field(relatoned.Fields.FindField(fieldName)); else return null; }
public virtual object GetFieldValueFromRelationedObject(esriRelRole relationshipType, string tableName, string fieldName) { IObject relationed = GetRelationedObject(relationshipType, tableName, fieldName); if (relationed == null) throw new System.NullReferenceException("Não existe relacionamento entre as tabelas ('" + TableName + "' e '" + tableName + "')"); int fieldIndex = relationed.Fields.FindField(fieldName); if (fieldIndex == -1) throw new System.NullReferenceException("A tabela '" + tableName + "' não contém o campo " + fieldName); return relationed.get_Value(fieldIndex); }
IEnumRelationshipClass IRelationshipClassCollection.FindRelationshipClasses(IObjectClass ObjectClass, esriRelRole role) { return ((IRelationshipClassCollection)featureLayer).FindRelationshipClasses(ObjectClass, role); }
/// <summary> /// Finds all of the relationship classes using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned /// any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <returns> /// Returns a /// <see cref="T:IList{ESRI.ArcGIS.Geodatabase.IRelationshipClass}" /> /// representing those relationships that are assigned one or more of the class model names. /// </returns> /// <exception cref="ArgumentNullException">modelNames</exception> public static IEnumerable <IRelationshipClass> GetRelationshipClasses(this ITable source, esriRelRole relationshipRole, params string[] modelNames) { if (source == null) { return(null); } IObjectClass table = source as IObjectClass; if (table == null) { return(null); } return(table.GetRelationshipClasses(relationshipRole, modelNames)); }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned /// any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The table.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names. /// </returns> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClass(this ITable source, esriRelRole relationshipRole, string[] modelNames) { return(source.GetRelationshipClass(relationshipRole, modelNames, true)); }
/// <summary> /// Finds all of the relationship classes using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned /// any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <returns> /// Returns a /// <see cref="T:IList{ESRI.ArcGIS.Geodatabase.IRelationshipClass}" /> /// representing those relationships that are assigned one or more of the class model names. /// </returns> /// <exception cref="ArgumentNullException">modelNames</exception> public static IEnumerable <IRelationshipClass> GetRelationshipClassesAsync(this IObjectClass source, esriRelRole relationshipRole, params string[] modelNames) { return(Task.Wait(() => source.GetRelationshipClasses(relationshipRole, modelNames))); }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned the <paramref name="modelName" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelName">The class model name.</param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelName</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClassAsync(this IObjectClass source, esriRelRole relationshipRole, string modelName) { return(Task.Wait(() => source.GetRelationshipClass(relationshipRole, modelName))); }
/// <summary> /// Initializes a new instance of the <see cref="MissingClassModelNameException" /> class. /// </summary> /// <param name="oclass">The oclass.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The model names.</param> public MissingClassModelNameException(IObjectClass oclass, esriRelRole relationshipRole, params string[] modelNames) : base(string.Format("There are no '{0}' relationships with the '{1}' that are assigned the '{2}' class model name.", relationshipRole, ((IDataset)oclass).Name, string.Join(" or ", modelNames)), modelNames) { }
public virtual List<IRelationshipClass> GetRelationshipClasses(esriRelRole relationshipType) { List<IRelationshipClass> relationshipClasses = new List<IRelationshipClass>(); IEnumRelationshipClass enumRelationshipClass = this.DataObject.Class.get_RelationshipClasses(relationshipType); IRelationshipClass relationshipClass; try { while ((relationshipClass = enumRelationshipClass.Next()) != null) { relationshipClasses.Add(relationshipClass); } } catch (System.Exception exception) { throw new System.ApplicationException("Ocorreu um erro ao obter os Relacionamentos desta Feature. \n Detalhes: " + exception.Message); } return relationshipClasses; }
/// <summary> /// Finds all of the relationship classes using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned /// any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <returns> /// Returns a /// <see cref="T:IList{ESRI.ArcGIS.Geodatabase.IRelationshipClass}" /> /// representing those relationships that are assigned one or more of the class model names. /// </returns> /// <exception cref="ArgumentNullException">modelNames</exception> public static IEnumerable <IRelationshipClass> GetRelationshipClasses(this IObjectClass source, esriRelRole relationshipRole, params string[] modelNames) { if (modelNames == null) { throw new ArgumentNullException("modelNames"); } IEnumRelationshipClass list = source.RelationshipClasses[relationshipRole]; foreach (IRelationshipClass relClass in list.AsEnumerable()) { switch (relationshipRole) { case esriRelRole.esriRelRoleAny: if (relClass.DestinationClass.IsAssignedClassModelName(modelNames) || relClass.OriginClass.IsAssignedClassModelName(modelNames)) { yield return(relClass); } break; case esriRelRole.esriRelRoleDestination: if (relClass.OriginClass.IsAssignedClassModelName(modelNames)) { yield return(relClass); } break; default: if (relClass.DestinationClass.IsAssignedClassModelName(modelNames)) { yield return(relClass); } break; } } }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <param name="throwException"> /// if set to <c>true</c> if an exception should be thrown when the model name is not /// assigned. /// </param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelNames</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClass(this IObjectClass source, esriRelRole relationshipRole, string[] modelNames, bool throwException) { if (source == null) { return(null); } if (modelNames == null) { throw new ArgumentNullException("modelNames"); } IEnumerable <IRelationshipClass> list = source.GetRelationshipClasses(relationshipRole, modelNames); var relClass = list.FirstOrDefault(); if (relClass == null && throwException) { throw new MissingClassModelNameException(source, relationshipRole, modelNames); } return(relClass); }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned the <paramref name="modelName" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelName">The class model name.</param> /// <param name="throwException"> /// if set to <c>true</c> if an exception should be thrown when the model name is not /// assigned. /// </param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelName</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClass(this IObjectClass source, esriRelRole relationshipRole, string modelName, bool throwException) { if (source == null) { return(null); } if (modelName == null) { throw new ArgumentNullException("modelName"); } return(source.GetRelationshipClass(relationshipRole, new[] { modelName }, throwException)); }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned the <paramref name="modelName" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelName">The class model name.</param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelName</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClass(this IObjectClass source, esriRelRole relationshipRole, string modelName) { return(source.GetRelationshipClass(relationshipRole, modelName, true)); }
public IEnumRelationshipClass get_RelationshipClasses(esriRelRole Role) { throw new NotImplementedException(); }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned the <paramref name="modelName" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelName">The class model name.</param> /// <param name="throwException"> /// if set to <c>true</c> if an exception should be thrown when the model name is not /// assigned. /// </param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelName</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClassAsync(this ITable source, esriRelRole relationshipRole, string modelName, bool throwException) { return(Task.Wait(() => source.GetRelationshipClass(relationshipRole, modelName, throwException))); }
public IEnumRelationshipClass get_RelationshipClasses(esriRelRole role) { log.enterFunc("get_RelationshipClasses"); return null; }
/// <summary> /// Finds the <see cref="IRelationshipClass" /> using the specified <paramref name="source" /> and /// <paramref name="relationshipRole" /> that has been assigned any of the <paramref name="modelNames" />. /// </summary> /// <param name="source">The object class.</param> /// <param name="relationshipRole">The relationship role.</param> /// <param name="modelNames">The class model names.</param> /// <returns> /// Returns a <see cref="ESRI.ArcGIS.Geodatabase.IRelationshipClass" /> representing the relationship assigned any of /// the class model names, otherwise <c>null</c>. /// </returns> /// <exception cref="ArgumentNullException">modelNames</exception> /// <exception cref="MissingClassModelNameException"></exception> public static IRelationshipClass GetRelationshipClassAsync(this ITable source, esriRelRole relationshipRole, string[] modelNames) { return(Task.Wait(() => source.GetRelationshipClass(relationshipRole, modelNames))); }
public virtual IObject GetRelationedObject(esriRelRole relationshipType, string tableName, string fieldName) { IObject obj = this.DataObject; IEnumRelationshipClass enumRelatClass = obj.Class.get_RelationshipClasses(relationshipType); IRelationshipClass relatClass = enumRelatClass.Next(); while (relatClass != null) { if (((IDataset)relatClass.OriginClass).Name.ToLower() == tableName.ToLower()) { IEnumRelationship enumRelat = relatClass.GetRelationshipsForObject(obj); IRelationship relat = enumRelat.Next(); if (relat != null) { IObject relationed = relat.OriginObject; return relationed; } } else if (((IDataset)relatClass.DestinationClass).Name.ToLower() == tableName.ToLower()) { IEnumRelationship enumRelat = relatClass.GetRelationshipsForObject(obj); IRelationship relat = enumRelat.Next(); if (relat != null) { IObject relationed = relat.DestinationObject; return relationed; } } relatClass = enumRelatClass.Next(); } return null; }