or
public abstract class DbSchedulerProviderBase : SchedulerProviderBase { protected DbProviderFactory DbFactory { get { return DbProviderFactories.GetFactory("System.Data.EntityClient");} set { }} protected bool PersistChanges { get { }; set { }; } protected string ConnectionString { get { return ConfigurationManager.ConnectionStrings["RadLabDBEntities"].ConnectionString;} set { }; } public override void Initialize(string name, NameValueCollection config) { }; protected virtual DbConnection OpenConnection() { }; protected virtual DbParameter CreateParameter(string name, object value) { }; }<configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> <connectionStrings> <add name="TelerikConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Telerik.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> <add name="TelerikVSXConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TelerikVSX.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> <add name="Telerik" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Telerik;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="RadLabDBEntities" connectionString="metadata=res://BarLab/BarLabModel.csdl|res://BarLab/BarLabModel.ssdl|res://BarLab/BarLabModel.msl;provider=System.Data.SqlClient;provider connection string='data source=IRIONVO\SQLIRIONVO;initial catalog=RadLabDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" /> </connectionStrings><entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>using System;using System.Collections;using System.Collections.Generic;using System.Collections.Specialized;using System.Data.Common;using System.Data.SqlClient;using System.Linq;using System.Web;using Telerik.Web.UI; public class RadLabDbSchedulerProvider : DbSchedulerProviderBase { public ArrayList resourceKeys = new ArrayList(); public Dictionary<int, Resource> _persons { get; set; } public Dictionary<int, Resource> _hardware { get; set; } public override IEnumerable<ResourceType> GetResourceTypes(RadScheduler owner) { ResourceType[] resourceTypes = new ResourceType[2]; resourceKeys.Clear(); resourceTypes[0] = new ResourceType("Person", true); resourceKeys.Add("Person"); resourceTypes[1] = new ResourceType("BAR_HW", true); resourceKeys.Add("BAR_HW"); return resourceTypes; } public override IEnumerable<Resource> GetResourcesByType(RadScheduler owner, string resourceType) { switch (resourceType) { case "Person": return Persons.Values; case "BAR_HW": return BAR_HWs.Values; default: throw new InvalidOperationException("Unknown resource type: " + resourceType); } } private IDictionary<int, Resource> Persons { get { if (_persons == null) { _persons = new Dictionary<int, Resource>(); foreach (Resource person in LoadPersons()) { _persons.Add((int)person.Key, person); } } return _persons; } } private IDictionary<int, Resource> BAR_HWs { get { _hardware = new Dictionary<int, Resource>(); foreach (Resource hardware in LoadHardware()) { _hardware.Add((int)hardware.Key, hardware); } return _hardware; } } private IEnumerable<Resource> LoadPersons() { List<Resource> resources = new List<Resource>(); using (DbConnection conn = OpenConnection()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT [ResourceId], [Name], [Type], [Available], [ParentId], [Level], [Status], [Shared], [LastModifedTime], [Url], [LastModifedUser], [Building], [PersonId], [QuicklookId], [Cube], [Phone], [Email] FROM [Person]"; using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Resource res = new Resource(); res.Type = "Person"; res.Key = reader["ResourceId"]; res.Text = Convert.ToString(reader["Name"]); res.Attributes["ParentId"] = Convert.ToString(reader["ParentId"]); res.Attributes["Type"] = Convert.ToString(reader["Type"]); res.Attributes["BomId"] = string.Empty; res.Attributes["Approved"] = string.Empty; resources.Add(res); } } } return resources; } private IEnumerable<Resource> LoadHardware() { List<Resource> resources = new List<Resource>(); using (DbConnection conn = OpenConnection()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT [ResourceId], [Name], [Type], [Available], [ParentId], [Level], [Status], [Shared], [LastModifedTime], [Url], [LastModifedUser], [Building], [HWId], [Lab], [Tile], [BomId], [Owner], [RegisteredTime], [LastContactTime], [Station], [Row], [IP], [Cabinet], [RailSlot], [SizeU], [AssetTag], [SrvsTicket] FROM [BAR_HW]"; using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Resource res = new Resource(); res.Type = "BAR_HW"; res.Key = reader["ResourceId"]; res.Text = Convert.ToString(reader["Name"]); res.Attributes["ParentId"] = Convert.ToString(reader["ParentId"]); res.Attributes["Type"] = Convert.ToString(reader["Type"]); res.Attributes["BomId"] = Convert.ToString(reader["BomId"]); res.Attributes["Approved"] = string.Empty; resources.Add(res); } } } return resources; } private void LoadResources(Appointment apt) { using (DbConnection conn = OpenConnection()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.Parameters.Add(CreateParameter("@ScheduleId", apt.ID)); cmd.CommandText = "SELECT [ResourceId], [ParentId], [BomId], [Type], [Approved] FROM [ScheduleResource] WHERE [ScheduleId] = @ScheduleId"; using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { switch (Convert.ToString(reader["Type"])) { case "Person": Resource presource = Persons[Convert.ToInt32(reader["ResourceId"])]; presource.Attributes["ParentId"] = Convert.ToString(reader["ParentId"]); presource.Attributes["Type"] = Convert.ToString(reader["Type"]); presource.Attributes["BomId"] = Convert.ToString(reader["BomId"]); presource.Attributes["Approved"] = Convert.ToString(reader["Approved"]); apt.Resources.Add(presource); break; case "BAR_HW": Resource resource = BAR_HWs[Convert.ToInt32(reader["ResourceId"])]; resource.Attributes["ParentId"] = Convert.ToString(reader["ParentId"]); resource.Attributes["Type"] = Convert.ToString(reader["Type"]); resource.Attributes["BomId"] = Convert.ToString(reader["BomId"]); resource.Attributes["Approved"] = Convert.ToString(reader["Approved"]); apt.Resources.Add(resource); break; default: throw new InvalidOperationException("Unknown resource type: " + Convert.ToString(reader["Type"])); } } } } } public override IEnumerable<Appointment> GetAppointments(RadScheduler owner) { List<Appointment> appointments = new List<Appointment>(); using (DbConnection conn = OpenConnection()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT [ScheduleId], [Subject], [Start], [End], [RecurrenceRule], [RecurrenceParentID], [Email], [LastModified], [Description], [ProjectId], [TicketId], [QuicklookId], [Reminder], [AppointmentColor] FROM [Schedules]"; using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Appointment apt = new Appointment(); apt.Owner = owner; apt.ID = reader["ScheduleId"]; apt.Subject = Convert.ToString(reader["Subject"]); apt.Start = DateTime.SpecifyKind(Convert.ToDateTime(reader["Start"]), DateTimeKind.Utc); apt.End = DateTime.SpecifyKind(Convert.ToDateTime(reader["End"]), DateTimeKind.Utc); apt.RecurrenceRule = Convert.ToString(reader["RecurrenceRule"]); apt.RecurrenceParentID = reader["RecurrenceParentId"] == DBNull.Value ? null : reader["RecurrenceParentId"]; apt.Description = Convert.ToString(reader["Description"]); apt.Attributes["Email"] = reader["Email"].ToString(); apt.Attributes["ProjectId"] = reader["ProjectId"].ToString(); apt.Attributes["TicketId"] = reader["TicketId"].ToString(); apt.Attributes["QuicklookId"] = reader["QuicklookId"].ToString(); apt.Attributes["AppointmentColor"] = reader["AppointmentColor"].ToString(); apt.Attributes["LastModified"] = DateTime.SpecifyKind(Convert.ToDateTime(reader["LastModified"]), DateTimeKind.Utc).ToShortDateString(); if (apt.RecurrenceParentID != null) { apt.RecurrenceState = RecurrenceState.Exception; } else if (apt.RecurrenceRule != string.Empty) { apt.RecurrenceState = RecurrenceState.Master; } LoadResources(apt); appointments.Add(apt); } } } return appointments; } private void FillSchedResources(Appointment appointment, DbCommand cmd, object ScheduleId, string resType) { foreach (Resource resource in appointment.Resources.GetResourcesByType(resType)) { cmd.Parameters.Clear(); cmd.Parameters.Add(CreateParameter("@SchedleId", ScheduleId)); cmd.Parameters.Add(CreateParameter("@ResourceId", resource.Key)); cmd.Parameters.Add(CreateParameter("@ParentId", resource.Attributes["ParentId"])); cmd.Parameters.Add(CreateParameter("@Type", resource.Attributes["Type"])); cmd.Parameters.Add(CreateParameter("@BomId", resource.Attributes["BomId"])); cmd.Parameters.Add(CreateParameter("@Approved", resource.Attributes["Approved"])); cmd.CommandText = "INSERT INTO [ScheduleResource] ([ScheduleId], [ResourceId], [ParentId], [Type], [BomId], [Approved]) VALUES (@ScheduleId, @ResourceId, @ParentId, @Type, @BomId, @Approved)"; cmd.ExecuteNonQuery(); } } private void ClearSchedResources(object ScheduleId, DbCommand cmd) { cmd.Parameters.Clear(); cmd.Parameters.Add(CreateParameter("@ScheduleId", ScheduleId)); cmd.CommandText = "DELETE FROM [ScheduleResource] WHERE [ScheduleId] = @ScheduleId"; cmd.ExecuteNonQuery(); } private void PopulateAppointmentParameters(DbCommand cmd, Appointment apt) { cmd.Parameters.Add(CreateParameter("@Subject", apt.Subject)); cmd.Parameters.Add(CreateParameter("@Start", apt.Start)); cmd.Parameters.Add(CreateParameter("@End", apt.End)); cmd.Parameters.Add(CreateParameter("@Description", apt.Description)); cmd.Parameters.Add(CreateParameter("@Reminder", apt.Reminders)); cmd.Parameters.Add(CreateParameter("@Email", apt.Attributes["Email"])); cmd.Parameters.Add(CreateParameter("@LastModified", apt.Attributes["LastModified"])); cmd.Parameters.Add(CreateParameter("@ProjectId", apt.Attributes["ProjectId"])); cmd.Parameters.Add(CreateParameter("@TicketId", apt.Attributes["TicketId"])); cmd.Parameters.Add(CreateParameter("@QuicklookId", apt.Attributes["QuicklookId"])); cmd.Parameters.Add(CreateParameter("@AppointmentColor", apt.Attributes["AppointmentColor"])); string rrule = null; if (apt.RecurrenceRule != string.Empty) { rrule = apt.RecurrenceRule; } cmd.Parameters.Add(CreateParameter("@RecurrenceRule", rrule)); object parentId = null; if (apt.RecurrenceParentID != null) { parentId = apt.RecurrenceParentID; } cmd.Parameters.Add(CreateParameter("@RecurrenceParentId", parentId)); } public override void Insert(RadScheduler owner, Appointment appointmentToInsert) { if (!PersistChanges) { return; } using (DbConnection conn = OpenConnection()) using (DbTransaction tran = conn.BeginTransaction()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.Transaction = tran; PopulateAppointmentParameters(cmd, appointmentToInsert); cmd.CommandText = @" INSERT INTO [Schedules] ([Subject], [Start], [End], [RecurrenceRule], [RecurrenceParentID], [Email], [LastModified], [Description], [ProjectId], [TicketId], [QuicklookId], [Reminder], [AppointmentColor]) VALUES (@Subject, @Start, @End, @RecurrenceRule, @RecurrenceParentID, @Email, @LastModified, @Description, @ProjectId, @TicketId, @QuicklookId, @Reminder, @AppointmentColor)"; if (DbFactory is SqlClientFactory) { cmd.CommandText += Environment.NewLine + "SELECT SCOPE_IDENTITY()"; } else { cmd.ExecuteNonQuery(); cmd.CommandText = "SELECT @@IDENTITY"; } int identity = Convert.ToInt32(cmd.ExecuteScalar()); foreach (string resType in resourceKeys) { FillSchedResources(appointmentToInsert, cmd, identity, resType); } tran.Commit(); } } public override void Update(RadScheduler owner, Appointment appointmentToUpdate) { if (!PersistChanges) { return; } using (DbConnection conn = OpenConnection()) { using (DbTransaction tran = conn.BeginTransaction()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; cmd.Transaction = tran; PopulateAppointmentParameters(cmd, appointmentToUpdate); cmd.Parameters.Add(CreateParameter("@ScheduleId", appointmentToUpdate.ID)); cmd.CommandText = @"UPDATE [Schedules] SET [Subject] = @Subject, [Start] = @Start, [End] = @End, [RecurrenceRule] = @RecurrenceRule, [RecurrenceParentID]= @RecurrenceParentID, [Email] = @Email, [LastModified] = @LastModified, [Description] = @Description, [ProjectId] = @ProjectId, [TicketId] = @TicketId, [QuicklookId] = @QuicklookId, [Reminder] = @Reminder, [AppointmentColor] = @AppointmentColor WHERE [ScheduleId] = @ScheduleId"; cmd.ExecuteNonQuery(); ClearSchedResources(appointmentToUpdate.ID, cmd); foreach (string resType in resourceKeys) { FillSchedResources(appointmentToUpdate, cmd, appointmentToUpdate.ID, resType); } tran.Commit(); } } } public override void Delete(RadScheduler owner, Appointment appointmentToDelete) { if (!PersistChanges) { return; } using (DbConnection conn = OpenConnection()) { DbCommand cmd = DbFactory.CreateCommand(); cmd.Connection = conn; using (DbTransaction tran = conn.BeginTransaction()) { cmd.Transaction = tran; ClearSchedResources(appointmentToDelete.ID, cmd); cmd.Parameters.Clear(); cmd.Parameters.Add(CreateParameter("@ScheduleId", appointmentToDelete.ID)); cmd.CommandText = "DELETE FROM [Schedules] WHERE [ScheduleId] = @ScheduleId"; cmd.ExecuteNonQuery(); tran.Commit(); } } } }Private Sub RGExpenses_ItemCreated(sender As Object, e As GridItemEventArgs) Handles RGExpenses.ItemCreated If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then Dim list As DropDownList = CType(CType(e.Item, GridEditableItem​Description").Controls(0), DropDownList) list.AutoPostBack = True AddHandler list.SelectedIndexChanged, AddressOf list_SelectedIndexChanged SetAmount(list) End IfEnd SubPrivate Sub list_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 'sets Item amount when change selected value SetAmount(CType(sender, DropDownList))End SubPrivate Sub SetAmount(ByVal ddl As DropDownList) If Not IsNothing(ddl.SelectedItem) Then Dim decPAmount As Decimal = cDB.dbConsult(Application("db"), "SELECT TOP 1 Amount FROM Table1) If RGExpenses.MasterTableView.IsItemInserted Then CType(RGExpenses.MasterTableView.GetInsertItem.FindControl("TB_Amount"), TextBox).Text = decPAmount Else 'here is where I need to find the control, but no method to do so CType(RGExpenses.MasterTableView.FindControl("TB_Amount"), TextBox).Text = decPAmount End If End IfEnd Sub$(document).ready(function () {
$(window).scroll(function () {
var comboBox = $find("RadComboBox1");
if (comboBox.DropDownVisible)
comboBox.hideDropDown();
});
});