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.
163 lines
4.3 KiB
163 lines
4.3 KiB
Public Class FeedbackController
|
|
Inherits DocumentStoreController
|
|
|
|
#Region "View Actions"
|
|
|
|
Public Function Index(key As String) As ActionResult
|
|
|
|
Dim lst As List(Of Feedback)
|
|
Dim intFilterId As Integer = -1
|
|
|
|
If String.IsNullOrEmpty(key) = True Then
|
|
lst = Feedbacks.GetItems
|
|
Else
|
|
Dim fb As FeedbackType = (From ft As FeedbackType In GlobalData.FeedbackTypes.Items
|
|
Where ft.Key = key
|
|
Select ft).FirstOrDefault
|
|
|
|
lst = Feedbacks.GetItemsByType(fb)
|
|
intFilterId = fb.ID
|
|
End If
|
|
|
|
ViewBag.FilterId = intFilterId
|
|
|
|
Return View(lst)
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Service Actions"
|
|
|
|
<HandleErrorAsJson()>
|
|
Public Function CreateNew(type As Integer,
|
|
createdby As String,
|
|
title As String,
|
|
message As String) As JsonResult
|
|
|
|
Dim fb As New Feedback With {
|
|
.Type = type,
|
|
.CreatedBy = createdby,
|
|
.Title = title,
|
|
.Message = message,
|
|
.Status = 0,
|
|
.Likes = 1,
|
|
.Dislikes = 0
|
|
}
|
|
|
|
Me.StoreAndSave(fb)
|
|
|
|
PushoverManager.SendNewFeedback(fb)
|
|
NotificationManager.StoreNewFeedback(fb)
|
|
PushbulletManager.SendNewFeedback(fb)
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = ""}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
<HandleErrorAsJson()>
|
|
<Authorize()>
|
|
Public Function Delete(id As String) As JsonResult
|
|
|
|
'AKTUELL NICHT
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = ""}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
<HandleErrorAsJson()>
|
|
Public Function CreateNewComment(feedbackID As String,
|
|
commentedby As String,
|
|
comment As String) As JsonResult
|
|
|
|
Dim fb As Feedback = Feedbacks.GetByID(feedbackID)
|
|
|
|
Dim fbc As New FeedbackComment With {
|
|
.CommentedBy = commentedby,
|
|
.CommentedByAdmin = Tools.IsAdmin(),
|
|
.Comment = comment,
|
|
.ID_Feedback = fb.Id
|
|
}
|
|
|
|
If fb.Comments Is Nothing Then
|
|
fb.Comments = New List(Of FeedbackComment)
|
|
End If
|
|
|
|
fb.Comments.Add(fbc)
|
|
|
|
Me.StoreAndSave(fb)
|
|
|
|
PushoverManager.SendNewFeedbackComment(fb, fbc)
|
|
NotificationManager.StoreNewFeedbackComment(fb, fbc)
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = Me.RenderPartialViewToString("_FeedbackCommentPartial", fbc)}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
<HandleErrorAsJson()>
|
|
Public Function DeleteComment(feedbackId As String,
|
|
commentedby As String,
|
|
timeStamp As Integer) As JsonResult
|
|
|
|
If Tools.IsAdmin() = False Then
|
|
'If HttpContext.User.IsInRole("admin") = False Then
|
|
Throw New CustomException("Dazu fehlt Dir die Berechtigung")
|
|
End If
|
|
|
|
Dim fb As Feedback = Feedbacks.GetByID(feedbackId)
|
|
|
|
Dim query = From c As FeedbackComment In fb.Comments
|
|
Where c.CommentedBy.ToLower = commentedby.ToLower And c.Timestamp = timeStamp
|
|
Select c
|
|
|
|
If query.Count > 0 Then
|
|
Dim fbc As FeedbackComment = query.First
|
|
fb.Comments.Remove(fbc)
|
|
End If
|
|
|
|
Me.StoreAndSave(fb)
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = ""}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
<HandleErrorAsJson()>
|
|
Public Function Vote(id As String, pro As Boolean) As JsonResult
|
|
|
|
Dim fb As Feedback = Feedbacks.GetByID(id)
|
|
|
|
If pro = True Then
|
|
fb.Likes += 1
|
|
Else
|
|
fb.Dislikes += 1
|
|
End If
|
|
|
|
Me.StoreAndSave(fb)
|
|
|
|
Dim jr As New JsonResult
|
|
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
|
jr.Data = New With {.success = True, .data = fb}
|
|
|
|
Return jr
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
End Class
|
|
|