User Tools

Site Tools


thinkgeo.mapsuite.routing.routingsource

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
thinkgeo.mapsuite.routing.routingsource [2015/09/11 03:31]
admin [ThinkGeo.MapSuite.Routing.RoutingSource]
thinkgeo.mapsuite.routing.routingsource [2017/03/16 21:59] (current)
Line 1: Line 1:
 ====== ThinkGeo.MapSuite.Routing.RoutingSource ====== ====== ThinkGeo.MapSuite.Routing.RoutingSource ======
  
 +{{section>​upgrade_map_suite_to_10.0}}
  
- +This class is the base class for all types of RoutingSource.
- +
-=== Remarks === +
-The RoutingSource ​class is where all other types of RoutingSource ​are inherited from. It provides the base set of functionality.As it is abstract, you will need to implement the GetRouteSegmentByFeatureIdCoreCore method. In this method, you are repsonsible for creating a route segment based on a feature ID.There is a RtgRouteSource class we already inherited from this class. It is based on a .rtg file and a .rtx file.+
 ===== Inheritance Hierarchy ===== ===== Inheritance Hierarchy =====
-*System.Object +  ​*System.Object 
-**[[ThinkGeo.MapSuite.Routing.RoutingSource]] +    ***ThinkGeo.MapSuite.Routing.RoutingSource** 
-***[[ThinkGeo.MapSuite.Routing.RtgRoutingSource]]+      ​*[[ThinkGeo.MapSuite.Routing.RtgRoutingSource]]
 ===== Members Summary ===== ===== Members Summary =====
 ==== Public Constructors ==== ==== Public Constructors ====
-^ Name ^ Parameters ^ DeclaringType ^ Summary ^ 
- 
 ==== Protected Constructors ==== ==== Protected Constructors ====
