Next Release

Jul 15, 2009 at 6:02 PM

So our first day of VBS with checkin apparently didn't go as smoothly as we thought it might.  We ran into issues that was causing kids to be sent to the wrong class.  Here's the scenario:

  • Class B:  Ages 5.00 - 6.99 (No grade)
  • Class A:  Grades 1 - 3

In our configuration of the data, Class A has a higher priority (type_order on core_occurrence_type is sorted descending).  Class A should be sorted by the Check-in Controller class ahead of Class B.  However, our Class A was being filtered behind Class B.  So first graders (who had their grade defined on their person record in Arena) were being put into Class B.

We did some pretty extensive testing and were unable to replicate the issue.  Our educated guess is officially "gremlins did it".  We're planning on doing a quick compare of our database from Monday morning to see if the type_order on the core_occurrence_type table was somehow compromised.

As a byproduct of this issue, Nick and I have implemented some basic logging onto the CheckinBLL.  We created a new entity object called AppLog that uses some simple LINQ to SQL to populate the database.  We also made a couple additional optimizations for improved performance on the FilterOccurrences() method in the CheckinBLL and did some extra brute-force sorting on our IEnumerable<Occurrence> collection that's passed into FilterOccurrences() via LINQ's orderby clause (which implicitly casts the return result into an IOrderedEnumerable<Occurrence> collection).

Before we make this into a full blown release, we wanted to solicit for ideas and get any outstanding changes that you guys have made for review and implementation into the product.

Aug 19, 2009 at 7:01 PM

Just to follow up here (some follow up occurred on the #ArenaChMS IRC channel) the problem was due to Arena's adding all new AttendanceTypes with a type_order value of 999.  We are going to remove the LINQ reordering Jason mentioned above but keep the logging feature in the v1.2.0 release.