Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/VB/TouchBoard/App_Code/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/VB/TouchBoard/App_Code/ReminderProvider.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Xml.Serialization
Imports System.IO
Imports System.Web.UI
Imports System.Collections

Public NotInheritable Class ReminderProvider
	Private Shared model_Renamed As RemindersModel
	Private Sub New()
	End Sub
	Private Shared ReadOnly Property Model() As RemindersModel
		Get
			If model_Renamed Is Nothing Then
				Using stream = File.OpenRead(HttpContext.Current.Server.MapPath("~/App_Data/Reminders.xml"))
					Dim serializer = New XmlSerializer(GetType(RemindersModel))
					model_Renamed = CType(serializer.Deserialize(stream), RemindersModel)

					Dim [date] = DateTime.Now.AddDays(1).AddHours(2)
					For Each item In model_Renamed.Reminders
						item.ReminderDate = [date]
						[date] = [date].AddDays(2).AddHours(2)
					Next item
				End Using
			End If
			Return model_Renamed
		End Get
	End Property

	Public Shared ReadOnly Property FirstReminder() As Reminder
		Get
			Return Model.Reminders(0)
		End Get
	End Property
	Public Shared Function SelectReminders() As Object
		Return New RemindersData(Model.Reminders.Skip(1))
	End Function
End Class

<XmlRoot("Reminders")> _
Public Class RemindersModel
	Private reminders_Renamed As New List(Of Reminder)()

	<XmlElement(Type := GetType(Reminder), ElementName := "Reminder")> _
	Public ReadOnly Property Reminders() As List(Of Reminder)
		Get
			Return reminders_Renamed
		End Get
	End Property
End Class

Public Class RemindersData
	Implements IHierarchicalEnumerable
	Private data As IEnumerable
	Public Sub New(ByVal data As IEnumerable)
		Me.data = data
	End Sub
	Public Function GetHierarchyData(ByVal enumeratedItem As Object) As IHierarchyData Implements IHierarchicalEnumerable.GetHierarchyData
		Return CType(enumeratedItem, IHierarchyData)
	End Function
	Public Function GetEnumerator() As IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
		Return Me.data.GetEnumerator()
	End Function
End Class

Public Class Reminder
	Implements IHierarchyData
	Private privateSubject As String
	<XmlAttribute> _
	Public Property Subject() As String
		Get
			Return privateSubject
		End Get
		Set(ByVal value As String)
			privateSubject = value
		End Set
	End Property
	Private privateReminderDate As DateTime
	Public Property ReminderDate() As DateTime
		Get
			Return privateReminderDate
		End Get
		Set(ByVal value As DateTime)
			privateReminderDate = value
		End Set
	End Property
	Private privateDescription As String
	<XmlAttribute> _
	Public Property Description() As String
		Get
			Return privateDescription
		End Get
		Set(ByVal value As String)
			privateDescription = value
		End Set
	End Property
	Private privateShortDescription As String
	<XmlAttribute> _
	Public Property ShortDescription() As String
		Get
			Return privateShortDescription
		End Get
		Set(ByVal value As String)
			privateShortDescription = value
		End Set
	End Property
	Private privateContactImageUrl As String
	<XmlAttribute> _
	Public Property ContactImageUrl() As String
		Get
			Return privateContactImageUrl
		End Get
		Set(ByVal value As String)
			privateContactImageUrl = value
		End Set
	End Property
	Private privateContactName As String
	<XmlAttribute> _
	Public Property ContactName() As String
		Get
			Return privateContactName
		End Get
		Set(ByVal value As String)
			privateContactName = value
		End Set
	End Property
	Private privateContactPhone As String
	<XmlAttribute> _
	Public Property ContactPhone() As String
		Get
			Return privateContactPhone
		End Get
		Set(ByVal value As String)
			privateContactPhone = value
		End Set
	End Property

	#Region "IHierarchyData Members"
	Public Function GetChildren() As IHierarchicalEnumerable Implements IHierarchyData.GetChildren
		Return Nothing
	End Function
	Public Function GetParent() As IHierarchyData Implements IHierarchyData.GetParent
		Return Nothing
	End Function
	Public ReadOnly Property HasChildren() As Boolean Implements IHierarchyData.HasChildren
		Get
			Return False
		End Get
	End Property
	Public ReadOnly Property Item() As Object Implements IHierarchyData.Item
		Get
			Return Me
		End Get
	End Property
	Public ReadOnly Property Path() As String Implements IHierarchyData.Path
		Get
			Return Subject + ReminderDate
		End Get
	End Property
	Public ReadOnly Property Type() As String Implements IHierarchyData.Type
		Get
			Return Me.GetType().ToString()
		End Get
	End Property
	#End Region
End Class