private void bubbleSort()
        {
            int length = elements.Count;

            for (int i = 0; i < length; i++)
            {
                for (int j = 0; j < length - i - 1; j++)
                {
                    TimerListElement placeHolder1 = elements[j] as TimerListElement;
                    TimerListElement placeHolder2 = elements[j + 1] as TimerListElement;
                    if (placeHolder1.remSpan.CompareTo(placeHolder2.remSpan) > 0)
                    {
                        elements[j]     = placeHolder2;
                        elements[j + 1] = placeHolder1;
                    }
                }
            }
        }
 private void UpdateDataList()
 {
     for (int i = 0; i < cells.GetLength(0); i++)
     {
         for (int j = 0; j < cells.GetLength(1); j++)
         {
             if (cells[i, j] != null && !Icolbl[i, j].Background.Equals(Brushes.Black))
             {
                 TimerListElement output = new TimerListElement();
                 output.ovenName   = cells[i, j].getOvenName();
                 output.recipeName = Server.getRecipeName(cells[i, j].getRecipeKey());
                 int[] placeHolder = cells[i, j].getProgressionID();
                 output.progressionID = Conversions.progressionIDToString(placeHolder);
                 output.locationID    = cells[i, j].getRow().ToString() + (cells[i, j].getColumn() + 1).ToString();
                 output.StartTime     = Server.getStartTime(cells[i, j].getOvenName(), cells[i, j].getRow(), cells[i, j].getColumn());
                 output.EndTime       = output.StartTime.Add(cells[i, j].getLimits()[0]);
                 if (IsCellOn(cells[i, j]))
                 {
                     output.singleCounter = cells[i, j].getSingleCounter();
                     output.timer         = cells[i, j].getSecTimerLimit();
                     output.limits        = cells[i, j].getLimits();
                     if (output.timer != -1)
                     {
                         output.remSpan = Conversions.StripMiliSec(cells[i, j].getTimeSpan());
                     }
                     else
                     {
                         output.remSpan = new TimeSpan(0, 0, 0, 0);
                     }
                 }
                 else
                 {
                     output.timer   = 0;
                     output.remSpan = new TimeSpan(0, 0, 0, 0);
                 }
                 elements.Add(output);
             }
         }
     }
 }