This repository has been archived by the owner on Sep 19, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Default.aspx.vb
98 lines (81 loc) · 3.8 KB
/
Default.aspx.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports DevExpress.Web.ASPxScheduler
Imports DevExpress.XtraScheduler
Namespace WebApplication1
Partial Public Class [Default]
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub ObjectDataSourceResources_ObjectCreated(ByVal sender As Object, ByVal e As ObjectDataSourceEventArgs)
If Session("CustomResourceDataSource") Is Nothing Then
Session("CustomResourceDataSource") = New CustomResourceDataSource(GetCustomResources())
End If
e.ObjectInstance = Session("CustomResourceDataSource")
Dim ruler As TimeRuler = ASPxScheduler1.DayView.TimeRulers(0)
'Appointment newAppt = ASPxScheduler1.Storage.CreateAppointment(DevExpress.XtraScheduler.AppointmentType.Normal);
'newAppt.Subject = "test";
'newAppt.Start = DateTime.Now;
'newAppt.End = DateTime.Now.AddDays(1);
'ASPxScheduler1.Storage.Appointments.Add(newAppt);
'Appointment existingAppt = ASPxScheduler1.Storage.Appointments.Items.FirstOrDefault(appt => appt.Subject == "test");
'if(existingAppt != null) {
' existingAppt.Subject = "test (modified)";
'}
End Sub
Private Function GetCustomResources() As BindingList(Of CustomResource)
Dim resources As New BindingList(Of CustomResource)()
resources.Add(CreateCustomResource(1, "Max Fowler"))
resources.Add(CreateCustomResource(2, "Nancy Drewmore"))
resources.Add(CreateCustomResource(3, "Pak Jang"))
Return resources
End Function
Private Function CreateCustomResource(ByVal res_id As Integer, ByVal caption As String) As CustomResource
Dim cr As New CustomResource()
cr.ResID = res_id
cr.Name = caption
Return cr
End Function
Public RandomInstance As New Random()
Private Function CreateCustomAppointment(ByVal subject As String, ByVal resourceId As Object, ByVal status As Integer, ByVal label As Integer) As CustomAppointment
Dim apt As New CustomAppointment()
apt.Subject = subject
apt.OwnerId = resourceId
Dim rnd As Random = RandomInstance
Dim rangeInMinutes As Integer = 60 * 24
apt.StartTime = DateTime.Today + TimeSpan.FromMinutes(rnd.Next(0, rangeInMinutes))
apt.EndTime = apt.StartTime + TimeSpan.FromMinutes(rnd.Next(0, rangeInMinutes \ 4))
apt.Status = status
apt.Label = label
Return apt
End Function
Protected Sub ObjectDataSourceAppointment_ObjectCreated(ByVal sender As Object, ByVal e As ObjectDataSourceEventArgs)
If Session("CustomAppointmentDataSource") Is Nothing Then
Session("CustomAppointmentDataSource") = New CustomAppointmentDataSource(GetCustomAppointments())
End If
e.ObjectInstance = Session("CustomAppointmentDataSource")
End Sub
Private Function GetCustomAppointments() As BindingList(Of CustomAppointment)
Dim appointments As New BindingList(Of CustomAppointment)()
Dim resources As CustomResourceDataSource = TryCast(Session("CustomResourceDataSource"), CustomResourceDataSource)
If resources IsNot Nothing Then
For Each item As CustomResource In resources.Resources
Dim subjPrefix As String = item.Name & "'s "
appointments.Add(CreateCustomAppointment(subjPrefix & "meeting", item.ResID, 2, 5))
appointments.Add(CreateCustomAppointment(subjPrefix & "travel", item.ResID, 3, 6))
appointments.Add(CreateCustomAppointment(subjPrefix & "phone call", item.ResID, 0, 10))
Next item
End If
Return appointments
End Function
Protected Sub ASPxScheduler1_CustomJSProperties(ByVal sender As Object, ByVal e As DevExpress.Web.CustomJSPropertiesEventArgs)
e.Properties.Add("cpWeekCount", (TryCast(sender, ASPxScheduler)).MonthView.WeekCount)
End Sub
End Class
End Namespace