Website openantrag.de
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.
 
 
 
 
OpenAntrag/OpenAntragLib/Manager/NotificationManager.vb

199 lines
7.1 KiB

Imports Raven.Client
Imports System.Text
Imports System.Web
Public Enum NotificationTypes
Post = 0
NewProposal = 1
NewProposalComment = 2
NewFeedback = 3
NewFeedbackComment = 4
NextProposalStep = 5
SuccessStories = 6
End Enum
Public Module NotificationManager
Public Sub StoreNewPost(strTitle As String, strText As String)
Try
Dim nf As New Notification(NotificationTypes.Post,
Nothing,
strTitle,
strText,
Nothing)
StoreNotification(nf)
Catch ex As Exception
End Try
End Sub
Public Sub StoreNewProposal(ByVal model As Proposal)
If model.IsTest = False Then
Try
Dim stbTitle As New StringBuilder
stbTitle.Append(model.Representation.Label).Append(": ")
stbTitle.Append("Neuer Antrag ")
stbTitle.Append("'").Append(model.Title).Append("'")
Dim stbText As New StringBuilder
stbText.Append(model.TextRaw.CutEllipsis(100))
Dim nf As New Notification(NotificationTypes.NewProposal,
model.Representation,
stbTitle.ToString,
stbText.ToString,
model.FullUrl)
StoreNotification(nf)
Catch ex As Exception
End Try
End If
End Sub
Public Sub StoreNewProposalComment(model As ProposalComment, prop As Proposal)
If prop.IsTest = False Then
Try
Dim stbTitle As New StringBuilder
stbTitle.Append(prop.Representation.Label).Append(": ")
stbTitle.Append("Antragskommentar von ")
stbTitle.Append("'").Append(model.CommentedBy).Append("'")
Dim stbText As New StringBuilder
stbText.Append(prop.Title).Append(": ")
stbText.Append(model.CommentText.CutEllipsis(50))
Dim stbUrl As New StringBuilder()
stbUrl.Append(prop.FullUrl)
stbUrl.Append("#comments")
Dim nf As New Notification(NotificationTypes.NewProposalComment,
prop.Representation,
stbTitle.ToString,
stbText.ToString,
stbUrl.ToString)
StoreNotification(nf)
Catch ex As Exception
End Try
End If
End Sub
Public Sub StoreNextProposalStep(ByVal prop As Proposal)
If prop.IsTest = False Then
Try
prop.FillProcessSteps()
Dim ps As ProposalStep = prop.CurrentProposalStep
Dim stbTitle As New StringBuilder()
stbTitle.Append(ps.ProcessStep.Representation.Label).Append(": ")
stbTitle.Append(ps.ProcessStep.ShortCaption)
Dim stbText As New StringBuilder
stbText.Append(prop.Title).Append(": ")
stbText.Append(ps.InfoText.CutEllipsis(100))
Dim nf As New Notification(NotificationTypes.NextProposalStep,
ps.ProcessStep.Representation,
stbTitle.ToString,
stbText.ToString,
prop.FullUrl.ToString)
StoreNotification(nf)
Catch ex As Exception
End Try
End If
End Sub
Public Sub StoreNewFeedback(ByVal feedback As Feedback)
Try
Dim stbTitle As New StringBuilder()
stbTitle.Append("Neues Feedback ")
stbTitle.Append("(").Append(feedback.TypeObject.Name).Append(")")
stbTitle.Append(" von ")
stbTitle.Append("'").Append(feedback.CreatedBy).Append("'")
Dim stbText As New StringBuilder
stbText.Append(feedback.Title).Append(": ")
stbText.Append(feedback.MessageText.CutEllipsis(100))
Dim stbUrl As New StringBuilder()
stbUrl.Append("http://").Append(HttpContext.Current.Request.Url.Authority)
stbUrl.Append("/feedback")
stbUrl.Append("#").Append(feedback.IdNumber)
Dim nf As New Notification(NotificationTypes.NewFeedback,
Nothing,
stbTitle.ToString,
stbText.ToString,
stbUrl.ToString)
StoreNotification(nf)
Catch ex As Exception
End Try
End Sub
Public Sub StoreNewFeedbackComment(ByVal feedback As Feedback, comment As FeedbackComment)
Try
Dim stbTitle As New StringBuilder()
stbTitle.Append("Feedback-Kommentar von ")
stbTitle.Append("'").Append(comment.CommentedBy).Append("'")
Dim stbText As New StringBuilder
stbText.Append(feedback.Title).Append(": ")
stbText.Append(comment.CommentText.CutEllipsis(50))
Dim stbUrl As New StringBuilder()
stbUrl.Append("http://").Append(HttpContext.Current.Request.Url.Authority)
stbUrl.Append("/feedback")
stbUrl.Append("#").Append(feedback.IdNumber)
Dim nf As New Notification(NotificationTypes.NewFeedbackComment,
Nothing,
stbTitle.ToString,
stbText.ToString,
stbUrl.ToString)
StoreNotification(nf)
Catch ex As Exception
End Try
End Sub
Private Sub StoreNotification(nf As Notification)
Using ds As IDocumentSession = DataDocumentStore.Session()
ds.Store(nf)
ds.SaveChanges()
End Using
End Sub
Public Sub StoreNewSuccessStory(ByVal model As SuccessStory)
If model.Proposal.IsTest = False Then
Try
Dim stbTitle As New StringBuilder
stbTitle.Append("Erfolgsgeschichte in ")
stbTitle.Append(model.Proposal.Representation.Label).Append(": ")
stbTitle.Append("'").Append(model.Title).Append("'")
Dim stbText As New StringBuilder
stbText.Append(model.TextRaw.CutEllipsis(100))
Dim nf As New Notification(NotificationTypes.SuccessStories,
model.Proposal.Representation,
stbTitle.ToString,
stbText.ToString,
model.FullUrl)
StoreNotification(nf)
Catch ex As Exception
End Try
End If
End Sub
End Module