private async void AddFeed(RoutedEventArgs e) { // Hides browser otherwise dialog gets behind it IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); var FeedText = await _dialogCoordinator.ShowInputAsync(this, "Add Feed", "Enter the URL of the feed:"); if (FeedText != null) { string errMsg = null; try { Uri feedUri = new Uri(FeedText); Data.Feed f = new Data.Feed(); f.Location = feedUri; f.UpdateFromUri(true, RetentionDays); f.Save(true); InitializeData(true); } catch (Exception ex) { errMsg = ex.Message; } if (errMsg != null) { await _dialogCoordinator.ShowMessageAsync(this, "Add Feed", "Unable to create a feed for the supplied URL: " + errMsg); } } IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); }
internal static FeedInfo FetchFeedInfo(Data.Feed data) { var result = new FeedInfo(); result.Fetch(data); return(result); }
private void MarkFeedRead(RoutedEventArgs e) { if (_selectedNode == null) { return; } SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; if (tvm.Node is Model.Feed) { Model.Feed selectedFeed = (Model.Feed)tvm.Node; Data.Feed df = new Data.Feed(selectedFeed); df.MarkAllRead(); } else if (tvm.Node is Model.Host) { Model.Host selectedHost = (Model.Host)tvm.Node; Data.Host dh = new Data.Host(selectedHost); dh.MarkAllRead(); } else { return; } foreach (Article a in Articles) { a.Unread = false; } }
protected void Update(Data.Feed data) { if (this.IsSelfDirty) { data.Type = this.ReadProperty(TypeProperty); data.Data = this.ReadProperty(DataProperty); } }
protected void Insert(Data.Feed data) { data.FeedId = this.ReadProperty(FeedIdProperty); data.CreatedBy = ((BusinessIdentity)Csla.ApplicationContext.User.Identity).UserId; data.CreatedDate = DateTime.Now; this.Update(data); }
private void Fetch(Data.Feed data) { this.LoadProperty(FeedIdProperty, data.FeedId); this.LoadProperty(TypeProperty, data.Type); this.LoadProperty(DataProperty, data.Data); this.LoadProperty(CreatedByProperty, data.CreatedBy); this.LoadProperty(CreatedByEmailProperty, data.CreatedByUser.Email); this.LoadProperty(CreatedByNameProperty, data.CreatedByUser.Name); this.LoadProperty(CreatedDateProperty, data.CreatedDate); }
// GET api/values public string Get() { var feedBll = new Data.Feed(); //return new HttpResponseMessage() //{ // Content = new StringContent(JArray.FromObject(feedBll.GetFeedList()).ToString(), Encoding.UTF8, "application/json") //}; return(_javaScriptSerializer.Serialize(feedBll.GetFeedList())); }
protected override void DataPortal_DeleteSelf() { using (var ctx = Csla.Data.ObjectContextManager <ApplicationEntities> .GetManager(Database.ApplicationConnection, false)) { var data = new Data.Feed { FeedId = this.ReadProperty(FeedIdProperty) }; ctx.ObjectContext.Feeds.DeleteObject(data); ctx.ObjectContext.SaveChanges(); } }
protected override void DataPortal_DeleteSelf() { using (var ctx = Csla.Data.ObjectContextManager<ApplicationEntities> .GetManager(Database.ApplicationConnection, false)) { var data = new Data.Feed { FeedId = this.ReadProperty(FeedIdProperty) }; ctx.ObjectContext.Feeds.DeleteObject(data); ctx.ObjectContext.SaveChanges(); } }
private async void DeleteFeed(RoutedEventArgs e) { if (_selectedNode == null) { return; } SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; Model.Feed selectedFeed = null; if (tvm.Node is Model.Feed) { selectedFeed = (Model.Feed)tvm.Node; } else { return; } // Hides browser otherwise dialog gets behind it IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MessageDialogResult result = await _dialogCoordinator.ShowMessageAsync(this, "Delete Feed", "This action also deletes all downloaded articles and cannot be undone. Are you sure?", MessageDialogStyle.AffirmativeAndNegative); if (result == MessageDialogResult.Affirmative) { string errMsg = null; try { Data.Feed feed = new Data.Feed(selectedFeed); feed.Delete(); } catch (Exception ex) { errMsg = ex.Message; } if (errMsg != null) { await _dialogCoordinator.ShowMessageAsync(this, "Edit Feed", "Unable to edit feed with the supplied URL: " + errMsg); } } IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); InitializeData(true); }
protected override void DataPortal_Insert() { using (var ctx = Csla.Data.ObjectContextManager <ApplicationEntities> .GetManager(Database.ApplicationConnection, false)) { var data = new Data.Feed(); this.Insert(data); ctx.ObjectContext.AddToFeeds(data); ctx.ObjectContext.SaveChanges(); this.LoadProperty(FeedIdProperty, data.FeedId); this.LoadProperty(CreatedByProperty, data.CreatedBy); this.LoadProperty(CreatedDateProperty, data.CreatedDate); } }
protected override void DataPortal_Insert() { using (var ctx = Csla.Data.ObjectContextManager<ApplicationEntities> .GetManager(Database.ApplicationConnection, false)) { var data = new Data.Feed(); this.Insert(data); ctx.ObjectContext.AddToFeeds(data); ctx.ObjectContext.SaveChanges(); this.LoadProperty(FeedIdProperty, data.FeedId); this.LoadProperty(CreatedByProperty, data.CreatedBy); this.LoadProperty(CreatedDateProperty, data.CreatedDate); } }
private async void ImportOPML(RoutedEventArgs e) { try { OPML opml = new OPML(); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = false; openFileDialog.DefaultExt = ".opml"; openFileDialog.Filter = "OPML Files (*.opml)|*.opml"; Exception exc = null; if (openFileDialog.ShowDialog() == true) { List <Feed> t = opml.Import(openFileDialog.FileName); foreach (Feed f in t) { try { Data.Feed feed = new Data.Feed(f); feed.Location = f.Location; feed.Save(false); } catch (Exception ee) { exc = ee; } } // Reload tree InitializeData(true); await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "OPML imported successfully. Allow some minutes to let feed titles update from the RSS feed."); // Update details from the uri Task updaterTask = Task.Factory.StartNew(async() => { _updaterInPause = true; foreach (Feed f in t) { try { Data.Feed feed = new Data.Feed(f); feed.Location = f.Location; feed.UpdateFromUri(true, RetentionDays); feed.Save(true); } catch (Exception ee) { exc = ee; } } _updaterInPause = false; InitializeData(true); if (exc != null) { await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "Unable to update feeds: " + exc.Message); } }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); if (exc != null) { throw exc; } } } catch (Exception ex) { IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "Unable to import: " + ex.Message); } }
private async void DeleteFeed(RoutedEventArgs e) { if (_selectedNode == null) return; SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; Model.Feed selectedFeed = null; if (tvm.Node is Model.Feed) { selectedFeed = (Model.Feed)tvm.Node; } else return; // Hides browser otherwise dialog gets behind it IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MessageDialogResult result = await _dialogCoordinator.ShowMessageAsync(this, "Delete Feed", "This action also deletes all downloaded articles and cannot be undone. Are you sure?", MessageDialogStyle.AffirmativeAndNegative); if (result == MessageDialogResult.Affirmative) { string errMsg = null; try { Data.Feed feed = new Data.Feed(selectedFeed); feed.Delete(); } catch (Exception ex) { errMsg = ex.Message; } if (errMsg != null) { await _dialogCoordinator.ShowMessageAsync(this, "Edit Feed", "Unable to edit feed with the supplied URL: " + errMsg); } } IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); InitializeData(true); }
private async void EditFeed(RoutedEventArgs e) { if (_selectedNode == null) return; SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; Model.Feed selectedFeed = null; if (tvm.Node is Model.Feed) { selectedFeed = (Model.Feed)tvm.Node; } else { if (tvm.Node is Model.Host) { try { Model.Host selectedHost = (Model.Host)tvm.Node; IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MetroDialogSettings diagSettings = new MetroDialogSettings(); diagSettings.DefaultText = selectedHost.Zoom.ToString(); var ZoomLevel = await _dialogCoordinator.ShowInputAsync(this, "Set Zoom Level", "Enter the desired zoom level for this host: ", diagSettings); int prevZoom = selectedHost.Zoom; selectedHost.Zoom = Int32.Parse(ZoomLevel.ToString()); Data.Host dh = new Data.Host(selectedHost); dh.Save(); if (prevZoom != selectedHost.Zoom) { var msg = new SendSetZoomMessage(selectedHost.Zoom); msg.SetImmediately = true; Messenger.Default.Send<SendSetZoomMessage>(msg); } } catch (Exception ex) { await _dialogCoordinator.ShowMessageAsync(this, "Set Zoom Level", "Unable to set zoom: " + ex.Message); } finally { IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); } } return; } // Hides browser otherwise dialog gets behind it IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MetroDialogSettings dialogSettings = new MetroDialogSettings(); dialogSettings.DefaultText = selectedFeed.Location.ToString(); var FeedText = await _dialogCoordinator.ShowInputAsync(this, "Edit feed", "Enter the URL of the feed:", dialogSettings); if (FeedText != null) { string errMsg = null; try { Uri feedUri = new Uri(FeedText); Data.Feed f = new Data.Feed(selectedFeed); f.Location = feedUri; f.UpdateFromUri(true, RetentionDays); f.Save(true); InitializeData(true); } catch (Exception ex) { errMsg = ex.Message; } if (errMsg != null) { await _dialogCoordinator.ShowMessageAsync(this, "Edit Feed", "Unable to edit feed with the supplied URL: " + errMsg); } } IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); }
private void MarkFeedRead(RoutedEventArgs e) { if (_selectedNode == null) return; SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; if (tvm.Node is Model.Feed) { Model.Feed selectedFeed = (Model.Feed)tvm.Node; Data.Feed df = new Data.Feed(selectedFeed); df.MarkAllRead(); } else if (tvm.Node is Model.Host) { Model.Host selectedHost = (Model.Host)tvm.Node; Data.Host dh = new Data.Host(selectedHost); dh.MarkAllRead(); } else return; foreach (Article a in Articles) { a.Unread = false; } }
private async void ImportOPML(RoutedEventArgs e) { try { OPML opml = new OPML(); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = false; openFileDialog.DefaultExt = ".opml"; openFileDialog.Filter = "OPML Files (*.opml)|*.opml"; Exception exc = null; if (openFileDialog.ShowDialog() == true) { List<Feed> t = opml.Import(openFileDialog.FileName); foreach (Feed f in t) { try { Data.Feed feed = new Data.Feed(f); feed.Location = f.Location; feed.Save(false); } catch (Exception ee) { exc = ee; } } // Reload tree InitializeData(true); await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "OPML imported successfully. Allow some minutes to let feed titles update from the RSS feed."); // Update details from the uri Task updaterTask = Task.Factory.StartNew(async () => { _updaterInPause = true; foreach (Feed f in t) { try { Data.Feed feed = new Data.Feed(f); feed.Location = f.Location; feed.UpdateFromUri(true, RetentionDays); feed.Save(true); } catch (Exception ee) { exc = ee; } } _updaterInPause = false; InitializeData(true); if (exc != null) await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "Unable to update feeds: " + exc.Message); }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); if (exc != null) throw exc; } } catch (Exception ex) { IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); await _dialogCoordinator.ShowMessageAsync(this, "Import OPML", "Unable to import: " + ex.Message); } }
private async void EditFeed(RoutedEventArgs e) { if (_selectedNode == null) { return; } SimpleTreeNodeViewModel tvm = (SimpleTreeNodeViewModel)_selectedNode; Model.Feed selectedFeed = null; if (tvm.Node is Model.Feed) { selectedFeed = (Model.Feed)tvm.Node; } else { if (tvm.Node is Model.Host) { try { Model.Host selectedHost = (Model.Host)tvm.Node; IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MetroDialogSettings diagSettings = new MetroDialogSettings(); diagSettings.DefaultText = selectedHost.Zoom.ToString(); var ZoomLevel = await _dialogCoordinator.ShowInputAsync(this, "Set Zoom Level", "Enter the desired zoom level for this host: ", diagSettings); int prevZoom = selectedHost.Zoom; selectedHost.Zoom = Int32.Parse(ZoomLevel.ToString()); Data.Host dh = new Data.Host(selectedHost); dh.Save(); if (prevZoom != selectedHost.Zoom) { var msg = new SendSetZoomMessage(selectedHost.Zoom); msg.SetImmediately = true; Messenger.Default.Send <SendSetZoomMessage>(msg); } } catch (Exception ex) { await _dialogCoordinator.ShowMessageAsync(this, "Set Zoom Level", "Unable to set zoom: " + ex.Message); } finally { IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); } } return; } // Hides browser otherwise dialog gets behind it IsBrowserVisible = false; RaisePropertyChanged("IsBrowserVisible"); MetroDialogSettings dialogSettings = new MetroDialogSettings(); dialogSettings.DefaultText = selectedFeed.Location.ToString(); var FeedText = await _dialogCoordinator.ShowInputAsync(this, "Edit feed", "Enter the URL of the feed:", dialogSettings); if (FeedText != null) { string errMsg = null; try { Uri feedUri = new Uri(FeedText); Data.Feed f = new Data.Feed(selectedFeed); f.Location = feedUri; f.UpdateFromUri(true, RetentionDays); f.Save(true); InitializeData(true); } catch (Exception ex) { errMsg = ex.Message; } if (errMsg != null) { await _dialogCoordinator.ShowMessageAsync(this, "Edit Feed", "Unable to edit feed with the supplied URL: " + errMsg); } } IsBrowserVisible = true; RaisePropertyChanged("IsBrowserVisible"); }