You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.9 KiB
94 lines
2.9 KiB
Imports System.ServiceModel.Syndication
|
|
|
|
Public Class NotificationsController
|
|
Inherits DocumentStoreController
|
|
|
|
#Region "View Actions"
|
|
|
|
Public Function Index(type As String) As ActionResult
|
|
|
|
Dim typeID As Integer = Notifications.GetTypeId(type)
|
|
|
|
Dim lst As List(Of Notification) = Notifications.GetItemsPage(typeID, 1, SettingsWrapper.NotificationPageCount)
|
|
|
|
ViewData("Type") = type
|
|
ViewData("TypeId") = typeID
|
|
Return View(lst)
|
|
|
|
End Function
|
|
|
|
Public Function Feed(type As String) As FeedResult
|
|
|
|
Dim typeID As Integer = Notifications.GetTypeId(type)
|
|
|
|
Dim lst As List(Of Notification) = Notifications.GetItemsPage(typeID, 1, SettingsWrapper.NotificationPageCount)
|
|
|
|
Dim items As IEnumerable(Of SyndicationItem) = Nothing
|
|
|
|
If lst IsNot Nothing Then
|
|
items = From nf As Notification In lst
|
|
Select nf.FeedItem
|
|
End If
|
|
|
|
Dim strFeedType As String = "Alle"
|
|
If typeID > -1 Then
|
|
strFeedType = Notifications.GetTypeStringPlural(typeID)
|
|
End If
|
|
|
|
Dim oFeed As New SyndicationFeed(String.Concat("OpenAntrag-Mitteilungen (", strFeedType, ")"),
|
|
String.Concat("Alle Mitteilungen ", HttpContext.Request.Url.Authority),
|
|
New Uri(String.Concat("http://", HttpContext.Request.Url.Authority, "/mitteilungen/feed")),
|
|
"", DateTime.Now, items) With {.Language = "de-DE"}
|
|
|
|
Return New FeedResult(New Rss20FeedFormatter(oFeed))
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Service Actions"
|
|
|
|
<Authorize()>
|
|
<HandleErrorAsJson()>
|
|
Public Function GetNewPostPartial() As JsonResult
|
|
Return Me.GetPartialModel("NewPost", (New Notification))
|
|
End Function
|
|
|
|
<Authorize()>
|
|
<HandleErrorAsJson()>
|
|
Public Function CreateNewPost(sTitle As String, sText As String) As JsonResult
|
|
|
|
NotificationManager.StoreNewPost(sTitle, sText)
|
|
TwitterManager.TweetNewPost(sTitle, sText)
|
|
PushbulletManager.SendNewPost(sTitle, sText)
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = "/mitteilungen"}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
<HandleErrorAsJson()>
|
|
Public Function GetMoreNotifications(type As Integer,
|
|
page As Integer) As JsonResult
|
|
|
|
Dim lst As List(Of Notification) = Notifications.GetItemsPage(type, page, SettingsWrapper.NotificationPageCount)
|
|
|
|
Dim strHtml As String = ""
|
|
If lst.Count > 0 Then
|
|
strHtml = Me.RenderPartialViewToString("_NotificationPartial", lst)
|
|
End If
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = strHtml}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
End Class |