private ListSearchFiltersRequest BuildRequest(ModuleInstanceView parent, ListRefinerView settingsData, IDictionary<string, string> parameters)
        {
            var searchRequest = new ListSearchFiltersRequest();

            // Location Context
            searchRequest.OrganizationalUnitId = LocationContextHelper.ResolveLocationContext(parent, settingsData, parameters).Id;
            searchRequest.DescendantOption = LocationContextHelper.ResolveLocationDescendantOption(settingsData, parameters);
            //Keyword
            if (parameters.ContainsKey("Keyword"))
                searchRequest.Keyword = parameters["Keyword"];
            //Event Title
            if (parameters.ContainsKey("EventId"))
                searchRequest.Title = parameters["EventId"];
            if (parameters.ContainsKey("EventText"))
                searchRequest.Title = parameters["EventText"];
            //Location
            if (parameters.ContainsKey("LocationId"))
                searchRequest.OrganizationalUnitId = int.Parse(parameters["LocationId"]);
            if (parameters.ContainsKey("LocationText"))
                searchRequest.OrganizationalUnitName = parameters["LocationText"];
            //Event Topic
            if (parameters.ContainsKey("EventTopicId"))
                searchRequest.EventTopicId = int.Parse(parameters["EventTopicId"]);
            //Event Type
            if (parameters.ContainsKey("EventTypeId"))
                searchRequest.EventTypeId = int.Parse(parameters["EventTypeId"]);
            //Start Date
            if (parameters.ContainsKey("StartDate"))
                searchRequest.EventStartDate = DateTime.Parse(parameters["StartDate"]);
            //End Date
            if (parameters.ContainsKey("EndDate"))
                searchRequest.EventEndDate = DateTime.Parse(parameters["EndDate"]);
            //Postal Code
            if (parameters.ContainsKey("PostalCode"))
                searchRequest.PostalCode = parameters["PostalCode"];
            //Search Radius
            if (parameters.ContainsKey("RadiusDistance") && !string.IsNullOrEmpty(parameters["RadiusDistance"]))
                searchRequest.SearchRadius = int.Parse(parameters["RadiusDistance"]);

            //Dynamic Column Filtering
            if (parameters.Any(p => p.Key.StartsWith(Constants.DynamicColumnPrefix)))
            {
                var dynamicFilters = new List<string>();
                foreach (var item in parameters.Where(p => p.Key.StartsWith(Constants.DynamicColumnPrefix)))
                {
                    dynamicFilters.Add(item.Value);
                }
                searchRequest.DynamicColumns = dynamicFilters;
            }

            return searchRequest;
        }
 /// <summary>
 ///  Determines whether the specified <see cref="ListSearchFiltersRequest" /> is equal to this instance.
 /// </summary>
 /// <param name="other">The other.</param>
 /// <returns></returns>
 public bool Equals(ListSearchFiltersRequest other)
 {
     return base.Equals(other) && string.Equals(BaseSearchUrl, other.BaseSearchUrl);
 }