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); }