/// <summary>
 /// Creates the search criteria based on filter settings.
 /// </summary>
 /// <param name="mySettings">
 /// The my settings object.
 /// </param>
 /// <returns>
 /// The <see cref="SpeciesObservationSearchCriteria"/>.
 /// </returns>
 public SpeciesObservationSearchCriteria CreateSearchCriteria(
     MySettings.MySettings mySettings)
 {
     return(CreateSearchCriteria(
                mySettings,
                mySettings.Presentation.Map.DisplayCoordinateSystem));
 }
예제 #2
0
 /// <summary>
 /// Get grid taxa result base.
 /// </summary>
 public static CalculatedDataItem <IList <IGridCellSpeciesCount> > GetGridCellTaxa(
     MySettings.MySettings mySettings, string localeIsoCode)
 {
     return(GetCalculatedDataItem <IList <IGridCellSpeciesCount> >(
                CalculatedDataItemType.GridCellTaxa,
                mySettings,
                localeIsoCode));
 }
 /// <summary>
 /// Creates the search criteria based on filter settings.
 /// </summary>
 /// <param name="mySettings">
 /// The my settings object.
 /// </param>
 /// <returns>
 /// The <see cref="SpeciesObservationSearchCriteria"/>.
 /// </returns>
 public SpeciesObservationSearchCriteria CreateSearchCriteria(
     MySettings.MySettings mySettings,
     CoordinateSystemId coordinateSystemId)
 {
     return(CreateSearchCriteria(
                mySettings,
                new CoordinateSystem {
         Id = coordinateSystemId
     }));
 }
        public override void Execute()
        {
            System.Diagnostics.Debug.WriteLine("CalculateDefaultTaxonGridTask started");
            IUserContext userContext = CoreData.UserManager.GetCurrentUser();

            MySettings.MySettings mySettings       = new MySettings.MySettings();
            TaxonGridCalculator   resultCalculator = new TaxonGridCalculator(userContext, mySettings);
            TaxonGridResult       result           = resultCalculator.CalculateTaxonGrid(mySettings);

            DefaultResultsManager.AddGridCellTaxa(result);
            System.Diagnostics.Debug.WriteLine("CalculateDefaultTaxonGridTask finished");
        }
        /// <summary>
        /// Creates the search criteria based on filter settings.
        /// </summary>
        /// <param name="mySettings">
        /// The my settings object.
        /// </param>
        /// <returns>
        /// The <see cref="SpeciesObservationSearchCriteria"/>.
        /// </returns>
        public SpeciesObservationSearchCriteria CreateSearchCriteria(
            MySettings.MySettings mySettings,
            ICoordinateSystem coordinateSystem)
        {
            var searchCriteria = new SpeciesObservationSearchCriteria();

            // Default settings
            searchCriteria.IncludePositiveObservations = true;

            // Taxa filter
            if (mySettings.Filter.Taxa.IsActive && mySettings.Filter.Taxa.HasSettings)
            {
                searchCriteria.TaxonIds = mySettings.Filter.Taxa.TaxonIds.ToList();
            }

            // Temporal filter
            if (mySettings.Filter.Temporal.IsActive)
            {
                // Observation date
                if (mySettings.Filter.Temporal.ObservationDate.UseSetting)
                {
                    searchCriteria.ObservationDateTime          = new DateTimeSearchCriteria();
                    searchCriteria.ObservationDateTime.Operator = CompareOperator.Excluding;
                    if (mySettings.Filter.Temporal.ObservationDate.Annually)
                    {
                        searchCriteria.ObservationDateTime.Begin      = new DateTime(1800, 1, 1);
                        searchCriteria.ObservationDateTime.End        = DateTime.Now.AddDays(1);
                        searchCriteria.ObservationDateTime.PartOfYear = new List <IDateTimeInterval>();
                        IDateTimeInterval dateTimeInterval = new DateTimeInterval();
                        dateTimeInterval.Begin = mySettings.Filter.Temporal.ObservationDate.StartDate;
                        dateTimeInterval.End   = mySettings.Filter.Temporal.ObservationDate.EndDate;
                        searchCriteria.ObservationDateTime.PartOfYear.Add(dateTimeInterval);
                    }
                    else
                    {
                        searchCriteria.ObservationDateTime.Begin = mySettings.Filter.Temporal.ObservationDate.StartDate;
                        searchCriteria.ObservationDateTime.End   = mySettings.Filter.Temporal.ObservationDate.EndDate;
                    }
                }

                // Registration date
                if (mySettings.Filter.Temporal.RegistrationDate.UseSetting)
                {
                    searchCriteria.ReportedDateTime          = new DateTimeSearchCriteria();
                    searchCriteria.ReportedDateTime.Operator = CompareOperator.Excluding;
                    if (mySettings.Filter.Temporal.RegistrationDate.Annually)
                    {
                        searchCriteria.ReportedDateTime.Begin      = new DateTime(1800, 1, 1);
                        searchCriteria.ReportedDateTime.End        = DateTime.Now.AddDays(1);
                        searchCriteria.ReportedDateTime.PartOfYear = new List <IDateTimeInterval>();
                        IDateTimeInterval dateTimeInterval = new DateTimeInterval();
                        dateTimeInterval.Begin = mySettings.Filter.Temporal.RegistrationDate.StartDate;
                        dateTimeInterval.End   = mySettings.Filter.Temporal.RegistrationDate.EndDate;
                        searchCriteria.ReportedDateTime.PartOfYear.Add(dateTimeInterval);
                    }
                    else
                    {
                        searchCriteria.ReportedDateTime.Begin = mySettings.Filter.Temporal.RegistrationDate.StartDate;
                        searchCriteria.ReportedDateTime.End   = mySettings.Filter.Temporal.RegistrationDate.EndDate;
                    }
                }

                // Change date
                if (mySettings.Filter.Temporal.ChangeDate.UseSetting)
                {
                    searchCriteria.ChangeDateTime          = new DateTimeSearchCriteria();
                    searchCriteria.ChangeDateTime.Operator = CompareOperator.Excluding;
                    if (mySettings.Filter.Temporal.ChangeDate.Annually)
                    {
                        searchCriteria.ChangeDateTime.Begin      = new DateTime(1800, 1, 1);
                        searchCriteria.ChangeDateTime.End        = DateTime.Now.AddDays(1);
                        searchCriteria.ChangeDateTime.PartOfYear = new List <IDateTimeInterval>();
                        IDateTimeInterval dateTimeInterval = new DateTimeInterval();
                        dateTimeInterval.Begin = mySettings.Filter.Temporal.ChangeDate.StartDate;
                        dateTimeInterval.End   = mySettings.Filter.Temporal.ChangeDate.EndDate;
                        searchCriteria.ChangeDateTime.PartOfYear.Add(dateTimeInterval);
                    }
                    else
                    {
                        searchCriteria.ChangeDateTime.Begin = mySettings.Filter.Temporal.ChangeDate.StartDate;
                        searchCriteria.ChangeDateTime.End   = mySettings.Filter.Temporal.ChangeDate.EndDate;
                    }
                }
            }

            // Accuracy filter
            if (mySettings.Filter.Accuracy.IsActive)
            {
                if (mySettings.Filter.Accuracy.IsCoordinateAccuracyActive)
                {
                    searchCriteria.Accuracy             = mySettings.Filter.Accuracy.MaxCoordinateAccuracy;
                    searchCriteria.IsAccuracyConsidered = mySettings.Filter.Accuracy.Inclusive;
                }
                else
                {
                    searchCriteria.Accuracy             = null;
                    searchCriteria.IsAccuracyConsidered = false;
                }
            }

            // Spatial filter
            if (mySettings.Filter.Spatial.IsActive)
            {
                if (mySettings.Filter.Spatial.Polygons.Count > 0)
                {
                    var dataContext = new DataContext(_userContext);
                    ICoordinateSystem fromCoordinateSystem = mySettings.Filter.Spatial.PolygonsCoordinateSystem;
                    //ICoordinateSystem toCoordinateSystem = mySettings.Presentation.Map.DisplayCoordinateSystem;
                    ICoordinateSystem toCoordinateSystem = coordinateSystem;
                    List <IPolygon>   polygons           = mySettings.Filter.Spatial.Polygons.ToList().ToPolygons(dataContext);
                    polygons = GisTools.CoordinateConversionManager.GetConvertedPolygons(polygons, fromCoordinateSystem, toCoordinateSystem);

                    GeometryTools geometryTools = new GeometryTools();
                    foreach (IPolygon polygon in polygons)
                    {
                        var polygonStatus = geometryTools.ValidateGeometry(polygon);
                        if (!polygonStatus.IsValid)
                        {
                            throw new Exception(string.Format("Polygon error! {0}", polygonStatus.Description));
                        }
                    }

                    searchCriteria.Polygons = polygons;
                }

                if (mySettings.Filter.Spatial.RegionIds.Count > 0)
                {
                    searchCriteria.RegionGuids = new List <string>();
                    RegionList regions = CoreData.RegionManager.GetRegionsByIds(_userContext, mySettings.Filter.Spatial.RegionIds.ToList());
                    foreach (IRegion region in regions)
                    {
                        searchCriteria.RegionGuids.Add(region.GUID);
                    }
                }

                // Locality name search
                if (!string.IsNullOrEmpty(mySettings.Filter.Spatial.Locality.LocalityName))
                {
                    searchCriteria.LocalityNameSearchString = new StringSearchCriteria();
                    searchCriteria.LocalityNameSearchString.SearchString     = mySettings.Filter.Spatial.Locality.LocalityName;
                    searchCriteria.LocalityNameSearchString.CompareOperators = new List <StringCompareOperator>();
                    searchCriteria.LocalityNameSearchString.CompareOperators.Add(mySettings.Filter.Spatial.Locality.CompareOperator);
                }
            }

            // Occurrence filter
            if (mySettings.Filter.Occurrence.IsActive)
            {
                searchCriteria.IncludeNeverFoundObservations      = mySettings.Filter.Occurrence.IncludeNeverFoundObservations;
                searchCriteria.IncludeNotRediscoveredObservations = mySettings.Filter.Occurrence.IncludeNotRediscoveredObservations;
                searchCriteria.IncludePositiveObservations        = mySettings.Filter.Occurrence.IncludePositiveObservations;

                if (mySettings.Filter.Occurrence.IsNaturalOccurrence ==
                    mySettings.Filter.Occurrence.IsNotNaturalOccurrence)
                {
                    // TODO: Set ignore IsNaturalOccurence
                }
                else
                {
                    searchCriteria.IsNaturalOccurrence = mySettings.Filter.Occurrence.IsNaturalOccurrence;
                }
            }

            // Data providers
            if (mySettings.DataProvider.DataProviders.IsActive && mySettings.DataProvider.DataProviders.HasSettings)
            {
                //Get all data providers
                bool providersWithObservationDisabled;
                var  dataProviders = DataProviderManager.GetAllDataProviders(_userContext, out providersWithObservationDisabled);

                //If all providers are selected and we don't have any providers with observation disabled, we don't set data source guids since it will decrease performance
                //All existing providers will be used if the property is not set and the performance is better compared to setting all providers explicit
                if (providersWithObservationDisabled || dataProviders.Count != mySettings.DataProvider.DataProviders.DataProvidersGuids.Count)
                {
                    searchCriteria.DataSourceGuids = new List <string>();
                    foreach (var guid in mySettings.DataProvider.DataProviders.DataProvidersGuids)
                    {
                        searchCriteria.DataSourceGuids.Add(guid);
                    }
                }
            }

            // Field filter
            if (mySettings.Filter.Field.IsActive && mySettings.Filter.Field.HasSettings)
            {
                searchCriteria.FieldSearchCriteria = new SpeciesObservationFieldSearchCriteriaList();

                foreach (var fieldFilterExpression in mySettings.Filter.Field.FieldFilterExpressions)
                {
                    searchCriteria.FieldSearchCriteria.Add(fieldFilterExpression);
                }

                searchCriteria.FieldLogicalOperator = mySettings.Filter.Field.FieldLogicalOperator;
            }

            return(searchCriteria);
        }
