The logic is:
NextToken = MAX(Token)+1 Where Month = Current_Month
Let's say you have a class like this:
Public Class TokenData
Private iToken as Integer = 0
Private dDate as Date
Sub New(ByVal _Token As Integer, ByVal _Date As Date)
iToken = _Token
dDate = _Date
End Sub
Public Property Token As Integer
Get
Return iToken
End Get
Set (ByVal _Token As Integer)
iToken = _Token
End Set
End Property
Public Property mDate As Date
Get
Return dDate
End Get
Set (ByVal _Date As Date)
dDate = _Date
End Set
End Property
End Class
To be able to get next
Token
number from
List(of TokenData)
for the current month, you need to create linq statement this way:
Sub Main
Dim iToken As Integer = 555
Dim dDate As Date = New Date(2014, 10, 15)
Dim MyData As List(Of TokenData) = New List(Of TokenData)
MyData.Add(New TokenData(iToken, dDate))
Dim i As Integer = 4
Do While dDate < Date.Today
dDate = dDate.AddDays(i)
iToken = MyData.Where(Function(c) c.mDate.Month = dDate.Month And c.mDate.Year=dDate.Year).Select(Function(c) c.Token).DefaultIfEmpty().Max() + 1
MyData.Add(New TokenData(iToken, dDate))
Loop
End Sub
Result:
Token mDate
555 2014-10-15 00:00:00
556 2014-10-19 00:00:00
557 2014-10-23 00:00:00
558 2014-10-27 00:00:00
559 2014-10-31 00:00:00
1 2014-11-04 00:00:00
2 2014-11-08 00:00:00
3 2014-11-12 00:00:00
4 2014-11-16 00:00:00
5 2014-11-20 00:00:00
6 2014-11-24 00:00:00
7 2014-11-28 00:00:00
1 2014-12-02 00:00:00
2 2014-12-06 00:00:00