Completed
Last Updated: 10 Feb 2016 09:24 by ADMIN
ADMIN
Dess | Tech Support Engineer, Sr.
Created on: 27 Jan 2016 09:10
Category: Scheduler/Reminder
Type: Bug Report
2
FIX. RadScheduler - RadSchedulerReminder shows incorrect Due In time when the appointment is updated
Please refer to the attached file.

Workaround: clear remind objects when the appointment is changed:
private void radScheduler1_AppointmentChanged(object sender, AppointmentChangedEventArgs e)
{
    schedulerReminder.ClearRemindObjects();        
    foreach (Appointment a in this.radScheduler1.Appointments)
            {
                schedulerReminder.AddRemindObject(a);
            }  
}
4 comments
ADMIN
Stefan
Posted on: 03 Feb 2016 10:43
Hi Ankit,

We also do not think this is an ideal solution, but we wanted to provide some workaround if one needs this resolved immediately. There shouldn't be any memory issues, just make sure you unsubscribe from the events prior subscribing in order to avoid multiple subscriptions.

Still, we will be working on a fix for this and we will even try to squeeze it for the upcoming Q1 2016 SP1 release, which is due in mid February. 

I hope that you find this information useful.
Ankit
Posted on: 03 Feb 2016 02:50
Hi Desislava

Thanks for this code.

I don't think this is an ideal solution and possibly an interim fix. It raises many events and declaration. I need to recycle and think of memory management. I am not happy to do this much for a minor control bug which can be easily fixed in SDK. You also think it from my point of view as we have big production system and if we start developing work around for each Vendor's every bug. It will also make upgrade of control bit hard.

Again,  I respect and appreciate your help to get to this stage with my request. But, now, we are going too deep down to fix. May be it's worth thinking to fix within SDK as minor release.

Hope this makes sense.
ADMIN
Dess | Tech Support Engineer, Sr.
Posted on: 02 Feb 2016 15:38
Hi Ankit,

As I suggested in the support thread, you can use the RadReminderBindableObject.DueInFormatting event. Thus, you can control what exactly will be displayed in the "Due In" column. Here is demonstrated a sample approach how to use this event:

private void schedulerReminder_AlarmFormShowing(object sender, RadAlarmFormShowingEventArgs e)
{
    RadAlarmForm alarmForm = e.AlarmForm as RadAlarmForm;
    if (alarmForm != null)
    {
        alarmForm.Shown += alarmForm_Shown;
    }
}
 
private void alarmForm_Shown(object sender, EventArgs e)
{
    RadAlarmForm alarmForm = sender as RadAlarmForm;
    RadGridView radGridViewEvents = alarmForm.Controls["radGridViewEvents"] as RadGridView;
    BindingList<RadReminderBindableObject> reminderBindableObjects = radGridViewEvents.DataSource as BindingList<RadReminderBindableObject>;
    foreach (RadReminderBindableObject r in reminderBindableObjects)
    {
        r.DueInFormatting -= r_DueInFormatting;
        r.DueInFormatting += r_DueInFormatting;
    }
    radGridViewEvents.MasterTemplate.Refresh();
}
 
private void r_DueInFormatting(object sender, RadDueInArgs e)
{
    RadReminderBindableObject obj = sender as RadReminderBindableObject;
 //TODO
    e.DueInText = obj.StartDateTime.ToString();
}
Ankit
Posted on: 01 Feb 2016 02:37
As discussed in my support ticket, this is not a solution.
It requires proper fix.