-^ Name ^ Parameters ^ DeclaringType ^ Summary ^ +** {{wiki:​ProtectedMethod.gif|}} RoutingSource() ​**
-{{wiki:​ProtectedMethod.gif|Protected Method}}[[#RoutingSource()|RoutingSource]] ​  ​| ​   |    | This is the default constructor for the abstract RoutingSource class. ​  |+
  
 +  * //This is the default constructor for the abstract RoutingSource class.//
 +== Remarks ==
 +  * //As this method is protected, you may only add code to this method if you override it from an inheriting class.//
 +== Parameters ==
 +<div newline></​div>​
 ==== Public Methods ==== ==== Public Methods ====
-^ Name ^ Parameters ^ DeclaringType ^ Summary ^ +** {{wiki:​PublicMethod.gif|}} GetRouteSegmentCount() ​**
-{{wiki:​PublicMethod.gif|Public Method}}[[#​AddRouteSegment(RouteSegment)|AddRouteSegment]] ​  | [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] ​  ​| ​   | This method adds a new RouteSegment to an existing transaction. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​BeginTransaction()|BeginTransaction]] ​  ​| ​   |    | This method starts a new transaction if the RoutingSource allows editing ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​Close()|Close]] ​  ​| ​   |    | This method closes the RoutingSource and releases any resources it was using. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​CommitTransaction()|CommitTransaction]] ​  ​| ​   |    | This method will commit the existing transaction to its underlying source of data.   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​DeleteRouteSegment(String)|DeleteRouteSegment]] ​  | String ​  ​| ​   | This method deletes a RouteSegment from an existing transaction. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​Equals(Object)|Equals]] ​  | Object ​  | Object ​  ​| ​   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​GetHashCode()|GetHashCode]] ​  ​| ​   | Object ​  ​| ​   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​GetRouteSegmentByFeatureId(String)|GetRouteSegmentByFeatureId]] ​  | String ​  ​| ​   | This method returns a RouteSegment by providing its ID in the RoutingSource. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#GetRouteSegmentCount()|GetRouteSegmentCount]] ​  ​| ​   |    | This method returns the count of the number of records in this RoutingSource. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​GetRouteSegmentsNearestTo(BaseShape,​ FeatureSource,​ GeographyUnit,​ Int32)|GetRouteSegmentsNearestTo]] ​  | [[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]],​ [[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]],​ [[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]],​ Int32   ​| ​   | This method returns a user defined number of Route Segments that are closest to the TargetShape. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​GetType()|GetType]] ​  ​| ​   | Object ​  ​| ​   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​Open()|Open]] ​  ​| ​   |    | This method opens the RoutingSource so that it is initialized and ready to use.   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​RollbackTransaction()|RollbackTransaction]] ​  ​| ​   |    | This method will cancel an existing transaction. It will free up the internal memory cache of any InternalFeatures added, updated or deleted. ​  | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​ToString()|ToString]] ​  ​| ​   | Object ​  ​| ​   | +
-| {{wiki:​PublicMethod.gif|Public Method}}[[#​UpdateRouteSegment(RouteSegment)|UpdateRouteSegment]] ​  | [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] ​  ​| ​   | This method deletes a RouteSegment from an existing transaction. ​  |+
  
-==== Protected Methods ==== +  ​* //This method returns the count of the number of records in this RoutingSource.// 
-^ Name ^ Parameters ^ DeclaringType ^ Summary ^ +== Remarks == 
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​BeginTransactionCore()|BeginTransactionCore]] ​  ​| ​   |    |    | +  * //This method ​is the concrete wrapper for the virtual method GetRouteSegmentCountCoreIt will return whatever is returned by the GetRouteSegmentCountCore ​method, along with any additions or subtractions made if you are in a transaction and that transaction is configured ​to be live. To determine what the default implementation of the virtual GetRouteSegmentCountCore ​method ​is, please see the documentation for itThe default implementation of GetRouteSegmentCountCore returns 0We strongly recommend that you provide your own implementation for this method.//
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​CloseCore()|CloseCore]] ​  ​| ​   |    | This method closes the RoutingSource and releases any resources it was using. ​  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​CommitTransactionCore(RoutingTransactionBuffer)|CommitTransactionCore]] ​  | [[ThinkGeo.MapSuite.Routing.RoutingTransactionBuffer|RoutingTransactionBuffer]] ​  ​| ​   | This method will commit the existing transaction to its underlying source of data.   | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​Finalize()|Finalize]] ​  ​| ​   | Object ​  ​| ​   | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​GetRouteSegmentByFeatureIdCore(String)|GetRouteSegmentByFeatureIdCore]] ​  | String ​  ​| ​   | This method returns a RouteSegment by providing its ID in the RoutingSource. ​  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​GetRouteSegmentCountCore()|GetRouteSegmentCountCore]] ​  ​|    |    | This method returns the count of the number of records in this RoutingSource. ​  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​GetRouteSegmentsNearestToCore(BaseShape,​ FeatureSource,​ GeographyUnit,​ Int32)|GetRouteSegmentsNearestToCore]] ​  | [[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]],​ [[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]],​ [[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]],​ Int32   ​| ​   | This method ​returns a user defined number of Route Segments that are closest to the TargetShape  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​MemberwiseClone()|MemberwiseClone]] ​  ​| ​   | Object ​  ​| ​   | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​OnCommittedTransaction(RoutingCommittedTransactionEventArgs)|OnCommittedTransaction]] ​  | [[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]] ​  ​| ​   | This method ​allows ​you to raise the CommittedTransaction event from a derived class. ​  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​OnCommittingTransaction(RoutingCommittingTransactionEventArgs)|OnCommittingTransaction]] ​  | [[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]] ​  ​| ​   | This method ​allows you to raise the CommittingTransaction event from a derived class  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​OpenCore()|OpenCore]] ​  ​| ​   |    | This method ​opens the RoutingSource so that it is initialized and ready to use  | +
-| {{wiki:​ProtectedMethod.gif|Protected Method}}[[#​RollbackTransactionCore()|RollbackTransactionCore]] ​  ​| ​   |    |    |+
  
-==== Public Properties ==== +== Return Value == 
-^ Name ^ Return ^ DeclaringType ^ Summary ^ +  * Type:Int32 
-| {{wiki:PublicProperty.gif|Public Property}}[[#​IsEditable|IsEditable]] ​  | Boolean ​  ​| ​   | This property returns whether the RoutingSource allows edits or is read-only. ​  | +  * Description:This method ​returns the count of the number of records ​in this RoutingSource.
-| {{wiki:PublicProperty.gif|Public Property}}[[#​IsInTransaction|IsInTransaction]] ​  | Boolean ​  ​| ​   | This property ​returns ​true if the RoutingSource is in a transaction and false if it is not.   | +
-| {{wiki:​PublicProperty.gif|Public Property}}[[#​IsOpen|IsOpen]] ​  | Boolean ​  ​| ​   | This property returns true if the RoutingSource ​is open and false if it is not  |+
  
-==== Protected Properties ==== +== Parameters ​== 
-^ Name ^ Return ^ DeclaringType ^ Summary ^+<div newline></​div>​ 
 +** {{wiki:​PublicMethod.gif|}} Open() **
  
-==== Public Events ==== +  * //This method opens the RoutingSource so that it is initialized and ready to use.// 
-^ Name ^ Event Arguments ^ DeclaringType ^ Summary ^ +== Remarks ​== 
-| {{wiki:​PublicEvent.gif|Public Event}}[[#​CommittedTransaction|CommittedTransaction]] ​  | [[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]] ​  ​| ​   | This event is raised after the CommitTransaction and the CommitTransactionCore are called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method ​is returned  | +  * //This method ​is the concrete wrapper for the abstract method OpenCore. The Open method plays an important role, as it is responsible for initializing ​the RoutingSource. Most methods on the RoutingSource will throw an exception if the state of the RoutingSource ​is not openedWhen the map draws each layer, it will open the RoutingSource as one of its first steps, then after it is finished drawing with that layer it will close itIn this way we are sure to release all resources used by the RoutingSourceWhen implementing this method, consider opening files for file-based sources, connecting to databases in the database-based sources and so onYou will get a chance to close these in the Close method ​of the RoutingSource. As this is a concrete public method that wraps a Core methodwe reserve ​the right to add events and other logic to pre- or post-process data returned by the Core version of the methodIn this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needsIf you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.//​
-| {{wiki:​PublicEvent.gif|Public Event}}[[#​CommittingTransaction|CommittingTransaction]] ​  | [[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]] ​  ​| ​   | This event is raised after the CommitTransaction ​method is calledbut before ​the CommitTransactionCore is called. This allows you access ​to the TransactionBuffer before ​the transaction is committedIt also allows ​you to cancel ​the pending commit of the transaction  |+
  
-===== Public Constructors ===== +== Return Value == 
-===== Protected Constructors ===== +  ​Type:Void 
-==== RoutingSource() ==== +  Description:N/A
-This is the default constructor for the abstract RoutingSource class. +
-=== Remarks === +
-As this method is protected, you may only add code to this method if you override it from an inheriting class. +
-=== Parameters === +
-^  Name ^  ​Type ​ ​Description ​^+
  
-[[#​Protected Constructors|Go Back]] +== Parameters ​== 
-===== Public Methods ===== +<div newline></​div>​ 
-==== AddRouteSegment(RouteSegment) ==== +** {{wiki:​PublicMethod.gif|}} Close() **
-This method adds a new RouteSegment to an existing transaction. +
-=== Remarks === +
-This method adds a new RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.The Transaction SystemYou start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   ​|+
  
-=== Parameters === +  * //This method closes the RoutingSource and releases any resources it was using.// 
- Name ^  Type ^  Description ^ +== Remarks ​== 
-| routeSegment ​  | [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]<​!-- ThinkGeo.MapSuite.Routing.RouteSegment --> ​  ​| ​This parameter represents ​the routeSegment ​that will be added to the transaction  |+  ​* //This method is the concrete wrapper for the abstract method CloseCoreThe Close method plays an important role in the life cycle of the RoutingSourceIt may be called after drawing to release any memory and other resources that were allocated since the Open method was calledIf you override the Core version of this method, it is recommended that you take the following things into account: ​This method may be called multiple times, so we suggest you write the method so that a call to a closed RoutingSource is ignored and does not generate an error. We also suggest that in the Close you free all resources that have been opened. Remember that the object ​will not be destroyed, but will be re-opened possibly in the near future.//
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#Public Methods|Go Back]] +  ​* ​Type:Void 
-==== BeginTransaction() ==== +  * Description:N/A
-This method starts a new transaction if the RoutingSource allows editing +
-=== Remarks === +
-This method is used to start a transaction,​ assuming that the RoutingSource allows editing. There are some additional prerequisites to beginning a transaction,​ such as ensuring that a transaction is not already in progress. You must also be sure that the RoutingSource has been opened.The Transaction SystemYou start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource. +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Parameters == 
-^  Name ^  Type ^  Description ^+<div newline></​div>​ 
 +** {{wiki:​PublicMethod.gif|}} GetRouteSegmentByFeatureId(String) **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //This method ​returns a RouteSegment by providing its ID in the RoutingSource.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-==== Close() ==== +  * //For the most updated Info for this topicplease check it here:http:wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureId.28String.29//​
-This method ​closes ​the RoutingSource ​and releases any resources it was using+
-=== Remarks ​=== +
-This method is the concrete wrapper ​for the abstract method CloseCore. The Close method plays an important role in the life cycle of the RoutingSource. It may be called after drawing to release any memory and other resources that were allocated since the Open method was called.If you override the Core version of this method, it is recommended that you take the following things into accountThis method may be called multiple times, so we suggest you write the method so that a call to a closed RoutingSource is ignored and does not generate an errorWe also suggest that in the Close you free all resources that have been openedRemember that the object will not be destroyed, but will be re-opened possibly in the near future. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​^+  ​Type:​[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] 
 +  Description:A RouteSegment based on a specific ID.
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#Public Methods|Go Back]] +  * //​featureId//​ 
-==== CommitTransaction() ​==== +    * Type:String 
-This method will commit the existing transaction to its underlying source of data. +    * Description:​This parameter ​is the feature ID that uniquely identifies it in the RoutingSource.
-=== Remarks === +
-This method ​is the concrete wrapper for the virtual method CommitTransactionCore. As this is the concrete version, the real work is done in the Core version of the method. It will commit the existing transaction to its underlying source of data. It will then pass back the results of the commit, including any error(s) received. Lastly, it will free up the internal memory cache of any RoutSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| [[ThinkGeo.MapSuite.Core.TransactionResult|TransactionResult]]<​!-- ThinkGeo.MapSuite.Core.TransactionResult --> ​  | The returned decimalDegreesValue of this method is a TransactionResult class, which gives you the status of the transaction you just committed. It includes how many of the updates, adds, and deletes were successful and any errors that were encountered during the committing of the transaction  |+
  
-=== Parameters === +<div newline></​div>​ 
-^  Name ^  Type ^  Description ^+** {{wiki:​PublicMethod.gif|}} GetRouteSegmentsNearestTo(BaseShape,​FeatureSource,​GeographyUnit,​Int32) **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //This method ​returns ​user defined number of Route Segments that are closest to the TargetShape.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-==== DeleteRouteSegment(String) ==== +  * //This method ​returns ​user defined number ​of Route Segments ​that are closest ​to the TargetShapeIt is important to note that the TargetShape and the FeatureSource must use the same unitsuch as feet or meters. If they do notthen the results ​will not be predictable or correct.//
-This method ​deletes ​RouteSegment from an existing transaction+
-=== Remarks ​=== +
-This method ​delete ​RouteSegment from an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.The Transaction SystemYou start by calling BeginTransaction. This allocates a collection ​of in-memory change buffers ​that are used to store changes until you commit ​the transactionSo, for example, when you call the AddDelete ​or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transactionyou can call RollbackTransaction at any time and the in-memory buffer ​will be deleted and the changes will be lostWhen you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​^  Description ^ +  ​Type:Collection<[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]> 
-| id   | String<!-- System.String --  | This string is the fature Id of the RouteSegment in the RoutingSource you wish to delete  |+  * Description:​This method returns a user defined number ​of Route Segments that are closest to the TargetShape.
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#Public Methods|Go Back]] +  ​* ​//targetShape// 
-==== Equals(Object) ​==== +    * Type:[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]] 
-=== Remarks === +    ​* ​Description:This parameter is the shape you want to find Route Segments close to.
-For the most updated Info for this topic, please check it here:<a href="​http:​//wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Routing.RoutingSource#​Equals.28Object.29"​ target="​_blank">​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​Equals.28Object.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ​+
-| Boolean<​!-- System.Boolean --> ​  ​| ​   |+
  
-=== Parameters === +  * //​featureSource//​ 
-^  Name ^  ​Type ^  Description ^ +    ​* ​Type:[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]] 
-| obj   | Object<​!-- System.Object --> ​  |    ​|+    * Description:​This parameter defines the FeatureSource that is used to get information of RouteSegments
  
-<!-- System.Object --> +  * //unitOfFeatureSource// 
-[[#Public Methods|Go Back]] +    * Type:[[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]] 
-==== GetHashCode() ==== +    ​* ​Description:This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http:​//wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Routing.RoutingSource#​GetHashCode.28.29"​ target="​_blank">​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetHashCode.28.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ​+
-| Int32<​!-- System.Int32 --> ​  ​| ​   |+
  
-=== Parameters === +  * //​numberOfItemsToFind//​ 
-^  Name ^  ​Type ^  ​Description ​^+    ​* ​Type:Int32 
 +    * Description:This parameter defines how many close Route Segments to find around the TargetShape.
  
-<!-- System.Object --> +<div newline></div> 
-[[#Public Methods|Go Back]] +** {{wiki:PublicMethod.gif|}} BeginTransaction() **
-==== GetRouteSegmentByFeatureId(String) ==== +
-This method returns a RouteSegment by providing its ID in the RoutingSource. +
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http:/​/wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureId.28String.29"​ target="​_blank">​http://wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureId.28String.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]<​!-- ThinkGeo.MapSuite.Routing.RouteSegment --> ​  | A RouteSegment based on a specific ID.   |+
  
-=== Parameters === +  * //This method starts a new transaction if the RoutingSource allows editing// 
- Name ^  Type ^  Description ^ +== Remarks ​== 
-| featureId ​  | String<​!-- System.String --> ​  ​| ​This parameter ​is the feature ID that uniquely identifies it in the RoutingSource. ​  |+  ​* //This method ​is used to start a transaction,​ assuming that the RoutingSource allows editing. There are some additional prerequisites to beginning a transaction,​ such as ensuring ​that a transaction is not already ​in progress. You must also be sure that the RoutingSource ​has been openedThe Transaction System You start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource.//​
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#Public Methods|Go Back]] +  ​* ​Type:Void 
-==== GetRouteSegmentCount() ==== +  * Description:N/A
-This method returns the count of the number of records in this RoutingSource. +
-=== Remarks === +
-This method is the concrete wrapper for the virtual method GetRouteSegmentCountCore. It will return whatever is returned by the GetRouteSegmentCountCore method, along with any additions or subtractions made if you are in a transaction and that transaction is configured to be live. To determine what the default implementation of the virtual GetRouteSegmentCountCore method is, please see the documentation for it.The default implementation of GetRouteSegmentCountCore returns 0. We strongly recommend that you provide your own implementation for this method. +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Int32<​!-- System.Int32 --> ​  | This method returns the count of the number of records in this RoutingSource. ​  |+
  
-=== Parameters === +== Parameters == 
-^  Name ^  Type ^  Description ^+<div newline></​div>​ 
 +** {{wiki:​PublicMethod.gif|}} CommitTransaction() **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //This method ​will commit the existing transaction to its underlying source ​of data.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-==== GetRouteSegmentsNearestTo(BaseShape,​ FeatureSource,​ GeographyUnit,​ Int32) ==== +  * //This method ​is the concrete wrapper for the virtual method CommitTransactionCore. As this is the concrete version, the real work is done in the Core version ​of the method. It will commit the existing transaction ​to its underlying source of data. It will then pass back the results of the commitincluding any error(s) receivedLastlyit will free up the internal memory cache of any RoutSegments added, updated ​or deletedYou will need to ensure that you have started ​transaction by calling BeginTransaction.//
-This method ​returns a user defined number ​of Route Segments that are closest to the TargetShape+
-=== Remarks ​=== +
-This method ​returns a user defined number ​of Route Segments that are closest to the TargetShape. It is important ​to note that the TargetShape and the FeatureSource must use the same unitsuch as feet or metersIf they do notthen the results will not be predictable ​or correct. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Collection<​[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]><​!-- System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Routing.RouteSegment} --> ​  | This method returns ​user defined number of Route Segments that are closest to the TargetShape  |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​^  Description ^ +  ​Type:[[ThinkGeo.MapSuite.Core.TransactionResult|TransactionResult]] 
-| targetShape ​  ​| ​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]]<!-- ThinkGeo.MapSuite.Core.BaseShape --> ​  | This parameter is the shape you want to find Route Segments close to.   | +  * Description:​The returned decimalDegreesValue ​of this method ​is a TransactionResult class, which gives you the status ​of the transaction you just committedIt includes ​how many of the updates, adds, and deletes were successful and any errors that were encountered during the committing of the transaction.
-| featureSource ​  | [[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]<​!-- ThinkGeo.MapSuite.Core.FeatureSource --> ​  | This parameter defines the FeatureSource that is used to get information ​of RouteSegments ​  | +
-| unitOfFeatureSource ​  | [[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]]<​!-- ThinkGeo.MapSuite.Core.GeographyUnit --> ​  | This parameter ​is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc  | +
-| numberOfItemsToFind ​  | Int32<​!-- System.Int32 --> ​  | This parameter defines ​how many close Route Segments to find around ​the TargetShape  |+
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#Public Methods|Go Back]] +<div newline></div
-==== GetType() ​==== +** {{wiki:​PublicMethod.gif|}} RollbackTransaction() **
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetType.28.29"​ target="​_blank"​>http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetType.28.29</a+
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Type<!-- System.Type --> ​  ​| ​   ​|+
  
-=== Parameters === +  * //This method will cancel an existing transaction. It will free up the internal memory cache of any InternalFeatures added, updated or deleted.//​ 
-^  Name ^  Type ^  Description ^+== Remarks ​== 
 +  ​* //This method will cancel an existing transaction. It will free up the internal memory cache of any RoutingSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction System You start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource.//​
  
-<!-- System.Object --> +== Return Value == 
-[[#Public Methods|Go Back]] +  ​* ​Type:Void 
-==== Open() ==== +  * Description:N/A
-This method opens the RoutingSource so that it is initialized and ready to use. +
-=== Remarks === +
-This method is the concrete wrapper for the abstract method OpenCore. The Open method plays an important role, as it is responsible for initializing the RoutingSource. Most methods on the RoutingSource will throw an exception if the state of the RoutingSource is not opened. When the map draws each layer, it will open the RoutingSource as one of its first steps, then after it is finished drawing with that layer it will close it. In this way we are sure to release all resources used by the RoutingSource.When implementing this method, consider opening files for file-based sources, connecting to databases in the database-based sources and so on. You will get a chance to close these in the Close method of the RoutingSource.As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework. +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Parameters == 
-^  Name ^  Type ^  Description ^+<div newline></​div>​ 
 +** {{wiki:​PublicMethod.gif|}} AddRouteSegment(RouteSegment) **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //This method ​adds a new RouteSegment to an existing transaction.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-==== RollbackTransaction() ==== +  * //This method ​adds a new RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction ​System You start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource.//
-This method ​will cancel ​an existing transaction. ​It will free up the internal memory cache of any InternalFeatures added, updated or deleted. +
-=== Remarks ​=== +
-This method ​will cancel ​an existing transaction. It will free up the internal memory cache of any RoutingSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.The Transaction ​SystemYou ​start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​^+  ​Type:Void 
 +  Description:N/A
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#Public Methods|Go Back]] +  ​* ​//routeSegment// 
-==== ToString() ​==== +    * Type:[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] 
-=== Remarks === +    ​* ​Description:This parameter represents the routeSegment that will be added to the transaction.
-For the most updated Info for this topic, please check it here:<a href="​http:​//wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Routing.RoutingSource#​ToString.28.29"​ target="​_blank">​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​ToString.28.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ​+
-| String<​!-- System.String --> ​  ​| ​   |+
  
-=== Parameters === +<div newline></​div>​ 
-^  Name ^  Type ^  Description ^+** {{wiki:​PublicMethod.gif|}} UpdateRouteSegment(RouteSegment) **
  
-<!-- System.Object --> +  * //This method deletes a RouteSegment from an existing transaction.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-==== UpdateRouteSegment(RouteSegment) ==== +  * //This method update a RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction ​System You start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource.//
-This method deletes a RouteSegment from an existing transaction. +
-=== Remarks ​=== +
-This method update a RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.The Transaction ​SystemYou ​start by calling BeginTransaction. This allocates a collection of in-memory change buffers that are used to store changes until you commit the transaction. So, for example, when you call the Add, Delete or Update method, the changes to the RouteSegment are stored in memory only. If for any reason you choose to abandon the transaction,​ you can call RollbackTransaction at any time and the in-memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​+  ​Type:Void 
-| routeSegment ​  | [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]<​!-- ThinkGeo.MapSuite.Routing.RouteSegment --> ​  | The RouteSegment that will be updated to an existing transaction ​  |+  Description:N/A
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#Public Methods|Go Back]] +  ​* ​//routeSegment// 
-===== Protected Methods ===== +    * Type:[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] 
-==== BeginTransactionCore() ==== +    ​* ​Description:The RouteSegment that will be updated to an existing transaction
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http:​//wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Routing.RoutingSource#​BeginTransactionCore.28.29"​ target="​_blank">​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​BeginTransactionCore.28.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ​+
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +<div newline></​div>​ 
-^  Name ^  Type ^  Description ^+** {{wiki:​PublicMethod.gif|}} DeleteRouteSegment(String) **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //This method ​deletes a RouteSegment from an existing transaction.// 
-[[#​Protected Methods|Go Back]] +== Remarks == 
-==== CloseCore() ==== +  * //This method ​delete a RouteSegment ​from an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction System You start by calling BeginTransaction. This allocates a collection of in-memory ​change buffers ​that are used to store changes until you commit ​the transactionSofor example, when you call the Add, Delete or Update ​method, the changes ​to the RouteSegment are stored in memory onlyIf for any reason you choose to abandon ​the transaction, ​you can call RollbackTransaction at any time and the in-memory buffer ​will be deleted and the changes ​will be lost. When you are ready to commit ​the transaction,​ you call CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific RoutingSource is responsible for integrating your changes into the underlying RoutingSource.//
-This method ​closes the RoutingSource and releases any resources it was using+
-=== Remarks ​=== +
-This protected virtual ​method ​is called ​from the concrete public method Close. The Close method plays an important role in the life cycle of the RoutingSource. It may be called after drawing to release any memory ​and other resources ​that were allocated since the Open method was called.If you override this methodit is recommended that you take the following things into account: This method ​may be called multiple timesso we suggest you write the method so that that a call to a closed RoutingSource is ignored and does not generate an errorWe also suggest that in the Close you free all resources that have been opened. Remember that the object ​will not be destroyed, but will be re-opened possibly in the near future. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​^+  ​Type:Void 
 +  Description:N/A
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#​Protected Methods|Go Back]] +  * //id// 
-==== CommitTransactionCore(RoutingTransactionBuffer) ​==== +    * Type:String 
-This method will commit the existing transaction to its underlying source of data. +    * Description:​This string ​is the fature Id of the RouteSegment ​in the RoutingSource you wish to delete.
-=== Remarks === +
-As this is the concrete version, ​the real work is done in the Core version of the method. It will commit the existing transaction ​to its underlying source of data. It will then pass back the results of the commit, including any error(s) received. Lastly, it will free up the internal memory cache of any RoutSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| [[ThinkGeo.MapSuite.Core.TransactionResult|TransactionResult]]<​!-- ThinkGeo.MapSuite.Core.TransactionResult --> ​  | The returned decimalDegreesValue of this method is a TransactionResult class, which gives you the status of the transaction you just committed. It includes how many of the updates, adds, and deletes were successful and any errors that were encountered during the committing of the transaction  |+
  
-=== Parameters === +<div newline></​div>​ 
-^  Name ^  Type ^  Description ^ +** {{wiki:​PublicMethod.gif|}} ToString() **
-| transactionBuffer ​  | [[ThinkGeo.MapSuite.Routing.RoutingTransactionBuffer|RoutingTransactionBuffer]]<​!-- ThinkGeo.MapSuite.Routing.RoutingTransactionBuffer --> ​  ​| ​   ​|+
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +  * //N/A// 
-[[#​Protected Methods|Go Back]] +== Remarks == 
-==== Finalize() ==== +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​ToString.28.29//
-=== Remarks ​=== +
-For the most updated Info for this topic, please check it here:<a href="http://wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​Finalize.28.29" target="​_blank">​http:​//wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​Finalize.28.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​^+  ​Type:String 
 +  Description:N/A
  
-<!-- System.Object --> +== Parameters ​== 
-[[#​Protected Methods|Go Back]] +<div newline></div
-==== GetRouteSegmentByFeatureIdCore(String) ​==== +** {{wiki:​PublicMethod.gif|}} Equals(Object) **
-This method returns a RouteSegment by providing its ID in the RoutingSource. +
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureIdCore.28String.29"​ target="​_blank"​>http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureIdCore.28String.29</a+
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| [[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]<​!-- ThinkGeo.MapSuite.Routing.RouteSegment --> ​  | A RouteSegment based on a specific ID.   |+
  
-=== Parameters === +  * //N/A// 
- Name ^  Type ^  Description ^ +== Remarks ​== 
-| featureId ​  | String<​!-- System.String --> ​  | This parameter is the feature ID that uniquely identifies ​it in the RoutingSource. ​  |+  ​* //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#Equals.28Object.29//​
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#​Protected Methods|Go Back]] +  ​* ​Type:Boolean 
-==== GetRouteSegmentCountCore() ==== +  * Description:N/A
-This method returns the count of the number of records in this RoutingSource. +
-=== Remarks === +
-This protected virtual method is called from the concrete public method GetCount. It does not take into account any transaction activity, as this is the responsibility of the concrete public method GetRouteSegmentCount. This way, as a developer, if you choose to override this method you do not have to consider transactions at all.The default implementation of GetRouteSegmentCountCore returns 0. We strongly recommend that you provide your own implementation for this method. +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Int32<​!-- System.Int32 --> ​  | This method returns the count of the number of records in this RoutingSource. ​  |+
  
-=== Parameters ​=== +== Parameters == 
-^  Name ^  ​Type ​^  ​Description ​^+  ​* //obj// 
 +    * Type:Object 
 +    * Description:N/A
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +<div newline></div> 
-[[#​Protected Methods|Go Back]] +** {{wiki:​PublicMethod.gif|}} GetHashCode() **
-==== GetRouteSegmentsNearestToCore(BaseShape,​ FeatureSource,​ GeographyUnit,​ Int32) ==== +
-This method returns a user defined number of Route Segments that are closest to the TargetShape. +
-=== Remarks === +
-This method returns a user defined number of Route Segments that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Collection<[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]><!-- System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Routing.RouteSegment--> ​  | This method returns a user defined number of Route Segments that are closest to the TargetShape. ​  |+
  
-=== Parameters === +  * //N/A// 
- Name ^  Type ^  Description ^ +== Remarks ​== 
-| targetShape ​  | [[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]]<​!-- ThinkGeo.MapSuite.Core.BaseShape --> ​  | This parameter is the shape you want to find Route Segments close to  | +  ​* //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Routing.RoutingSource#​GetHashCode.28.29//
-| featureSource ​  | [[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]<​!-- ​ThinkGeo.MapSuite.Core.FeatureSource --> ​  | This parameter defines the FeatureSource that is used to get information of RouteSegments ​  | +
-| unitOfFeatureSource ​  | [[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]]<​!-- ThinkGeo.MapSuite.Core.GeographyUnit --> ​  | This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.   | +
-| numberOfItemsToFind ​  | Int32<​!-- System.Int32 --> ​  | This parameter defines how many close Route Segments to find around the TargetShape. ​  |+
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#​Protected Methods|Go Back]] +  ​* ​Type:Int32 
-==== MemberwiseClone() ==== +  * Description:N/A
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​MemberwiseClone.28.29"​ target="​_blank">​http://​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​MemberwiseClone.28.29</​a>​ +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Object<​!-- System.Object --> ​  ​| ​   |+
  
-=== Parameters === +== Parameters == 
-^  Name ^  Type ^  Description ^+<div newline></​div>​ 
 +** {{wiki:​PublicMethod.gif|}} GetType() **
  
-<!-- System.Object --> +  * //N/A// 
-[[#​Protected Methods|Go Back]] +== Remarks ​== 
-==== OnCommittedTransaction(RoutingCommittedTransactionEventArgs) ==== +  * //For the most updated Info for this topic, please check it here:http:wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetType.28.29//
-This method allows you to raise the CommittedTransaction event from a derived class. +
-=== Remarks === +
-You can call this method from a derived class to enable ​it to raise the CommittedTransaction event. This may be useful if you plan to extend the RoutingSource and you need access to the event.Details on the event:This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.With this event, you can analyze the results of the transaction and do any cleanup code necessaryIn the event some of the records did not commit, you can handle these items hereThe TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same timeThese are useful together to try and determine what went wrong and possibly try and re-commit them.At the time of this event, you will technically be out of the current transaction. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters === +== Return Value == 
-^  Name ^  ​Type ​ ​Description ​+  ​Type:Type 
-| e   | [[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]]<​!-- ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs --> ​  | This parameter is the event arguments which define the parameters passed to the recipient of the event. ​  |+  Description:N/A
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters ​== 
-[[#​Protected Methods|Go Back]] +<div newline></​div>​ 
-==== OnCommittingTransaction(RoutingCommittingTransactionEventArgs) ​==== +==== Protected Methods ​==== 
-This method allows you to raise the CommittingTransaction event from a derived class. +** {{wiki:​ProtectedMethod.gif|}} OnCommittingTransaction(RoutingCommittingTransactionEventArgs) **
-=== Remarks ​==+
-You can call this method from a derived class to enable it to raise the CommittingTransaction event. This may be useful if you plan to extend the RoutingSource and you need access to the event.Details on the event:This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending transaction. The TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you either add, remove or modify transactions.In the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before the TransactionCore code is run, which is where the records are actually committed. Calling the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it. +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   ​|+
  
-=== Parameters === +  * //This method allows you to raise the CommittingTransaction event from a derived class.// 
- Name ^  Type ^  Description ^ +== Remarks ​== 
-| e   | [[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]]<​!-- ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs --> ​  ​| ​This parameter is the event arguments ​which define ​the parameters passed to the recipient of the event  |+  ​* //You can call this method from a derived class to enable it to raise the CommittingTransaction eventThis may be useful if you plan to extend the RoutingSource and you need access to the eventDetails on the event: This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committedIt also allows you to cancel the pending transactionThe TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you either add, remove or modify transactionsIn the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before ​the TransactionCore code is run, which is where the records are actually committed. Calling ​the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it.//
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#​Protected Methods|Go Back]] +  ​* ​Type:Void 
-==== OpenCore() ==== +  * Description:N/A
-This method opens the RoutingSource so that it is initialized and ready to use. +
-=== Remarks === +
-This protected virtual method is called from the concrete public method Open. The Open method plays an important role, as it is responsible for initializing the RoutingSource. Most methods on the RoutingSource will throw an exception if the state of the RoutingSource is not opened. When the map draws each layer, it will open the RoutingSource as one of its first steps, then after it is finished drawing with that layer it will close it. In this way we are sure to release all resources used by the RoutingSource.When implementing this virtual method, consider opening files for file-based sources, connecting to databases in the database-based sources and so on. You will get a chance to close these in the Close method of the RoutingSource. +
-=== Return Value === +
-^ Return ​Type Description ​+
-| Void<!-- System.Void --> ​  ​| ​   |+
  
-=== Parameters ​=== +== Parameters == 
-^  Name ^  ​Type ​^  ​Description ​^+  ​* //e// 
 +    * Type:​[[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]] 
 +    * Description:This parameter is the event arguments which define the parameters passed to the recipient of the event.
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +<div newline></div> 
-[[#​Protected Methods|Go Back]] +** {{wiki:ProtectedMethod.gif|}} OnCommittedTransaction(RoutingCommittedTransactionEventArgs) **
-==== RollbackTransactionCore() ==== +
-=== Remarks === +
-For the most updated Info for this topic, please check it here:<a href="​http:/​/wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​RollbackTransactionCore.28.29"​ target="​_blank">​http://wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​RollbackTransactionCore.28.29</​a>​ +
-=== Return Value === +
-^ Return Type ^ Description ^ +
-| Void<!-- System.Void --> ​  ​| ​   ​|+
  
-=== Parameters === +  * //This method allows you to raise the CommittedTransaction event from a derived class.// 
-^  Name ^  Type ^  Description ^+== Remarks ​== 
 +  ​* //You can call this method from a derived class to enable it to raise the CommittedTransaction event. This may be useful if you plan to extend the RoutingSource and you need access to the event. Details on the event: This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned. With this event, you can analyze the results of the transaction and do any cleanup code necessary. In the event some of the records did not commit, you can handle these items here. The TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same time. These are useful together to try and determine what went wrong and possibly try and re-commit them. At the time of this event, you will technically be out of the current transaction.//​
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +== Return Value == 
-[[#​Protected Methods|Go Back]] +  ​* ​Type:Void 
-===== Public Properties ===== +  * Description:​N/​A
-==== IsEditable ==== +
-This property returns whether the RoutingSource allows edits or is read-only. +
-=== Remarks === +
-This property is useful to check if a specific RoutingSource accepts editing. If you call BeginTransaction and this property is false, then an exception will be raised.For developers who are creating or extending a RoutingSource,​ it is expected that you override this virtual method if the new RoutingSource you are creating allows edits. +
-=== Return Value === +
-^ Return ​Type ^ +
-| Boolean<​!-- System.Boolean --> ​  |+
  
-<​!-- ​ThinkGeo.MapSuite.Routing.RoutingSource --> +== Parameters == 
-[[#Public Properties|Go Back]] +  * //e// 
-==== IsInTransaction ​==== +    * Type:[[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]] 
-This property ​returns ​true if the RoutingSource is in a transaction ​and false if it is not. +    * Description:​This parameter is the event arguments which define the parameters passed to the recipient of the event. 
-=== Remarks === + 
-To enter transactionyou must first call the BeginTransaction ​method of the RoutingSource. It is possible ​that some RoutingSource are read-only ​and do not allow editsTo end a transaction, ​you must either call CommitTransaction ​or RollbackTransaction+<div newline></​div>​ 
-=== Return Value === +** {{wiki:​ProtectedMethod.gif|}} GetRouteSegmentCountCore() ** 
-Return Type ^ + 
-Boolean<!-- System.Boolean --  ​|+  * //This method returns the count of the number of records in this RoutingSource.//​ 
 +== Remarks ​== 
 +  * //This protected virtual method is called from the concrete public method GetCount. It does not take into account any transaction activity, as this is the responsibility of the concrete public method GetRouteSegmentCount. This way, as a developer, if you choose to override this method you do not have to consider transactions at all. The default implementation of GetRouteSegmentCountCore returns 0. We strongly recommend that you provide your own implementation for this method.// 
 + 
 +== Return Value == 
 +  * Type:​Int32 
 +  * Description:​This method ​returns ​the count of the number of records in this RoutingSource. 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} OpenCore() ** 
 + 
 +  * //This method opens the RoutingSource so that it is initialized and ready to use.// 
 +== Remarks == 
 +  * //This protected virtual method is called from the concrete public method Open. The Open method plays an important role, as it is responsible for initializing the RoutingSource. Most methods on the RoutingSource will throw an exception ​if the state of the RoutingSource is not opened. When the map draws each layer, it will open the RoutingSource as one of its first steps, then after it is finished drawing with that layer it will close it. In this way we are sure to release all resources used by the RoutingSource. When implementing this virtual method, consider opening files for file-based sources, connecting to databases ​in the database-based sources and so on. You will get chance to close these in the Close method of the RoutingSource.//​ 
 + 
 +== Return Value == 
 +  * Type:Void 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} CloseCore() ** 
 + 
 +  * //This method closes the RoutingSource ​and releases any resources ​it was using.// 
 +== Remarks == 
 +  * //This protected virtual method ​is called from the concrete public method Close. The Close method plays an important role in the life cycle of the RoutingSource. It may be called after drawing to release any memory and other resources that were allocated since the Open method was called. If you override this method, it is recommended that you take the following things into account: This method may be called multiple times, so we suggest you write the method so that that a call to a closed RoutingSource is ignored and does not generate an errorWe also suggest that in the Close you free all resources that have been opened. Remember that the object will not be destroyed, but will be re-opened possibly in the near future.// 
 + 
 +== Return Value == 
 +  * Type:Void 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} GetRouteSegmentByFeatureIdCore(String) ** 
 + 
 +  * //This method returns a RouteSegment by providing its ID in the RoutingSource.//​ 
 +== Remarks == 
 +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​GetRouteSegmentByFeatureIdCore.28String.29//​ 
 + 
 +== Return Value == 
 +  * Type:​[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]] 
 +  * Description:​A RouteSegment based on specific ID. 
 + 
 +== Parameters == 
 +  * //​featureId//​ 
 +    * Type:​String 
 +    * Description:​This parameter is the feature ID that uniquely identifies it in the RoutingSource. 
 + 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} GetRouteSegmentsNearestToCore(BaseShape,FeatureSource,​GeographyUnit,​Int32) ** 
 + 
 +  * //This method returns a user defined number of Route Segments that are closest to the TargetShape.//​ 
 +== Remarks == 
 +  * //​This ​method ​returns a user defined number ​of Route Segments that are closest to the TargetShape. It is important to note that the TargetShape ​and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct.// 
 + 
 +== Return Value == 
 +  * Type:​Collection<​[[ThinkGeo.MapSuite.Routing.RouteSegment|RouteSegment]]>​ 
 +  * Description:​This method returns ​user defined number of Route Segments that are closest to the TargetShape. 
 + 
 +== Parameters == 
 +  * //​targetShape//​ 
 +    * Type:​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]] 
 +    * Description:​This parameter is the shape you want to find Route Segments close to. 
 + 
 +  * //​featureSource//​ 
 +    * Type:​[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]] 
 +    * Description:​This parameter defines the FeatureSource that is used to get information of RouteSegments 
 + 
 +  * //​unitOfFeatureSource//​ 
 +    * Type:​[[ThinkGeo.MapSuite.Core.GeographyUnit|GeographyUnit]] 
 +    * Description:​This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc. 
 + 
 +  * //​numberOfItemsToFind//​ 
 +    * Type:​Int32 
 +    * Description:​This parameter defines how many close Route Segments to find around the TargetShape. 
 + 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} BeginTransactionCore() ** 
 + 
 +  * //N/A// 
 +== Remarks == 
 +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​BeginTransactionCore.28.29//​ 
 + 
 +== Return Value == 
 +  * Type:Void 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} CommitTransactionCore(RoutingTransactionBuffer) ** 
 + 
 +  * //This method will commit the existing ​transaction ​to its underlying source of data.// 
 +== Remarks == 
 +  * //As this is the concrete versionthe real work is done in the Core version of the method. It will commit the existing transaction to its underlying source of data. It will then pass back the results of the commit, including any error(s) received. Lastly, it will free up the internal memory cache of any RoutSegments added, updated ​or deletedYou will need to ensure that you have started a transaction by calling BeginTransaction.//​ 
 + 
 +== Return Value =
 +  * Type:​[[ThinkGeo.MapSuite.Core.TransactionResult|TransactionResult]] 
 +  * Description:​The returned decimalDegreesValue of this method is a TransactionResult class, which gives you the status of the transaction you just committed. It includes how many of the updates, adds, and deletes were successful and any errors that were encountered during the committing of the transaction. 
 + 
 +== Parameters ​== 
 +  * //​transactionBuffer//​ 
 +    * Type:​[[ThinkGeo.MapSuite.Routing.RoutingTransactionBuffer|RoutingTransactionBuffer]] 
 +    * Description:​N/​A 
 + 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} RollbackTransactionCore() ** 
 + 
 +  * //N/A// 
 +== Remarks == 
 +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​RollbackTransactionCore.28.29//​ 
 + 
 +== Return ​Value == 
 +  * Type:Void 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} Finalize() ** 
 + 
 +  * //N/A// 
 +== Remarks == 
 +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​Finalize.28.29//​ 
 + 
 +== Return Value == 
 +  * Type:Void 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +** {{wiki:​ProtectedMethod.gif|}} MemberwiseClone() ** 
 + 
 +  * //N/A// 
 +== Remarks == 
 +  * //For the most updated Info for this topic, please check it here:​http:​wiki.thinkgeo.com/​wiki/​ThinkGeo.MapSuite.Routing.RoutingSource#​MemberwiseClone.28.29//​ 
 + 
 +== Return Value == 
 +  * Type:​Object 
 +  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +==== Public Properties ==== 
 +** {{wiki:​PublicProperty.gif|}} IsOpen **
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> 
-[[#Public Properties|Go Back]] 
-==== IsOpen ==== 
 This property returns true if the RoutingSource is open and false if it is not. This property returns true if the RoutingSource is open and false if it is not.
-=== Remarks ​===+== Remarks ==
 Various methods on the RoutingSource require that it be in an open state. If one of those methods is called when the state is not open, then the method will throw an exception. To enter the open state, you must call the RoutingSource'​s Open method. Various methods on the RoutingSource require that it be in an open state. If one of those methods is called when the state is not open, then the method will throw an exception. To enter the open state, you must call the RoutingSource'​s Open method.
-=== Return Value === +== Return Value == 
-^ Return ​Type +  ​* ​Type:Boolean
-| Boolean<​!-- System.Boolean ​--> ​  |+
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +** {{wiki:​PublicProperty.gif|}} IsInTransaction **
-[[#Public Properties|Go Back]] +
-===== Protected Properties ===== +
-===== Public Events ===== +
-==== CommittedTransaction ==== +
-This event is raised after the CommitTransaction and the CommitTransactionCore are called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned. +
-=== Remarks === +
-This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.With this event, you can analyse the results of the transaction and do any cleanup code necessary. In the event some of the records did not commit, you can handle those items here. The TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same time. These are useful together to try and determine what went wrong and possibly try and re-commit them.At the time of this event you will technically be out of the current transaction. +
-=== Event Arguments === +
-^ Event Arguments ^ +
-| [[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]]<​!-- ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs --> ​  |+
  
-<!-- ThinkGeo.MapSuite.Routing.RoutingSource --> +This property returns true if the RoutingSource is in a transaction and false if it is not. 
-[[#Public Events|Go Back]] +== Remarks == 
-==== CommittingTransaction ​====+To enter a transaction,​ you must first call the BeginTransaction method of the RoutingSource. It is possible that some RoutingSource are read-only and do not allow editsTo end a transaction,​ you must either call CommitTransaction or RollbackTransaction. 
 +== Return Value == 
 +  * Type:​Boolean 
 + 
 +** {{wiki:​PublicProperty.gif|}} IsEditable ** 
 + 
 +This property returns whether the RoutingSource ​allows edits or is read-only. 
 +== Remarks == 
 +This property is useful to check if a specific RoutingSource accepts editing. If you call BeginTransaction and this property is false, then an exception will be raised. For developers who are creating or extending a RoutingSource,​ it is expected that you override this virtual method if the new RoutingSource you are creating allows edits. 
 +== Return Value == 
 +  * Type:​Boolean 
 + 
 +==== Protected Properties ==== 
 +** {{wiki:​ProtectedProperty.gif|}} kRQ= ** 
 + 
 +N/A 
 +== Remarks == 
 +N/A 
 +== Return Value == 
 +  * Type:[[ThinkGeo.MapSuite.Routing.RoutingTransactionBuffer|RoutingTransactionBuffer]] 
 + 
 +==== Public Events ​==== 
 +** {{wiki:​PublicEvent.gif|}} CommittingTransaction **
 This event is raised after the CommitTransaction method is called, but before the CommitTransactionCore is called. This allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending commit of the transaction. This event is raised after the CommitTransaction method is called, but before the CommitTransactionCore is called. This allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending commit of the transaction.
-=== Remarks ​=== +== Remarks == 
-This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending transaction. The TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you to either add, remove or modify transactions.In the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before the TransactionCore code is run, which is where the records are actually committed. Calling the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it. +This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending transaction. The TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you to either add, remove or modify transactions. In the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before the TransactionCore code is run, which is where the records are actually committed. Calling the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it. 
-=== Event Arguments === + 
-Event Arguments ​+Event Arguments:[[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]] 
-[[ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs|RoutingCommittingTransactionEventArgs]]<!-- ThinkGeo.MapSuite.Routing.RoutingCommittingTransactionEventArgs -->   |+ 
 +** {{wiki:​PublicEvent.gif|}} CommittedTransaction ** 
 +This event is raised after the CommitTransaction and the CommitTransactionCore are called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned. 
 +== Remarks == 
 +This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returnedWith this event, you can analyse the results of the transaction and do any cleanup code necessary. In the event some of the records did not commit, you can handle those items here. The TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same time. These are useful together to try and determine what went wrong and possibly try and re-commit them. At the time of this event you will technically be out of the current transaction.
  
-<​!-- ​ThinkGeo.MapSuite.Routing.RoutingSource --> +Event Arguments:​[[ThinkGeo.MapSuite.Routing.RoutingCommittedTransactionEventArgs|RoutingCommittedTransactionEventArgs]]
-[[#Public Events|Go Back]]+
  
-__NOTOC__ 
-[[Category:​MapSuiteRouting]] 
-[[Category:​ThinkGeo.MapSuite.Routing]] 
-[[Category:​UpdateDocumentation]] 
  
thinkgeo.mapsuite.routing.routingsource.1441942309.txt.gz · Last modified: 2015/09/11 03:31 by admin