void _speakerClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                string stringArray = e.Result.Substring(12, e.Result.Length - 13);

                ReportSpeakerProgress("Reading data...", 70);
                List<SpeakerDto> speakers;
                try
                {
                    speakers = JsonConvert.DeserializeObject<List<SpeakerDto>>(stringArray);
                }
                catch (JsonReaderException ex)
                {
                    NetworkWentBoom();
                    return;
                }

                ReportSpeakerProgress("Preparing to save...", 75);

                ConferenceDataContext localDc = new ConferenceDataContext("isostore:/conference.sdf");

                // make a db if it ain't there
                if (!localDc.DatabaseExists())
                    localDc.CreateDatabase();

                ReportSpeakerProgress("Clearing existing data...", 80);
                int c = localDc.Speakers.Count();

                localDc.SessionTags.DeleteAllOnSubmit(localDc.SessionTags);
                localDc.Tags.DeleteAllOnSubmit(localDc.Tags);
                localDc.SessionSpeakers.DeleteAllOnSubmit(localDc.SessionSpeakers);
                localDc.Speakers.DeleteAllOnSubmit(localDc.Speakers);
                localDc.SubmitChanges();

                ReportSpeakerProgress("Saving to device...", 85);
                var speakerlist = speakers.Select(s => new Speaker
                {
                    Bio = s.bio,
                    Blog = s.blog,
                    CreatedAt = s.created_at,
                    Email = s.email,
                    FirstName = s.first_name,
                    LastName = s.last_name,
                    Location = s.location,
                    Picture = s.picture,
                    SpeakerId = s.id,
                    Twitter = s.twitter,
                    Website = s.website,
                    UpdatedAt = s.updated_at,
                    SessionSpeakers = new EntitySet<SessionSpeakers>()
                }).ToList();

                speakerlist.Add(new Speaker { FirstName = "TBD", SessionSpeakers = new EntitySet<SessionSpeakers>(), CreatedAt=DateTime.Now, UpdatedAt=DateTime.Now });

                foreach (var spkr in speakerlist)
                {
                    localDc.Speakers.InsertOnSubmit(spkr);
                    localDc.SubmitChanges();
                }

                ReportSpeakerProgress("Speakers downloaded and saved.", 100);

                _client = new WebClient();
                UpdateCachedSessions();
            }
            else
            {
                NetworkWentBoom();
            }
        }
 public void RefreshData()
 {
     Speakers = null;
     ConferenceDataContext dc = new ConferenceDataContext("isostore:/conference.sdf");
     if (dc.DatabaseExists())
         Speakers = dc.Speakers.OrderBy(s => s.FirstName).ToList();
 }
        public void RefreshData()
        {
            Sessions = null;
            ConferenceDataContext dc = new ConferenceDataContext("isostore:/conference.sdf");

            if (dc.DatabaseExists())
            {
                Sessions = dc.Sessions.OrderBy(r => r.Title).ToList();
                Tags =  dc.Tags.ToList().OrderBy(t => t.Title).ToList();
            }

            RefreshSavedSessions(dc);
        }
        void _speakerClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                string stringArray = e.Result.Substring(12, e.Result.Length - 13);

                ReportSpeakerProgress("Reading data...", 70);
                List <SpeakerDto> speakers;
                try
                {
                    speakers = JsonConvert.DeserializeObject <List <SpeakerDto> >(stringArray);
                }
                catch (JsonReaderException ex)
                {
                    NetworkWentBoom();
                    return;
                }

                ReportSpeakerProgress("Preparing to save...", 75);

                ConferenceDataContext localDc = new ConferenceDataContext("isostore:/conference.sdf");

                // make a db if it ain't there
                if (!localDc.DatabaseExists())
                {
                    localDc.CreateDatabase();
                }

                ReportSpeakerProgress("Clearing existing data...", 80);
                int c = localDc.Speakers.Count();

                localDc.SessionTags.DeleteAllOnSubmit(localDc.SessionTags);
                localDc.Tags.DeleteAllOnSubmit(localDc.Tags);
                localDc.SessionSpeakers.DeleteAllOnSubmit(localDc.SessionSpeakers);
                localDc.Speakers.DeleteAllOnSubmit(localDc.Speakers);
                localDc.SubmitChanges();

                ReportSpeakerProgress("Saving to device...", 85);
                var speakerlist = speakers.Select(s => new Speaker
                {
                    Bio             = s.bio,
                    Blog            = s.blog,
                    CreatedAt       = s.created_at,
                    Email           = s.email,
                    FirstName       = s.first_name,
                    LastName        = s.last_name,
                    Location        = s.location,
                    Picture         = s.picture,
                    SpeakerId       = s.id,
                    Twitter         = s.twitter,
                    Website         = s.website,
                    UpdatedAt       = s.updated_at,
                    SessionSpeakers = new EntitySet <SessionSpeakers>()
                }).ToList();

                speakerlist.Add(new Speaker {
                    FirstName = "TBD", SessionSpeakers = new EntitySet <SessionSpeakers>(), CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now
                });

                foreach (var spkr in speakerlist)
                {
                    localDc.Speakers.InsertOnSubmit(spkr);
                    localDc.SubmitChanges();
                }

                ReportSpeakerProgress("Speakers downloaded and saved.", 100);

                _client = new WebClient();
                UpdateCachedSessions();
            }
            else
            {
                NetworkWentBoom();
            }
        }