public void RestoreState(IDictionary <string, object> storedState) { object stateAsString; Dictionary <string, object> collections; if (storedState.TryGetValue("DataServiceState", out stateAsString)) { var dsState = DataServiceState.Deserialize((string)stateAsString); this._context = dsState.Context as OratorEntities; collections = dsState.RootCollections; if (collections != null) { if (collections.ContainsKey("Events")) { this.Events = collections["Events"] as DataServiceCollection <Event>; if (collections.ContainsKey("Sessions")) { this.Sessions = collections["Sessions"] as DataServiceCollection <Session>; if (collections.ContainsKey("Speakers")) { this.Speakers = collections["Speakers"] as DataServiceCollection <SessionSpeaker>; } if (collections.ContainsKey("SessionFiles")) { this.SessionFiles = collections["SessionFiles"] as DataServiceCollection <SessionFile>; } } } } // Restore entity properties from the stored URI. _context.TryGetEntity <Session>(storedState["CurrentSession"] as Uri, out _currentSession); _context.TryGetEntity <Event>(storedState["CurrentEvent"] as Uri, out _currentEvent); _context.TryGetEntity <SessionSpeaker>(storedState["SingleSpeaker"] as Uri, out _singleSpeaker); // Restore other non-entity properties. this.TotalSessionCount = (int)storedState["TotalSessionCount"]; this.Message = (string)storedState["Message"]; this.CountMessage = (string)storedState["CountMessage"]; this.QueryInfo = (QueryHelper)storedState["QueryInfo"]; this.SessionCategories = (List <string>)storedState["SessionCategories"]; this.SessionDates = (List <string>)storedState["SessionDates"]; this.SessionTracks = (List <string>)storedState["SessionTracks"]; } }
// Define a base paged LINQ query for sessions. //DataServiceQuery<Session> sessionsQuery; public MainViewModel() { // Instantiate the context and binding collection. _context = new OratorEntities(_rootUri); }