Example #1
0
        /// <summary>
        /// Evaluates two filters for use with summary volumes ground to ground comparison.
        /// </summary>
        public static bool DoGroundToGroundComparison(Filter.Abstractions.Models.Filter baseFilter, Filter.Abstractions.Models.Filter topFilter)
        {
            if (baseFilter == null || topFilter == null)
            {
                return(false);
            }

            return(baseFilter.DateRangeType != DateRangeType.ProjectExtents &&
                   baseFilter.DateRangeType == topFilter.DateRangeType &&
                   baseFilter.ElevationType == null && topFilter.ElevationType == null);
        }
Example #2
0
        /// <summary>
        /// Dynamically set the date range according to the<see cref= "DateRangeType" /> property.
        /// </summary>
        /// <remarks>
        /// Custom date range is unaltered. Project extents is always null. Other types are calculated in the project time zone.
        /// </remarks>
        private async Task ApplyDateRange(Guid projectUid, Filter.Abstractions.Models.Filter filter)
        {
            var projectTimeZone = await ProjectTimeZone(projectUid);

            filter.ApplyDateRange(projectTimeZone, true);
        }
Example #3
0
        /// <summary>
        /// Convert a simple filter into a Real Filter via the Filter service
        /// </summary>
        /// <returns>Filter UID</returns>
        private async Task <Guid> ConvertSimpleFilter(SimpleFilter simpleFilter)
        {
            if (simpleFilter == null)
            {
                ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest,
                                                              (int)Now3DExecutionStates.ErrorCodes.FilterConvertFailure,
                                                              null,
                                                              "No Simple Filter found");
            }

            var project = await _projectProxy.GetProjectForCustomer(CustomerUid, simpleFilter.ProjectUid, CustomHeaders);

            if (project == null)
            {
                ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest,
                                                              (int)Now3DExecutionStates.ErrorCodes.FilterConvertFailure,
                                                              null,
                                                              $"Cannot find project {simpleFilter.ProjectUid} for Customer {CustomerUid}");
            }

            var file = await _fileImportProxy.GetFileForProject(simpleFilter.ProjectUid, UserId, simpleFilter.DesignFileUid,
                                                                CustomHeaders);

            if (file == null)
            {
                ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest,
                                                              (int)Now3DExecutionStates.ErrorCodes.FilterConvertFailure,
                                                              null,
                                                              $"Cannot find file {simpleFilter.DesignFileUid} for project {simpleFilter.ProjectUid}");
            }

            var filterModel = new Filter.Abstractions.Models.Filter(simpleFilter.StartDateUtc,
                                                                    simpleFilter.EndDateUtc,
                                                                    simpleFilter.DesignFileUid,
                                                                    file.Name,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    simpleFilter.LiftNumber);

            var filterRequest = FilterRequest.Create(filterModel);

            var result = await _filterServiceProxy.CreateFilter(simpleFilter.ProjectUid, filterRequest, CustomHeaders);

            if (result.Code != 0)
            {
                ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest,
                                                              (int)Now3DExecutionStates.ErrorCodes.DataError,
                                                              result.Code.ToString(),
                                                              result.Message);
            }

            var guid = Guid.Parse(result.FilterDescriptor.FilterUid);

            Log.LogInformation($"Converted Simple filter '{JsonConvert.SerializeObject(simpleFilter)}' to a " +
                               $"{nameof(FilterRequest)}: '{JsonConvert.SerializeObject(filterRequest)}'. FilterUID: {guid}");

            return(guid);
        }