Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 IEnumRelationshipClass IRelationshipClassCollection.FindRelationshipClasses(IObjectClass ObjectClass, esriRelRole role)
 {
     return ((IRelationshipClassCollection)featureLayer).FindRelationshipClasses(ObjectClass, role);
 }
Ejemplo n.º 4
0
        /// <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));
        }
Ejemplo n.º 5
0
 /// <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));
 }
Ejemplo n.º 6
0
 /// <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)));
 }
Ejemplo n.º 7
0
 /// <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)));
 }
Ejemplo n.º 8
0
 /// <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)
 {
 }
Ejemplo n.º 9
0
        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;
        }
Ejemplo n.º 10
0
        /// <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;
                }
            }
        }
Ejemplo n.º 11
0
        /// <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);
        }
Ejemplo n.º 12
0
        /// <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));
        }
Ejemplo n.º 13
0
 /// <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));
 }
Ejemplo n.º 14
0
 public IEnumRelationshipClass get_RelationshipClasses(esriRelRole Role)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 15
0
 /// <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)));
 }
Ejemplo n.º 16
0
 public IEnumRelationshipClass get_RelationshipClasses(esriRelRole role)
 {
     log.enterFunc("get_RelationshipClasses");
     
     return null;
 }
Ejemplo n.º 17
0
 /// <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)));
 }
Ejemplo n.º 18
0
 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;
 }