/// <summary> /// Adds field search criteria to the search criteria. /// </summary> /// <param name="speciesObservationFieldSearchCriteria">The field search criteria.</param> public void AddFieldFilterExpressions(SpeciesObservationFieldSearchCriteria speciesObservationFieldSearchCriteria) { int countBefore = FieldFilterExpressions.Count; if (speciesObservationFieldSearchCriteria.IsNull()) { return; } if (!IsActive && !HasSettings) { IsActive = true; } var newList = new List <SpeciesObservationFieldSearchCriteria>(FieldFilterExpressions); newList.Add(speciesObservationFieldSearchCriteria); IEnumerable <SpeciesObservationFieldSearchCriteria> distinctList = newList.Distinct(); var distinctCollection = new ObservableCollection <SpeciesObservationFieldSearchCriteria>(); foreach (var filter in distinctList) { distinctCollection.Add(filter); } FieldFilterExpressions = distinctCollection; int countAfter = FieldFilterExpressions.Count; if (!IsActive && (countAfter > countBefore)) { IsActive = true; } }
/// <summary> /// Add field search criteria to MySettings. /// </summary> /// <param name="speciesObservationFieldSearchCriteria"></param> public void AddFieldFilterExpressions(SpeciesObservationFieldSearchCriteria speciesObservationFieldSearchCriteria) { FieldSetting.AddFieldFilterExpressions(speciesObservationFieldSearchCriteria); }
public void AddAndRemoveFilteredFieldTest() { using (ShimsContext.Create()) { // Assign string strClass; string strFieldValue; string strFieldId; string strFieldName; string strCompareOperator; string strLogicalOperator; FilterController filterController; RedirectResult result; FieldViewModel model; ISpeciesObservationFieldDescription fieldDescription; ISpeciesObservationFieldSearchCriteria expectedField = new SpeciesObservationFieldSearchCriteria() { Class = new SpeciesObservationClass() { Id = SpeciesObservationClassId.DarwinCore }, Operator = CompareOperator.Like, Property = new SpeciesObservationProperty() { Id = SpeciesObservationPropertyId.Owner }, Type = DataType.String, Value = "flodin" }; filterController = new FilterController(); strClass = "DarwinCore"; strFieldValue = "flodin"; strFieldId = "146"; strFieldName = "Owner"; strCompareOperator = "LIKE"; strLogicalOperator = "OR"; model = new FieldViewModel(); model.FieldDescriptionTypes = new FieldViewModel.SpeciesObservationFieldDescriptionType(); model.FieldDescriptionTypes.FieldDescriptionTypes = new Dictionary <string, List <ISpeciesObservationFieldDescription> >(); fieldDescription = new SpeciesObservationFieldDescription(); fieldDescription.Type = DataType.String; model.FieldDescriptionTypes.FieldDescriptionTypes.Add(strClass, new List <ISpeciesObservationFieldDescription> { fieldDescription }); // Act ActionResult viewResult = filterController.Field(); // Test add field to MySettings result = filterController.AddFieldToFilter( strClass, strFieldValue, strFieldId, strFieldName, strCompareOperator, strLogicalOperator, "Home/Index"); // Assert Assert.IsNotNull(viewResult); Assert.IsTrue(result.Url == "Home/Index"); Assert.AreEqual(expectedField.Type, fieldDescription.Type); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldFilterExpressions.Count == 1); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldFilterExpressions[0].Class.Id.Equals(expectedField.Class.Id)); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldFilterExpressions[0].Value.Equals(expectedField.Value)); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldLogicalOperator == LogicalOperator.Or); // Test remove field from MySettings result = filterController.ResetFields("Home/Index"); Assert.IsTrue(result.Url == "Home/Index"); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldFilterExpressions.Count == 0); Assert.IsTrue(SessionHandler.MySettings.Filter.Field.FieldLogicalOperator == LogicalOperator.And); } }