Calls ISnapshotStrategy<TAuthenticationToken>.IsSnapshotable on SnapshotStrategy If the TAggregateRoot  is snapshot-able ISnapshotStore.Get<TAggregateRoot> is called on SnapshotStore. The Restore method is then called on 
- Template Parameters
 - 
  
    | TAggregateRoot | The Type of the IAggregateRoot<TAuthenticationToken>. | 
  
   
- Parameters
 - 
  
    | id | The identifier of the IAggregateRoot<TAuthenticationToken> to restore, since the aggregate  may be completely uninitialised. | 
    | aggregate | The TAggregateRoot  | 
  
   
- Returns
 - -1 if no restoration was made, otherwise version number the TAggregateRoot  was rehydrated to.
 
There may be more events after the snapshot that still need to rehydrated into the TAggregateRoot  after restoration.