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/Models/Account/Members.vb

137 lines
3.3 KiB

Imports Raven.Client
Imports System.Web
Imports System.Web.Security
Public Class Members
#Region "Shared Methods"
Public Shared Function GetMembers() As List(Of Member)
Dim lst As List(Of Member)
Using ds As IDocumentSession = DataDocumentStore.Session()
Dim query = From m As Member In ds.Query(Of Member)()
Select m
'http://stackoverflow.com/questions/10048943/proper-way-to-retrieve-more-than-128-documents-with-ravendb
lst = query.Take(1024).ToList()
End Using
Return lst
End Function
Public Shared Function GetCurrentMember() As Member
Dim model As New Member
If HttpContext.Current.User.Identity.IsAuthenticated = True Then
Using ds As IDocumentSession = DataDocumentStore.Session()
Dim query = From m As Member In ds.Query(Of Member)()
Where m.UserName = HttpContext.Current.User.Identity.Name
Select m
If query.Count > 0 Then
model = query.First
End If
End Using
End If
Return model
End Function
Public Shared Function GetMember(ByVal strUserName As String) As Member
Dim model As Member = Nothing
Using ds As IDocumentSession = DataDocumentStore.Session()
Dim query = From m As Member In ds.Query(Of Member)()
Where m.UserName = strUserName
Select m
If query.Count > 0 Then
model = query.First
End If
End Using
Return model
End Function
Public Shared Function GetMemberByUserKey(ByVal strUserKey As String) As Member
Dim model As Member = Nothing
Using ds As IDocumentSession = DataDocumentStore.Session()
Dim query = From m As Member In ds.Query(Of Member)()
Where m.UserKey = strUserKey
Select m
If query.Count > 0 Then
model = query.First
End If
End Using
Return model
End Function
Public Shared Function GetMemberByApiKey(ByVal strApiKey As String) As Member
Dim model As Member = Nothing
Using ds As IDocumentSession = DataDocumentStore.Session()
Dim query = From m As Member In ds.Query(Of Member)()
Where m.APIKey = strApiKey
Select m
If query.Count > 0 Then
model = query.First
End If
End Using
Return model
End Function
Public Shared Function EnsureMember(mu As MembershipUser) As Member
Dim mb As Member = GetMember(mu.UserName)
If mb Is Nothing Then
mb = New Member With {.UserKey = mu.ProviderUserKey.ToString,
.UserName = mu.UserName,
.Mail = mu.Email}
SaveMember(mb)
End If
Return mb
End Function
Public Shared Sub SaveMember(model As Member)
Using ds As IDocumentSession = DataDocumentStore.Session()
ds.Store(model)
ds.SaveChanges()
End Using
End Sub
#End Region
End Class