Summary description for RepairCardFilter
 protected void FilterRepairCards_OnClick(object sender, EventArgs e)
 {
     CarServicePresentationUtility.ClearNotificationMsgList(this.notificationMsgList);
     CarServicePresentationUtility.HideNotificationMsgList(this.notificationMsgList);
     int filterType = this.repairCardsFilterType.SelectedIndex;
     RepairCardFilter filter = new RepairCardFilter(filterType);
     if (filterType == CarServiceConstants.ALL_REPAIR_CARDS_FILTER_TYPE)
     {
         filter.VinChassis = this.VinChassisAllRepairCardsTxt.Text;
     }
     else if (filterType == CarServiceConstants.FINISHED_REPAIR_CARDS_FILTER_TYPE)
     {
         DateTime? fromFinishRepairDate = null;
         bool validFromFinishRepairDate = false;
         string fromFinishDateTxt = this.fromFinishRepairDate.SelectedDate;
         if (string.IsNullOrEmpty(fromFinishDateTxt) == false)
         {
             DateTime fromFinishRepairDateValue = DateTime.Now;
             validFromFinishRepairDate = CarServiceUtility.IsValidDate(fromFinishDateTxt, out fromFinishRepairDateValue);
             if (validFromFinishRepairDate == true)
             {
                 fromFinishRepairDate = fromFinishRepairDateValue;
             }
         }
         DateTime? toFinishRepairDate = null;
         bool validToFinishRepairDate = false;
         string toFinishRepairDateTxt = this.toFinishRepairDate.SelectedDate;
         if (string.IsNullOrEmpty(toFinishRepairDateTxt) == false)
         {
             DateTime toFinishRepairDateValue = DateTime.Now;
             validToFinishRepairDate = CarServiceUtility.IsValidDate(toFinishRepairDateTxt, out toFinishRepairDateValue);
             if (validToFinishRepairDate == true)
             {
                 toFinishRepairDate = toFinishRepairDateValue;
             }
         }
         if (validFromFinishRepairDate && validToFinishRepairDate)
         {
             filter.FromFinishRepair = fromFinishRepairDate.Value;
             filter.ToFinishRepair = toFinishRepairDate.Value;
         }
         else
         {
             if (validFromFinishRepairDate == false)
             {
                 CarServicePresentationUtility.AppendNotificationMsg("From finish repair date is not valid format", this.notificationMsgList);
             }
             if (validToFinishRepairDate == false)
             {
                 CarServicePresentationUtility.AppendNotificationMsg("To finish repair date is not valid format", this.notificationMsgList);
             }
             CarServicePresentationUtility.ShowNotificationMsgList(this.notificationMsgList);
             return;
         }
     }
     else if (filterType == CarServiceConstants.UNFINISHED_REPAIR_CARDS_FILTER_TYPE)
     {
         bool validDate = false;
         string startRepairDateTxt = this.startRepairDate.SelectedDate;
         if (string.IsNullOrEmpty(startRepairDateTxt) == false)
         {
             DateTime startRepairDateValue = DateTime.Now;
             validDate = CarServiceUtility.IsValidDate(startRepairDateTxt, out startRepairDateValue);
             if (validDate == true)
             {
                 filter.StartRepair = startRepairDateValue;
             }
         }
         if (validDate == false)
         {
             CarServicePresentationUtility.AppendNotificationMsg("Start repair date is not valid format", this.notificationMsgList);
             CarServicePresentationUtility.ShowNotificationMsgList(this.notificationMsgList);
             return;
         }
         filter.VinChassis = this.VinChassisTxt.Text;
     }
     ViewState[CarServiceConstants.SORT_DIRECTION_VIEW_STATE_ATTR] = SortDirection.Ascending;
     ViewState[CarServiceConstants.SORT_EXPRESSION_VIEW_STATE_ATTR] = CarServiceConstants.REPAIR_CARD_ID_SORT_EXPRESSION;
     Session[CarServiceConstants.REPAIR_CARDS_FILTER_SESSION_ATTR_NAME] = filter;
     IQueryable<RepairCard> customRepairCards = FilterRepairCards(filter);
     BindRepairCardsGrid(customRepairCards);
 }
 private IQueryable<RepairCard> FilterRepairCards(RepairCardFilter filter)
 {
     IQueryable<RepairCard> repairCards = null;
     int filterType = filter.Type;
     switch (filterType)
     {
         case CarServiceConstants.ALL_REPAIR_CARDS_FILTER_TYPE:
             repairCards = FilterRepairCards(filter.VinChassis);
             break;
         case CarServiceConstants.UNFINISHED_REPAIR_CARDS_FILTER_TYPE:
             repairCards = FilterUnfinishedRepairCards(filter.StartRepair, filter.VinChassis);
             break;
         case CarServiceConstants.FINISHED_REPAIR_CARDS_FILTER_TYPE:
             repairCards = FilterFinishedRepairCards(filter.FromFinishRepair, filter.ToFinishRepair);
             break;
     }
     return repairCards;
 }