/// <summary> /// Initializes a new instance of the SessionViewModel class. /// </summary> public SessionViewModel() { Messenger.Default.Register<SessionSelectionChangedMessage>(this, delegate(SessionSelectionChangedMessage message) { this.Session = message.Session; }); if (IsInDesignMode) { Session = new Session { Title = "Some Really Big Long Title", TagList = "FOO, ASP.NET, MICROSOFT", Room = "Pootzy", Abstract = @"<p>Some <b>great</b> stuff in this one!</p><p>Read all about the great stuff that is great and plus it's not bad too (so, it's really awesome!)</p>" //SessionSpeakers = new System.Data.Linq.EntitySet<SessionSpeakers>() { new SessionSpeakers { Session = Session, Speaker = new Speaker { FirstName = "Jar Jar", LastName = "Binks" } } } }; } else { // Code runs "for real": Connect to service, etc... } }
internal void SendSessionNavigatingMessage(Session session) { Messenger.Default.Send<SessionSelectionChangedMessage>(new SessionSelectionChangedMessage { Session = session }); }
void SessionDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Error == null) { string stringArray = e.Result.Substring(12, e.Result.Length - 13); ReportSessionProgress("Reading data...", 80); List<SessionDto> sessions = JsonConvert.DeserializeObject<List<SessionDto>>(stringArray); ReportSessionProgress("Preparing to save data...", 85); ConferenceDataContext dc = new ConferenceDataContext("isostore:/conference.sdf"); dc.Sessions.DeleteAllOnSubmit(dc.Sessions); dc.SubmitChanges(); ReportSessionProgress("Saving to device...", 90); List<Session> sessionList = new List<Session>(); foreach (var ssn in sessions.OrderBy(r=>r.title)) { // check to see if the tags exist already, if not add them foreach (var tag in ssn.tags) { if (dc.Tags.Where(t=>t.Title == tag).Count() == 0) { dc.Tags.InsertOnSubmit(new Tag { Title = tag, SessionTags = new EntitySet<SessionTags>() }); dc.SubmitChanges(); } } // create a db version of the record Session s = new Session { Abstract = ssn.@abstract, Finish = ssn.finish, Room = ssn.room, SessionId = ssn.id, Start = ssn.start, TagList = string.Join(", ", ssn.tags).ToUpper(), Title = ssn.title, SessionSpeakers = new EntitySet<SessionSpeakers>(), SessionTags = new EntitySet<SessionTags>() }; // update the db dc.Sessions.InsertOnSubmit(s); dc.SubmitChanges(); // build up the speaker list foreach (int speakerId in ssn.speakers) { Speaker speaker = dc.Speakers.Where(sp => sp.SpeakerId == speakerId).First(); s.SessionSpeakers.Add(new SessionSpeakers { Speaker = speaker, Session = s }); dc.SubmitChanges(); } // default is a speaker if none are present if (s.SessionSpeakers.Count == 0) s.SessionSpeakers.Add(new SessionSpeakers { Session = s, Speaker = dc.Speakers.Where(k => k.FirstName == "TBD").First() }); // build up the tag list foreach (var item in ssn.tags) { Tag tag = dc.Tags.Where(t => t.Title == item).First(); s.SessionTags.Add(new SessionTags { Session = s, Tag = tag }); dc.SubmitChanges(); } } ReportSessionProgress("Sessions downloaded and saved.", 95); int sessionCount = dc.Sessions.Count(); int speakersCount = dc.Speakers.Count(); ReportCompletedRefresh(sessionCount, speakersCount); dc.Dispose(); dc = null; } else { NetworkWentBoom(); } }