Error in Scheduler (IComparer)

8 posts, 0 answers
  1. Adam Corriher
    Adam Corriher avatar
    10 posts
    Member since:
    Nov 2006

    Posted 04 Mar 2014 Link to this post

    I am getting the following error message sometimes when my scheduler is trying to display.  I am feeding it a dataset with start and end dates that traverse anywhere from one day to many weeks.  All of the data looks good and no end dates are less than the start dates.  Are there any quick things I could check to fix this.

    I have implemented a custom appointment comparing class and when I use this the scheduler does initially display all values, but once I click to access anything else I get the error below.

    Please help when you can.

    Error:
    Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields different results. IComparer: 'Telerik.Web.UI.AppointmentComparer'.

    Type:
    System.ArgumentException

    Stack Trace:
    at System.Collections.Generic.IntrospectiveSortUtilities.ThrowOrIgnoreBadComparer(Object comparer)
    at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
    at System.Collections.Generic.List`1.Sort(Int32 index, Int32 count, IComparer`1 comparer)
    at Telerik.Web.UI.Scheduler.Views.Month.Model.CreateDaySlot(DateTime dayStart, DateTime dayEnd, Int32 dayIndex, DateTime weekStart, IList`1 trimmedAppointments)
    at Telerik.Web.UI.Scheduler.Views.Month.Model.DataBind(AppointmentCollection appointments)
    at Telerik.Web.UI.RadScheduler.CreateContent()
    at Telerik.Web.UI.RadScheduler.CreateChildControls(Boolean bindFromDataSource)
    at System.Web.UI.Control.EnsureChildControls()
    at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)
    at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  2. Adam Corriher
    Adam Corriher avatar
    10 posts
    Member since:
    Nov 2006

    Posted 04 Mar 2014 Link to this post

    I created a simple example using the data I would use to populate the scheduler in my application.  I sorted it one way based my application and it gave me the error above.  I took out all sorting so it is in a different random order and it displayed correctly.  The data set only contains 4 columns including a Start date and end date.  The example I created also does not have a custom appointment comparing class.
  3. Nencho
    Admin
    Nencho avatar
    1609 posts

    Posted 07 Mar 2014 Link to this post

    Hello Adam,

    I am sending you a sample project, demonstrating the custom implementation of Comparing, that we suggest to use. Please give it a try at your end and let us know if further questions on the implementation arise.

    Regards,
    Nencho
    Telerik

    DevCraft Q1'14 is here! Watch the online conference to see how this release solves your top-5 .NET challenges. Watch on demand now.

  4. Matthew
    Matthew avatar
    2 posts
    Member since:
    Nov 2016

    Posted 18 Nov 2016 Link to this post

    Nencho,

    Could you please post the custom implementation that you gave Adam? We're also running into this issue and need it fixed.

    Thanks,

    Matthew

  5. Nencho
    Admin
    Nencho avatar
    1609 posts

    Posted 21 Nov 2016 Link to this post

    Hello Matthew,

    You can find the sample attached to this reply.

    Regards,
    Nencho
    Telerik by Progress
    Telerik UI for ASP.NET AJAX is ready for Visual Studio 2017 RC! Learn more.
  6. Matthew
    Matthew avatar
    2 posts
    Member since:
    Nov 2016

    Posted 21 Nov 2016 Link to this post

    Awesome, perfect! Thank you, Nencho
  7. Trevor
    Trevor avatar
    2 posts
    Member since:
    May 2017

    Posted 17 May in reply to Matthew Link to this post

    I'm also having exactly the same issue. However, I downloaded the sample application and implemented the Comparer code in exactly the same way (I copied and pasted it) and I still have the same problem with one particular set of data.  The custom comparer code we have, has been in place for nearly 3 years and this is the first time we have encountered this issue.  We're using RadScheduler and there are 17 appointments for the same day. If I change one of the appointments so that the start date lands on a different day, it works fine. Just like in the post above, the calendar for the current month is initially shown without any problem. However, if the user then clicks to navigate forward or back one month, I get the same error referenced above. I even hard-coded the Compare method to always return 0 as a test and that didn't work either. I also tried removing the custom comparer altogether and it seems that whatever default sorting that RadScheduler does causes the same exception to be thrown but on the initial load so that even the current month's calendar will not be shown.

    Is anyone else running into this?

    Thanks

  8. Trevor
    Trevor avatar
    2 posts
    Member since:
    May 2017

    Posted 17 May Link to this post

    This definitely seems to be a bug in at least the older version of this component. I upgraded to the trial version of the latest RadScheduler and it does not have this problem. However, what I really need is a workaround if at all possible for the version I'm on which is 2013.2.717.45 .  Thanks!
Back to Top