/// <summary> /// Bind data to the grid control. /// </summary> private void BindDiscountsGrid() { var instanceId = this.RegistrationInstanceId; if (instanceId == null || instanceId == 0) { return; } var registrationTemplateDiscountService = new RegistrationTemplateDiscountService(new RockContext()); var data = registrationTemplateDiscountService.GetRegistrationInstanceDiscountCodeReport(( int )instanceId); // Add Date Range var dateRange = SlidingDateRangePicker.CalculateDateRangeFromDelimitedValues(sdrpDiscountDateRange.DelimitedValues); if (dateRange.Start.HasValue) { data = data.Where(r => r.RegistrationDate >= dateRange.Start.Value); } if (dateRange.End.HasValue) { data = data.Where(r => r.RegistrationDate < dateRange.End.Value); } // Discount code, use ddl if one is selected, otherwise try the search box. if (ddlDiscountCode.SelectedIndex > 0) { data = data.Where(r => r.DiscountCode == ddlDiscountCode.SelectedItem.Text); } else if (tbDiscountCodeSearch.Text.IsNotNullOrWhiteSpace()) { System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(tbDiscountCodeSearch.Text.ToLower()); data = data.Where(r => regex.IsMatch(r.DiscountCode.ToLower())); } var results = data.ToList(); SortProperty sortProperty = gDiscounts.SortProperty; if (sortProperty != null) { results = results.AsQueryable().Sort(sortProperty).ToList(); } else { results = results.OrderByDescending(d => d.RegistrationDate).ToList(); } gDiscounts.DataSource = results; gDiscounts.DataBind(); PopulateTotals(results); }