This is a migrated thread and some comments may be shown as answers.

Scheduler breaks after grid update and scheduler new appt

0 Answers 21 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
EJ
Top achievements
Rank 1
EJ asked on 18 Jan 2019, 05:32 AM

I'm having a very strange issue.  When I update or save a record in any one of my 3 RadGrids, then add a new appointment to the Scheduler, it saves the new appointment but then the scheduler stops reacting to any events.  It will not let you edit, or add new appointments and the will error as if it were not registered.  I've included my add code for the scheduler and save function from one of my RadGrids (they're all similar).

protected void RadScheduler1_AppointmentInsert(object sender, AppointmentInsertEventArgs e)
{
    string newslot = e.Appointment.Attributes["SlotDesc"].ToString();
    if (!IsValidAppointment(e.Appointment, newslot))
    {
        e.Cancel = true;
        EventsDataSource.SelectCommand = eventsselectsql;
        RadScheduler1.Rebind();
        return;
    }
    if (e.Appointment.Resources.GetResourceByType("Status").Key.ToString().Equals("UNSCHEDULED", StringComparison.OrdinalIgnoreCase))
        return;
    string fakeid = string.Empty;
    try
    {
        fakeid = e.Appointment.ID.ToString();
        Session["OrigApptID"] = fakeid;
        e.Appointment.Attributes["SystemID"] = null;
    }
    catch
    { }
    int custid = -1;
    try
    {
        custid = int.Parse(Session["CurrentCustomerID"].ToString());
        Session.Remove("CurrentCustomerID");
    }
    catch{}
    if(!e.Appointment.Subject.Equals("CLOSED", StringComparison.OrdinalIgnoreCase) && !e.Appointment.Subject.Equals("LUNCH", StringComparison.OrdinalIgnoreCase))
    {
        string trailerID = e.Appointment.Attributes["TrailerID"];
        string carrierID = e.Appointment.Resources.GetResourceByType("CarrierID") == null ? null : e.Appointment.Resources.GetResourceByType("CarrierID").Key.ToString();
        if (!string.IsNullOrWhiteSpace(trailerID) && !string.IsNullOrWhiteSpace(carrierID))
        {
            InOpenTrailers(trailerID, carrierID);
        }
 
        UpdatePOList(int.Parse(fakeid), custid);
        rgOpenTrailers.Rebind();
        rgOpenPO.Rebind();
    }
    ClearSearch();
}
private void ClearSearch()
{
    GridDataSource.SelectCommand = originalUnschedQuery;
    rgUnscheduled.DataBind();
    Session["ApptID"] = -1;
    btnResetSearch.Visible = false;
    txtSearch.Text = "";
    RadScheduler1.DayStartTime = cliconf.DayStartTime;
    RadScheduler1.DayEndTime = cliconf.DayEndTime;
    RadScheduler1.WorkDayStartTime = cliconf.WorkDayStartTime;
    RadScheduler1.WorkDayEndTime = cliconf.WorkDayEndTime;
 
    DateTime date = RadScheduler1.SelectedDate;
    Session.Add("CurrentDate", date.AddDays(-1).ToShortDateString());
    Session.Add("NextDate", date.AddDays(1).ToShortDateString());
    EventsDataSource.SelectCommand = eventsselectsql;
    RadScheduler1.Rebind();
    foreach (GridColumn column in SearchGrid.MasterTableView.OwnerGrid.Columns)
    {
        column.CurrentFilterFunction = GridKnownFunction.NoFilter;
        column.CurrentFilterValue = string.Empty;
    }
    searchWhere = string.Empty;
    SearchGrid.MasterTableView.FilterExpression = string.Empty;
    SearchGrid.MasterTableView.Rebind();
    SearchGrid.Rebind();
}
protected void btnTrailerSave_Click(object sender, EventArgs e)
{
    string update = string.Empty;
    if (txtApptID.ReadOnly)
    {
        update = "UPDATE OpenTrailers SET ";
        update += "TrailerTypeID = '" + cboTrailerTrailerType.SelectedValue + "'";
        update += ", TrailerTypeDesc = '" + cboTrailerTrailerType.SelectedItem.Text + "'";
        update += ", RefField1='" + txtTrailerRef1.Text.TrimAndSafeDB() + "'";
        update += ", RefField2='" + txtTrailerRef2.Text.TrimAndSafeDB() + "'";
        update += ", RefField3='" + txtTrailerRef3.Text.TrimAndSafeDB() + "'";
        update += ", RefField4='" + txtTrailerRef4.Text.TrimAndSafeDB() + "'";
        update += ", RefField5='" + txtTrailerRef5.Text.TrimAndSafeDB() + "'";
        update += ", LocationID = '" + cboTrailerLocation.SelectedValue + "'";
        update += ", LocationDesc = '" + cboTrailerLocation.SelectedItem.Text + "'";
        update += " WHERE TrailerID='" + txtApptID.Text + "' AND CarrierID=" + cboTrailerCarrier.SelectedValue;
        update = string.Concat(update, " and ClientID=", Session["ClientID"].ToString(), " and AccountID=", Session["AccountID"].ToString(), " and WarehouseID=", Session["WarehouseID"].ToString());
    }
    else
    {
        update = "INSERT INTO OpenTrailers (ClientID, ClientName, AccountID, AccountName, WarehouseID, WarehouseName, CarrierID, CarrierDesc, TrailerID, TrailerTypeID, TrailerTypeDesc, RefField1, RefField2, RefField3, RefField4, RefField5, LocationID, LocationDesc, CreatedBy, CreatedDateTime, ModifiedBy, ModifiedDateTime) values (";
        update += Session["ClientID"].ToString() + ", ";
        update += "(Select ClientName from Client where ClientID=" + Session["ClientID"].ToString() + "), ";
        update += Session["AccountID"].ToString() + ", ";
        update += "(Select AccountName from Account where AccountID=" + Session["AccountID"].ToString() + "), ";
        update += Session["WarehouseID"].ToString() + ", ";
        update += "(Select WarehouseName from Warehouse where WarehouseID=" + Session["WarehouseID"].ToString() + "), ";
        update += cboTrailerCarrier.SelectedValue + ", ";
        update += "'" + cboTrailerCarrier.SelectedItem.Text + "', ";
        update += "'" + txtApptID.Text +"', ";
        update += "'" + cboTrailerTrailerType.SelectedValue + "', ";
        update += "'" + cboTrailerTrailerType.SelectedItem.Text + "', ";
        update += "'" + txtTrailerRef1.Text.TrimAndSafeDB() + "', ";
        update += "'" + txtTrailerRef2.Text.TrimAndSafeDB() + "', ";
        update += "'" + txtTrailerRef3.Text.TrimAndSafeDB() + "', ";
        update += "'" + txtTrailerRef4.Text.TrimAndSafeDB() + "', ";
        update += "'" + txtTrailerRef5.Text.TrimAndSafeDB() + "', ";
        update += "'" + cboTrailerLocation.SelectedValue + "', ";
        update += "'" + cboTrailerLocation.SelectedItem.Text + "', ";
        update += "'" + Session["UserID"].ToString() + "', ";
        update += "'" + DateTime.Now + "', ";
        update += "'" + Session["UserID"].ToString() + "', ";
        update += "'" + DateTime.Now + "') ";
    }
    SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DMSConnectionString"].ConnectionString);
    conn.Open();
    SqlTransaction trans = conn.BeginTransaction();
    SqlCommand cmd = new SqlCommand(update);
    cmd.Transaction = trans;
    try
    {
        cmd.Connection = conn;
        cmd.ExecuteNonQuery();
        trans.Commit();
    resetGrids();
    }
    catch (Exception ex)
    {
        RadAjaxManager1.Alert("An error occurred during the save: " + ex.Message);
        cmd.Dispose();
        hdnTrailerIndex.Value = "OPEN";
        trans.Rollback();
    }
    finally
    {
        cmd.Dispose();
        conn.Close();
        conn.Dispose();
    }
}

No answers yet. Maybe you can help?

Tags
Scheduler
Asked by
EJ
Top achievements
Rank 1
Share this question
or