/// <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)); }
/// <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); }
public SpeciesObservationGridResult CalculateSpeciesObservationGridResult(MySettings.MySettings mySettings) { var result = CalculateSpeciesObservationGrid(mySettings.Filter.Taxa.TaxonIds.ToList(), null); return(SpeciesObservationGridResult.Create(result)); }
public ImprovedDataProvidersSummaryGroup(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public ImprovedGridStatisticsSettingSummary(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public SpeciesObservationGridCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
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); }
public SpeciesObservationDiagramResultCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public SpeciesObservationProvenanceResultCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public PagedSpeciesObservationResultCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public SpeciesObservationTaxonSpeciesObservationCountTableResultCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public WfsGridCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
public SpeciesObservationDataManager(IUserContext userContext, MySettings.MySettings mySettings) { this.userContext = userContext; this.mySettings = mySettings; }
/// <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) { }
/// <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) { }
public static CalculatedDataItem <T> GetCalculatedDataItemEx <T>(CalculatedDataItemType calculatedDataItemType, MySettings.MySettings mySettings) { return(CalculatedDataItemCollection.GetCalculatedDataItem <T>(calculatedDataItemType)); }
public SummaryStatisticsResultCalculator(IUserContext userContext, MySettings.MySettings mySettings) : base(userContext, mySettings) { }
/// <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; }
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)); }