예제 #6
0
        public SpeciesObservationGridResult CalculateSpeciesObservationGridResult(MySettings.MySettings mySettings)
        {
            var result = CalculateSpeciesObservationGrid(mySettings.Filter.Taxa.TaxonIds.ToList(), null);

            return(SpeciesObservationGridResult.Create(result));
        }
예제 #7
0
 public ImprovedDataProvidersSummaryGroup(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #8
0
 public ImprovedGridStatisticsSettingSummary(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #9
0
 public SpeciesObservationGridCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #10
0
 public static CalculatedDataItem <T> GetCalculatedDataItemEx <T>(CalculatedDataItemType calculatedDataItemType, MySettings.MySettings mySettings, string localeISOCode)
 {
     return(CalculatedDataItemCollection.GetCalculatedDataItem <T>(calculatedDataItemType, localeISOCode));
 }
        /// <summary>
        /// Search for list of taxon by factor.
        /// </summary>
        /// <param name="taxonSearchFactorFieldViewModels"></param>
        /// <param name="factorId"></param>
        /// <param name="restrictToCurrentTaxonFilter"></param>
        /// <param name="settings"></param>
        /// <returns></returns>
        private List <ITaxon> SearchTaxonByFactor(List <TaxonSearchFactorFieldViewModel> taxonSearchFactorFieldViewModels, Int32 factorId, Boolean restrictToCurrentTaxonFilter, MySettings.MySettings settings)
        {
            if (taxonSearchFactorFieldViewModels == null)
            {
                taxonSearchFactorFieldViewModels = new List <TaxonSearchFactorFieldViewModel>();
            }

            TaxonList taxonList = new TaxonList();
            ISpeciesFactSearchCriteria searchCriteria = new SpeciesFactSearchCriteria();

            searchCriteria.IncludeNotValidHosts = false;
            searchCriteria.IncludeNotValidTaxa  = false;
            searchCriteria.FieldSearchCriteria  = new SpeciesFactFieldSearchCriteriaList();
            searchCriteria.Factors = new FactorList();
            ISpeciesFactFieldSearchCriteria fieldSearchCriteria;

            searchCriteria.FieldLogicalOperator = LogicalOperator.And;

            if (taxonSearchFactorFieldViewModels.Count > 0)
            {
                if (restrictToCurrentTaxonFilter)
                {
                    if (settings.Filter.Taxa.HasSettings)
                    {
                        searchCriteria.Taxa = CoreData.TaxonManager.GetTaxa(_user, settings.Filter.Taxa.TaxonIds.ToList());
                    }
                    else
                    {
                        return(new TaxonList());
                    }
                }

                IFactor factor = CoreData.FactorManager.GetFactor(_user, factorId);

                searchCriteria.Factors.Add(factor);

                // Add factor field to search criteria by list of factor field id
                foreach (var field in factor.DataType.Fields)
                {
                    if (field.Type.Id == (int)FactorFieldDataTypeId.Enum)
                    {
                        if (field.Enum != null && field.Enum.Values != null)
                        {
                            fieldSearchCriteria = new SpeciesFactFieldSearchCriteria();
                            // fieldSearchCriteria.IsEnumAsString = true;
                            fieldSearchCriteria.FactorField = field;
                            fieldSearchCriteria.Operator    = CompareOperator.Equal;
                            foreach (var val in field.Enum.Values)
                            {
                                if (val.KeyInt.HasValue && taxonSearchFactorFieldViewModels.Any(x => x.FactorFieldTypeId == val.Id))
                                {
                                    String factorValue = taxonSearchFactorFieldViewModels.First(x => x.FactorFieldTypeId == val.Id).FactorFieldTypeValue;
                                    fieldSearchCriteria.AddValue(factorValue);
                                }
                            }

                            if (fieldSearchCriteria.Values.IsNotEmpty())
                            {
                                searchCriteria.FieldSearchCriteria.Add(fieldSearchCriteria);
                            }
                        }
                    }
                    else if (field.Type.Id == (int)FactorFieldDataTypeId.Boolean)
                    {
                        if (field.Enum != null && field.Enum.Values != null)
                        {
                            fieldSearchCriteria = new SpeciesFactFieldSearchCriteria();
                            // fieldSearchCriteria.IsEnumAsString = true;
                            fieldSearchCriteria.FactorField = field;
                            fieldSearchCriteria.Operator    = CompareOperator.Equal;
                            foreach (var val in field.Enum.Values)
                            {
                                if (val.KeyInt.HasValue && taxonSearchFactorFieldViewModels.Any(x => x.FactorFieldTypeId == val.Id))
                                {
                                    String factorValue = taxonSearchFactorFieldViewModels.First(x => x.FactorFieldTypeId == val.Id).FactorFieldTypeValue;
                                    fieldSearchCriteria.AddValue(factorValue);
                                }
                            }

                            if (fieldSearchCriteria.Values.IsNotEmpty())
                            {
                                searchCriteria.FieldSearchCriteria.Add(fieldSearchCriteria);
                            }
                        }
                    }
                    else if (field.Type.Id == (int)FactorFieldDataTypeId.Double)
                    {
                        if (taxonSearchFactorFieldViewModels.Any(x => x.FactorFieldTypeId == field.Id))
                        {
                            TaxonSearchFactorFieldViewModel factorField = taxonSearchFactorFieldViewModels.First(x => x.FactorFieldTypeId == field.Id);
                            CompareOperator compareOperator             = factorField.CompareOperatorIsSpecified ? factorField.CompareOperator : CompareOperator.Equal;
                            String          factorValue = factorField.FactorFieldTypeValue;
                            fieldSearchCriteria             = new SpeciesFactFieldSearchCriteria();
                            fieldSearchCriteria.FactorField = field;
                            fieldSearchCriteria.Operator    = compareOperator;
                            fieldSearchCriteria.AddValue(factorValue.WebParseInt32());
                            searchCriteria.FieldSearchCriteria.Add(fieldSearchCriteria);
                        }
                    }
                    else if (field.Type.Id == (int)FactorFieldDataTypeId.Int32)
                    {
                        if (taxonSearchFactorFieldViewModels.Any(x => x.FactorFieldTypeId == field.Id))
                        {
                            TaxonSearchFactorFieldViewModel factorField = taxonSearchFactorFieldViewModels.First(x => x.FactorFieldTypeId == field.Id);
                            CompareOperator compareOperator             = factorField.CompareOperatorIsSpecified ? factorField.CompareOperator : CompareOperator.Equal;
                            String          factorValue = factorField.FactorFieldTypeValue;
                            fieldSearchCriteria             = new SpeciesFactFieldSearchCriteria();
                            fieldSearchCriteria.FactorField = field;
                            fieldSearchCriteria.Operator    = compareOperator;
                            fieldSearchCriteria.AddValue(factorValue.WebParseInt32());
                            searchCriteria.FieldSearchCriteria.Add(fieldSearchCriteria);
                        }
                    }
                    else if (field.Type.Id == (int)FactorFieldDataTypeId.String)
                    {
                        if (taxonSearchFactorFieldViewModels.Any(x => x.FactorFieldTypeId == field.Id))
                        {
                            TaxonSearchFactorFieldViewModel factorField = taxonSearchFactorFieldViewModels.First(x => x.FactorFieldTypeId == field.Id);
                            CompareOperator compareOperator             = factorField.CompareOperatorIsSpecified ? factorField.CompareOperator : CompareOperator.Equal;
                            String          factorValue = factorField.FactorFieldTypeValue;
                            fieldSearchCriteria             = new SpeciesFactFieldSearchCriteria();
                            fieldSearchCriteria.FactorField = field;
                            fieldSearchCriteria.Operator    = compareOperator;
                            fieldSearchCriteria.AddValue(factorValue);
                            searchCriteria.FieldSearchCriteria.Add(fieldSearchCriteria);
                        }
                    }
                }
            }
            else
            {
                return(new TaxonList());
            }

            // Get taxa.
            taxonList = CoreData.AnalysisManager.GetTaxa(_user, searchCriteria);

            return(taxonList);
        }
예제 #12
0
 public SpeciesObservationDiagramResultCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #13
0
 public SpeciesObservationProvenanceResultCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #14
0
 public PagedSpeciesObservationResultCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #15
0
 public SpeciesObservationTaxonSpeciesObservationCountTableResultCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #16
0
 public WfsGridCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
 public SpeciesObservationDataManager(IUserContext userContext, MySettings.MySettings mySettings)
 {
     this.userContext = userContext;
     this.mySettings  = mySettings;
 }
예제 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CombinedGridStatisticsCalculator"/> class.
 /// </summary>
 /// <param name="userContext">The user context.</param>
 /// <param name="mySettings">My settings.</param>
 public CombinedGridStatisticsCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #19
0
 /// <summary>
 /// Get species observation result base.
 /// </summary>
 public static CalculatedDataItem <SpeciesObservationsData> GetSpeciesObservationData(
     MySettings.MySettings mySettings, string localeIsoCode)
 {
     return(GetCalculatedDataItem <SpeciesObservationsData>(CalculatedDataItemType.SpeciesObservationData, mySettings, localeIsoCode));
 }
 protected ImprovedMySettingsListSummaryItem(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #21
0
 public static CalculatedDataItem <T> GetCalculatedDataItemEx <T>(CalculatedDataItemType calculatedDataItemType, MySettings.MySettings mySettings)
 {
     return(CalculatedDataItemCollection.GetCalculatedDataItem <T>(calculatedDataItemType));
 }
예제 #22
0
 public SummaryStatisticsResultCalculator(IUserContext userContext, MySettings.MySettings mySettings)
     : base(userContext, mySettings)
 {
 }
예제 #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ResultCalculatorBase"/> class.
 /// </summary>
 /// <param name="userContext">The user context.</param>
 /// <param name="mySettings">The settings to use when calculating the result.</param>
 protected ResultCalculatorBase(IUserContext userContext, MySettings.MySettings mySettings)
 {
     UserContext = userContext;
     MySettings  = mySettings;
 }
예제 #24
0
 protected ImprovedMySettingsSummaryItemBase(IUserContext userContext, MySettings.MySettings mySettings)
 {
     UserContext = userContext;
     MySettings  = mySettings;
 }
        /// <summary>
        /// Search taxa by factor fields.
        /// </summary>
        /// <param name="taxonSearchFactorFieldViewModels">List of factor fields with properties.</param>
        /// <param name="factorId"></param>
        /// <param name="restrictToCurrentTaxonFilter"></param>
        /// <param name="settings"></param>
        public List <TaxonSearchResultItemViewModel> SearchTaxa(List <TaxonSearchFactorFieldViewModel> taxonSearchFactorFieldViewModels, Int32 factorId, Boolean restrictToCurrentTaxonFilter, MySettings.MySettings settings)
        {
            var resultList = new List <TaxonSearchResultItemViewModel>();

            List <ITaxon> taxons = SearchTaxonByFactor(taxonSearchFactorFieldViewModels, factorId, restrictToCurrentTaxonFilter, settings);

            foreach (var taxon in taxons)
            {
                resultList.Add(TaxonSearchResultItemViewModel.CreateFromTaxon(taxon));
            }

            SpeciesFactManager speciesFactManager = new SpeciesFactManager(_user);

            IEnumerable <ITaxon> protectedTaxonList = speciesFactManager.GetProtectedTaxons();

            // Set protection level for each taxon; public or not
            resultList.ForEach(t => t.SpeciesProtectionLevel = protectedTaxonList.Any(ptl => ptl.Id == t.TaxonId) ? SpeciesProtectionLevelEnum.Protected1 : SpeciesProtectionLevelEnum.Public);

            return(resultList);
        }
        public TaxonGridResult CalculateTaxonGrid(MySettings.MySettings mySettings)
        {
            IList <IGridCellSpeciesCount> result = CalculateTaxonGrid(mySettings.Filter.Taxa.TaxonIds.ToList(), null);

            return(TaxonGridResult.Create(result));
        }