An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
|
Imports
System.Collections.Generic
Imports
System.ServiceModel
Imports
System.ServiceModel.Activation
Imports
System.Web
Imports
Telerik.Web.UI
Imports
System.Configuration
Imports
System.Data.Common
<ServiceContract([
Namespace
]:=
"MedSpaOnline.com"
)> _
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
<ServiceBehavior(IncludeExceptionDetailInFaults:=
True
)> _
Public
Class
SchedulerWcfService
Private
_controller
As
WebServiceAppointmentController
Private
_provider
As
AppointmentsProvider
Private
ReadOnly
Property
Provider()
As
AppointmentsProvider
Get
If
_provider
Is
Nothing
Then
Dim
crypto
As
Encryption.Crypto =
New
Encryption.Crypto(
"Suncoast"
)
Dim
connString = crypto.Decrypt(ConfigurationManager.ConnectionStrings(
"POS"
).ConnectionString)
Dim
factory = DbProviderFactories.GetFactory(
"System.Data.SqlClient"
)
_provider =
New
AppointmentsProvider()
_provider.ConnectionString = connString
_provider.DbFactory = factory
_provider.PersistChanges =
True
End
If
Return
_provider
End
Get
End
Property
''' <summary>
''' The WebServiceAppointmentController class is used as a facade to the SchedulerProvider.
''' </summary>
Private
ReadOnly
Property
Controller()
As
WebServiceAppointmentController
Get
If
_controller
Is
Nothing
Then
_controller =
New
WebServiceAppointmentController(Provider)
End
If
Return
_controller
End
Get
End
Property
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
GetAppointments(schedulerInfo
As
MySchedulerInfo)
As
IEnumerable(Of AppointmentData)
Return
Controller.GetAppointments(schedulerInfo)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
InsertAppointment(schedulerInfo
As
MySchedulerInfo, appointmentData
As
AppointmentData)
As
IEnumerable(Of AppointmentData)
Return
Controller.InsertAppointment(schedulerInfo, appointmentData)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
UpdateAppointment(schedulerInfo
As
MySchedulerInfo, appointmentData
As
AppointmentData)
As
IEnumerable(Of AppointmentData)
Return
Controller.UpdateAppointment(schedulerInfo, appointmentData)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
CreateRecurrenceException(schedulerInfo
As
MySchedulerInfo, recurrenceExceptionData
As
AppointmentData)
As
IEnumerable(Of AppointmentData)
Return
Controller.CreateRecurrenceException(schedulerInfo, recurrenceExceptionData)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
RemoveRecurrenceExceptions(schedulerInfo
As
MySchedulerInfo, masterAppointmentData
As
AppointmentData)
As
IEnumerable(Of AppointmentData)
Return
Controller.RemoveRecurrenceExceptions(schedulerInfo, masterAppointmentData)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
DeleteAppointment(schedulerInfo
As
MySchedulerInfo, appointmentData
As
AppointmentData, deleteSeries
As
Boolean
)
As
IEnumerable(Of AppointmentData)
Return
Controller.DeleteAppointment(schedulerInfo, appointmentData, deleteSeries)
End
Function
<OperationContract> _
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Public
Function
GetResources(schedulerInfo
As
MySchedulerInfo)
As
IEnumerable(Of ResourceData)
Return
Controller.GetResources(schedulerInfo)
End
Function
End
Class
cmd.Connection = conn
cmd.Parameters.Add(CreateParameter(
"@StoreID"
, StoreID))
cmd.CommandText =
"CustomerAppointmentSelect"
cmd.CommandType = CommandType.StoredProcedure
Using reader
As
DbDataReader = cmd.ExecuteReader()
While
reader.Read()
Dim
res
As
New
Resource()
res.Type =
"customer"
res.Key = reader(
"CustomerID"
)
res.Text = Convert.ToString(reader(
"CustomerName"
))
resources.Add(res)
End
While
End
Using
End
Using
Return
resources
End
Function
'Private Sub FillClassCustomers(appointment As Appointment, cmd As DbCommand, classId As Object)
' For Each customer As Resource In appointment.Resources.GetResourcesByType("customer")
' cmd.Parameters.Clear()
' cmd.Parameters.Add(CreateParameter("@ClassID", classId))
' cmd.Parameters.Add(CreateParameter("@customerID", customer.Key))
' cmd.CommandText = "INSERT INTO [DbProvider_ClassCustomers] ([ClassID], [customerID]) VALUES (@ClassID, @customerID)"
' cmd.ExecuteNonQuery()
' Next
'End Sub
'Private Sub ClearClassCustomers(classId As Object, cmd As DbCommand)
' cmd.Parameters.Clear()
' cmd.Parameters.Add(CreateParameter("@ClassID", classId))
' cmd.CommandText = "DELETE FROM [DbProvider_ClassCustomers] WHERE [ClassID] = @ClassID"
' cmd.ExecuteNonQuery()
'End Sub
Private
Sub
PopulateAppointmentParameters(cmd
As
DbCommand, apt
As
Appointment,
ByVal
Action
As
String
)
If
Action.Equals(
"UPDATE"
)
Then
cmd.Parameters.Add(CreateParameter(
"@ID"
, apt.ID))
End
If
cmd.Parameters.Add(CreateParameter(
"@StoreID"
, StoreID))
cmd.Parameters.Add(CreateParameter(
"@Subject"
, apt.Subject))
cmd.Parameters.Add(CreateParameter(
"@Start"
, apt.Start))
cmd.Parameters.Add(CreateParameter(
"@End"
, apt.[
End
]))
Dim
customer
As
Resource = apt.Resources.GetResourceByType(
"customer"
)
Dim
customerId
As
Object
=
Nothing
If
customer IsNot
Nothing
Then
customerId = customer.Key
End
If
cmd.Parameters.Add(CreateParameter(
"@CustomerID"
, customerId))
Dim
employee
As
Resource = apt.Resources.GetResourceByType(
"employee"
)
Dim
employeeId
As
Object
=
Nothing
If
employee IsNot
Nothing
Then
employeeId = employee.Key
End
If
cmd.Parameters.Add(CreateParameter(
"@EmployeeID"
, employeeId))
Dim
rrule
As
String
=
Nothing
If
apt.RecurrenceRule <>
String
.Empty
Then
rrule = apt.RecurrenceRule
End
If
cmd.Parameters.Add(CreateParameter(
"@RecurrenceRule"
, rrule))
Dim
parentId
As
Object
=
Nothing
If
apt.RecurrenceParentID IsNot
Nothing
Then
parentId = apt.RecurrenceParentID
End
If
cmd.Parameters.Add(CreateParameter(
"@RecurrenceParentId"
, parentId))
cmd.Parameters.Add(CreateParameter(
"@Annotations"
,
""
))
cmd.Parameters.Add(CreateParameter(
"@Description"
, apt.Description))
cmd.Parameters.Add(CreateParameter(
"@Reminder"
, apt.Reminders.ToString()))
End
Sub
End
Class
Public
Class
MySchedulerInfo
Inherits
SchedulerInfo
Public
Property
StoreID()
As
String
Get
Return
_storeid
End
Get
Set
(value
As
String
)
_storeid = value
End
Set
End
Property
Private
_storeid
As
Integer
Public
Sub
New
(baseInfo
As
ISchedulerInfo, storeid_1
As
Integer
)
MyBase
.
New
(baseInfo)
StoreID = storeid_1
End
Sub
Public
Sub
New
()
End
Sub
Protected
Overrides
Sub
Finalize()
MyBase
.Finalize()
End
Sub
End
Class
<?
xml
version
=
"1.0"
?>
<
configuration
>
<
connectionStrings
>
<!--SQL Server-->
<!--<add name="POSDB" connectionString="4PWt4K/rc1CkfMOmzAtubPLsFJ51KNDs9YW8tXf54735pIwMePgOdWaP2DazZg5zj2NXHYnkQd36dZb1NwQTXRujp0Me64Xc/rzAVWrKuM/b9S5lBMc0f9oz8fBAxICfi8/ge9CHrY2NOwdysmDO9w=="/>-->
<!--SQL Express-->
<
add
name
=
"POS"
connectionString
=
"8FkDM4EumAI6nH1h6twN/Gm9lV0cFp1kH22N3nFpqsTn/65a9ISM9mgbdczruCjHumIWrNtrUAsSJ9qdo710eIvP4HvQh62NjTsHcrJgzvc="
/>
</
connectionStrings
>
<
system.web
>
<
compilation
debug
=
"true"
strict
=
"false"
explicit
=
"true"
targetFramework
=
"4.0"
/>
</
system.web
>
<
system.serviceModel
>
<
behaviors
>
<
serviceBehaviors
>
<
behavior
>
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<
serviceMetadata
httpGetEnabled
=
"true"
/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<
serviceDebug
includeExceptionDetailInFaults
=
"false"
/>
</
behavior
>
</
serviceBehaviors
>
</
behaviors
>
<
serviceHostingEnvironment
>
<!--<
serviceActivations
>
<
add
factory
=
"System.ServiceModel.Activation.WebServiceHostFactory"
relativeAddress
=
"AppointmentsWCF.svc"
service
=
"AppointmentsWCF.SchedulerWcfService"
/>
</
serviceActivations
>-->
</
serviceHostingEnvironment
>
</
system.serviceModel
>
<
system.webServer
>
<
modules
runAllManagedModulesForAllRequests
=
"true"
/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<
directoryBrowse
enabled
=
"false"
/>
</
system.webServer
>
</
configuration
>
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="AppointmentDisplay.ascx.vb" Inherits="Appointments.AppointmentDisplay" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
div
>
<%-- <
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
/>--%>
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
></
telerik:RadAjaxManagerProxy
>
<%-- <
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>--%>
<
telerik:RadScheduler
ID
=
"RadScheduler1"
runat
=
"server"
DataDescriptionField
=
"Description"
DataEndField
=
"End"
DataKeyField
=
"ID"
DataRecurrenceField
=
"RecurrenceRule"
DataRecurrenceParentKeyField
=
"RecurrenceParentID"
DataReminderField
=
"Reminder"
DataStartField
=
"Start"
DataSubjectField
=
"Subject"
GroupBy
=
"Employee"
Skin
=
"Forest"
StartInsertingInAdvancedForm
=
"True"
OnResourcesPopulating
=
"RadScheduler1_ResourcesPopulating"
>
<
ResourceTypes
>
<
telerik:ResourceType
ForeignKeyField
=
"EmployeeID"
KeyField
=
"EmployeeID"
Name
=
"Employee"
TextField
=
"EmployeeName"
/>
<
telerik:ResourceType
ForeignKeyField
=
"CustomerID"
KeyField
=
"CustomerID"
Name
=
"Customer"
TextField
=
"CustomerName"
/>
</
ResourceTypes
>
<
WebServiceSettings
Path
=
"http://localhost:3457/AppointmentsWCF.svc"
ResourcePopulationMode
=
"ServerSide"
/>
</
telerik:RadScheduler
>
<%-- </
telerik:RadAjaxPanel
>--%>
<%-- <
asp:SqlDataSource
ID
=
"DSAppointments"
runat
=
"server"
ConnectionString
=
"Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"AppointmentsSelect"
SelectCommandType
=
"StoredProcedure"
DeleteCommand
=
"AppointmentsDelete"
DeleteCommandType
=
"StoredProcedure"
InsertCommand
=
"AppointmentsInsert"
InsertCommandType
=
"StoredProcedure"
UpdateCommand
=
"AppointmentsUpdate"
UpdateCommandType
=
"StoredProcedure"
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"DSEmployees"
runat
=
"server"
ConnectionString
=
"Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"EmployeeAppointmentSelect"
SelectCommandType
=
"StoredProcedure"
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"DSCustomers"
runat
=
"server"
ConnectionString
=
"Data Source=192.168.1.10,427;Initial Catalog=POS;Persist Security Info=True;User ID=sa;Password=67Impala"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"CustomerAppointmentSelect"
SelectCommandType
=
"StoredProcedure"
>
</
asp:SqlDataSource
>--%>
</
div
>
Imports
Telerik.Web.UI
Public
Class
AppointmentDisplay
Inherits
System.Web.UI.UserControl
Private
cnn
As
String
Dim
sStoreID
As
String
Dim
tabstrip
As
RadTabStrip
Dim
tab
As
RadTab
Dim
StoreID
As
HiddenField
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Load
Dim
crypto
As
Encryption.Crypto =
New
Encryption.Crypto(
"Suncoast"
)
cnn = crypto.Decrypt(ConfigurationManager.ConnectionStrings(
"POS"
).ConnectionString)
SetStoreID()
BuildDSAppointments()
BuildDSEmployees()
BuildDSCustomers()
BuildScheduler()
End
Sub
Private
Sub
SetStoreID()
tabstrip = Parent.FindControl(
"RadTabStrip1"
)
tab = tabstrip.SelectedTab
sStoreID = tab.Attributes.Item(
"StoreID"
).ToString
StoreID = Parent.FindControl(
"StoreID"
)
StoreID.Value = sStoreID
End
Sub
Private
Sub
BuildScheduler()
'RadScheduler1.ID = "Scheduler" + sStoreID
'RadScheduler1.DataSourceID = DSAppointments.UniqueID
'RadScheduler1.ResourceTypes(0).DataSourceID = DSEmployees.UniqueID
'RadScheduler1.ResourceTypes(1).DataSourceID = DSCustomers.UniqueID
End
Sub
Private
Sub
BuildDSAppointments()
'With DSAppointments
' .ID = "DSAppointments" + sStoreID
' .ConnectionString = cnn
' .SelectParameters.Clear()
' .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
' .DeleteParameters.Clear()
' .DeleteParameters.Add(New Parameter("ID", DbType.Int32))
' .InsertParameters.Clear()
' .InsertParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
' .InsertParameters.Add(New Parameter("Subject", DbType.String))
' .InsertParameters.Add(New Parameter("Start", DbType.DateTime))
' .InsertParameters.Add(New Parameter("End", DbType.DateTime))
' .InsertParameters.Add(New Parameter("CustomerID", DbType.Int32))
' .InsertParameters.Add(New Parameter("EmployeeID", DbType.Int32))
' .InsertParameters.Add(New Parameter("RecurrenceRule", DbType.String))
' .InsertParameters.Add(New Parameter("RecurrenceParentID", DbType.Int32))
' .InsertParameters.Add(New Parameter("Annotations", DbType.String))
' .InsertParameters.Add(New Parameter("Description", DbType.String))
' .InsertParameters.Add(New Parameter("Reminder", DbType.String))
' .UpdateParameters.Clear()
' .UpdateParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
' .UpdateParameters.Add(New Parameter("Subject", DbType.String))
' .UpdateParameters.Add(New Parameter("Start", DbType.DateTime))
' .UpdateParameters.Add(New Parameter("End", DbType.DateTime))
' .UpdateParameters.Add(New Parameter("CustomerID", DbType.Int32))
' .UpdateParameters.Add(New Parameter("EmployeeID", DbType.Int32))
' .UpdateParameters.Add(New Parameter("RecurrenceRule", DbType.String))
' .UpdateParameters.Add(New Parameter("RecurrenceParentID", DbType.Int32))
' .UpdateParameters.Add(New Parameter("Annotations", DbType.String))
' .UpdateParameters.Add(New Parameter("Description", DbType.String))
' .UpdateParameters.Add(New Parameter("Reminder", DbType.String))
' .UpdateParameters.Add(New Parameter("ID", DbType.Int32))
'End With
End
Sub
Private
Sub
BuildDSEmployees()
'With DSEmployees
' .ID = "DSEmployees" + sStoreID
' .ConnectionString = cnn
' .SelectParameters.Clear()
' .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
'End With
End
Sub
Private
Sub
BuildDSCustomers()
'With DSCustomers
' .ID = "DSCustomers" + sStoreID
' .ConnectionString = cnn
' .SelectParameters.Clear()
' .SelectParameters.Add(New ControlParameter("StoreID", System.TypeCode.Int32, StoreID.UniqueID, "Value"))
'End With
End
Sub
'Protected Sub RadScheduler1_FormCreated(sender As Object, e As SchedulerFormCreatedEventArgs)
' If (e.Container.Mode = SchedulerFormMode.AdvancedEdit) OrElse (e.Container.Mode = SchedulerFormMode.AdvancedInsert) Then
' 'finds the RadComboBox representing the user resource
' Dim customerResource As RadComboBox = TryCast(e.Container.FindControl("ResCustomer"), RadComboBox)
' 'this line of code will subscribe for the the client-side event fired when user selects a new value from the RadComboBox control
' customerResource.OnClientSelectedIndexChanging = "OnClientSelectedIndexChanging"
' End If
'End Sub
Protected
Sub
RadScheduler1_ResourcesPopulating(sender
As
Object
, e
As
ResourcesPopulatingEventArgs)
Dim
info
As
AppointmentsWCF.MySchedulerInfo =
New
AppointmentsWCF.MySchedulerInfo
info.ViewStart = e.SchedulerInfo.ViewStart
info.ViewEnd = e.SchedulerInfo.ViewEnd
info.StoreID = sStoreID
End
Sub
End
Class
<telerik:RadGrid ID="radGridDocumentLibrary" runat="server" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" Width="100%"
OnRowDrop="grdPendingDocuments_RowDrop" Skin="docTable" EnableEmbeddedSkins="false" AllowSorting="True" OnSortCommand="radGridDocumentLibrary_SortCommand">
<ClientSettings AllowRowsDragDrop="true">
<Selecting AllowRowSelect="true" />
<ClientEvents OnRowDragStarted="applyCursor" OnRowDropped="removeCursor" OnRowSelected="removeCursor" />
</ClientSettings>
<MasterTableView DataKeyNames="DocumentID" NoMasterRecordsText="Meeting Document Library is Empty - Upload Documents To Add to Your Board Book" ShowHeader="true">
<Columns>
<telerik:GridTemplateColumn HeaderText="Name" ShowSortIcon="true" SortExpression="DocumentName" SortAscImageUrl="../img/uarrow.gif" SortDescImageUrl="../img/darrow.gif">
<ItemStyle CssClass="docCell dragDroppable" />
<ItemTemplate>
<span>
<i class="icon-file"></i>
<asp:Label ID="lblDocumentName" runat="server" Text='<%# Eval("DocumentName") %>' CssClass="docInSection"></asp:Label></span>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Date" ShowSortIcon="true" SortExpression="SortDate" SortAscImageUrl="../img/uarrow.gif" SortDescImageUrl="../img/darrow.gif">
<HeaderStyle CssClass="rgHeader docDate" />
<ItemStyle CssClass="docCell docCellDate" />
<ItemTemplate>
<asp:Label ID="lblDocDate" runat="server" Text='<%# Convert.ToDateTime(Eval("DocumentDate").ToString()).ToShortDateString() %>' CssClass="docInSection"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<SortingSettings SortedBackColor="Azure" EnableSkinSortStyles="false"></SortingSettings>
<ClientSettings AllowRowsDragDrop="True">
<Selecting AllowRowSelect="true" EnableDragToSelectRows="false"></Selecting>
<ClientEvents OnRowDropping="onRowDroppingDL"></ClientEvents>
<ClientEvents OnRowContextMenu="RowContextMenu"></ClientEvents>
</ClientSettings>
</telerik:RadGrid>
<telerik:RadContextMenu ID="RadMenu1" runat="server" OnItemClick="RadMenu1_ItemClick"
EnableRoundedCorners="true" EnableShadows="true">
<Items>
<telerik:RadMenuItem Text="Replace">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="Rename">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="Delete">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="View">
</telerik:RadMenuItem>
</Items>
</telerik:RadContextMenu>
Public
Sub
SetPageSizes(oPagerItem
As
GridPagerItem, aSizes
As
String
())
Dim
rcbPager
As
RadComboBox =
DirectCast
(oPagerItem.FindControl(
"PageSizeComboBox"
), RadComboBox)
Dim
iTotalItems
As
Integer
= oPagerItem.Paging.DataSourceCount
rcbPager.Items.Clear()
For
Each
sSize
As
String
In
aSizes
Dim
iSize
As
Integer
= 0
If
sSize.ToUpper() =
"ALL"
Then
iSize =
Integer
.MaxValue
Else
If
Not
Integer
.TryParse(sSize, iSize)
Then
Continue
For
ElseIf
iTotalItems < iSize
Then
Continue
For
End
If
End
If
Dim
oNewItem
As
New
RadComboBoxItem(sSize, iSize.ToString())
oNewItem.Attributes.Add(
"ownerTableViewId"
, oPagerItem.OwnerTableView.ClientID)
rcbPager.Items.Add(oNewItem)
Next
If
iTotalItems > 0
Then
Dim
oItem
As
RadComboBoxItem = rcbPager.FindItemByValue(oPagerItem.OwnerTableView.PageSize.ToString())
If
oItem IsNot
Nothing
Then
oItem.Selected =
True
End
If
End
If
End
Sub
RadListBoxItem item =
new
RadListBoxItem(storageIDictionary[
"UserName"
].ToString());
item.ImageUrl = storageIDictionary[
"Image"
].ToString();
Individual_List.Items.Add(item);