/// <summary> /// Active Dependent type names of this object /// </summary> public List <string> DependentObjectNames() { var dependentObjects = new List <string>(); if (CustomAttributes.Any()) { dependentObjects.Add(typeof(CustomAttribute).Name); } if (MaintenanceRecords.Any()) { dependentObjects.Add(typeof(MaintenanceRecord).Name); } if (MaintenanceRecordObservations.Any()) { dependentObjects.Add(typeof(MaintenanceRecordObservation).Name); } if (QuickBMPs.Any()) { dependentObjects.Add(typeof(QuickBMP).Name); } if (TreatmentBMPs.Any()) { dependentObjects.Add(typeof(TreatmentBMP).Name); } if (TreatmentBMPAssessments.Any()) { dependentObjects.Add(typeof(TreatmentBMPAssessment).Name); } if (TreatmentBMPBenchmarkAndThresholds.Any()) { dependentObjects.Add(typeof(TreatmentBMPBenchmarkAndThreshold).Name); } if (TreatmentBMPObservations.Any()) { dependentObjects.Add(typeof(TreatmentBMPObservation).Name); } if (TreatmentBMPTypeAssessmentObservationTypes.Any()) { dependentObjects.Add(typeof(TreatmentBMPTypeAssessmentObservationType).Name); } if (TreatmentBMPTypeCustomAttributeTypes.Any()) { dependentObjects.Add(typeof(TreatmentBMPTypeCustomAttributeType).Name); } return(dependentObjects.Distinct().ToList()); }
/// <summary> /// Dependent type names of this entity /// </summary> public void DeleteChildren(DatabaseEntities dbContext) { foreach (var x in CustomAttributes.ToList()) { x.DeleteFull(dbContext); } foreach (var x in MaintenanceRecords.ToList()) { x.DeleteFull(dbContext); } foreach (var x in MaintenanceRecordObservations.ToList()) { x.DeleteFull(dbContext); } foreach (var x in QuickBMPs.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPs.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPAssessments.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPBenchmarkAndThresholds.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPObservations.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPTypeAssessmentObservationTypes.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPTypeCustomAttributeTypes.ToList()) { x.DeleteFull(dbContext); } }
/// <summary> /// Active Dependent type names of this object /// </summary> public List <string> DependentObjectNames() { var dependentObjects = new List <string>(); if (LoadGeneratingUnits.Any()) { dependentObjects.Add(typeof(LoadGeneratingUnit).Name); } if (QuickBMPs.Any()) { dependentObjects.Add(typeof(QuickBMP).Name); } if (SourceControlBMPs.Any()) { dependentObjects.Add(typeof(SourceControlBMP).Name); } if (TreatmentBMPs.Any()) { dependentObjects.Add(typeof(TreatmentBMP).Name); } if (WaterQualityManagementPlanDocuments.Any()) { dependentObjects.Add(typeof(WaterQualityManagementPlanDocument).Name); } if (WaterQualityManagementPlanParcels.Any()) { dependentObjects.Add(typeof(WaterQualityManagementPlanParcel).Name); } if (WaterQualityManagementPlanVerifies.Any()) { dependentObjects.Add(typeof(WaterQualityManagementPlanVerify).Name); } return(dependentObjects.Distinct().ToList()); }
/// <summary> /// Dependent type names of this entity /// </summary> public void DeleteChildren(DatabaseEntities dbContext) { foreach (var x in LoadGeneratingUnits.ToList()) { x.DeleteFull(dbContext); } foreach (var x in QuickBMPs.ToList()) { x.DeleteFull(dbContext); } foreach (var x in SourceControlBMPs.ToList()) { x.DeleteFull(dbContext); } foreach (var x in TreatmentBMPs.ToList()) { x.DeleteFull(dbContext); } foreach (var x in WaterQualityManagementPlanDocuments.ToList()) { x.DeleteFull(dbContext); } foreach (var x in WaterQualityManagementPlanParcels.ToList()) { x.DeleteFull(dbContext); } foreach (var x in WaterQualityManagementPlanVerifies.ToList()) { x.DeleteFull(dbContext); } }
/// <summary> /// Does this object have any dependent objects? (If it does have dependent objects, these would need to be deleted before this object could be deleted.) /// </summary> /// <returns></returns> public bool HasDependentObjects() { return(CustomAttributes.Any() || MaintenanceRecords.Any() || MaintenanceRecordObservations.Any() || QuickBMPs.Any() || TreatmentBMPs.Any() || TreatmentBMPAssessments.Any() || TreatmentBMPBenchmarkAndThresholds.Any() || TreatmentBMPObservations.Any() || TreatmentBMPTypeAssessmentObservationTypes.Any() || TreatmentBMPTypeCustomAttributeTypes.Any()); }
public DetailViewData(Person currentPerson, Models.WaterQualityManagementPlan waterQualityManagementPlan, WaterQualityManagementPlanVerify waterQualityManagementPlanVerifyDraft, MapInitJson mapInitJson, List <Models.TreatmentBMP> treatmentBMPs, ParcelGridSpec parcelGridSpec, List <WaterQualityManagementPlanVerify> waterQualityManagementPlanVerifies, List <WaterQualityManagementPlanVerifyQuickBMP> waterQualityManagementPlanVerifyQuickBmPs, List <WaterQualityManagementPlanVerifyTreatmentBMP> waterQualityManagementPlanVerifyTreatmentBmPs, HRUCharacteristicsViewData hruCharacteristicsViewData, bool anyLspcBasins, List <DryWeatherFlowOverride> dryWeatherFlowOverrides, List <WaterQualityManagementPlanModelingApproach> waterQualityManagementPlanModelingApproaches, ModeledPerformanceViewData modeledPerformanceViewData) : base(currentPerson, NeptuneArea.OCStormwaterTools) { WaterQualityManagementPlan = waterQualityManagementPlan; PageTitle = WaterQualityManagementPlan.WaterQualityManagementPlanName; EntityName = $"{FieldDefinitionType.WaterQualityManagementPlan.GetFieldDefinitionLabelPluralized()}"; EntityUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(x => x.Index()); CurrentPersonCanManageWaterQualityManagementPlans = new WaterQualityManagementPlanManageFeature() .HasPermission(currentPerson, waterQualityManagementPlan) .HasPermission; currentPerson.IsManagerOrAdmin(); EditInventoriedBMPsUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditWqmpBmps(WaterQualityManagementPlan)); EditSimplifiedStructuralBMPsUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditSimplifiedStructuralBMPs(WaterQualityManagementPlan)); EditSourceControlBMPsUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditSourceControlBMPs(WaterQualityManagementPlan)); EditModelingApproachUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditModelingApproach(WaterQualityManagementPlan)); EditParcelsUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditWqmpParcels(WaterQualityManagementPlan)); NewDocumentUrl = SitkaRoute <WaterQualityManagementPlanDocumentController> .BuildUrlFromExpression(c => c.New(waterQualityManagementPlan)); MapInitJson = mapInitJson; ParameterizationErrors = CheckForParameterizationErrors(waterQualityManagementPlan); ParcelGridSpec = parcelGridSpec; ParcelGridName = "parcelGrid"; ParcelGridDataUrl = SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.ParcelsForWaterQualityManagementPlanGridData(waterQualityManagementPlan)); HasSavedWqmpDraft = waterQualityManagementPlanVerifyDraft != null && waterQualityManagementPlanVerifyDraft.IsDraft; BeginOMVerificationRecordUrl = HasSavedWqmpDraft ? SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.EditWqmpVerifyModal(waterQualityManagementPlanVerifyDraft)) : SitkaRoute <WaterQualityManagementPlanController> .BuildUrlFromExpression(c => c.NewWqmpVerify(waterQualityManagementPlan)); SourceControlBMPs = waterQualityManagementPlan.SourceControlBMPs .Where(x => x.IsPresent == true || x.SourceControlBMPNote != null) .OrderBy(x => x.SourceControlBMPAttributeID) .GroupBy(x => x.SourceControlBMPAttribute.SourceControlBMPAttributeCategoryID); WaterQualityManagementPlanVerifies = waterQualityManagementPlanVerifies; WaterQualityManagementPlanVerifyQuickBMPs = waterQualityManagementPlanVerifyQuickBmPs; WaterQualityManagementPlanVerifyTreatmentBMPs = waterQualityManagementPlanVerifyTreatmentBmPs; HRUCharacteristicsViewData = hruCharacteristicsViewData; TreatmentBMPs = treatmentBMPs; QuickBMPs = waterQualityManagementPlan.QuickBMPs.OrderBy(x => x.QuickBMPName).ToList(); SourceControlBMPs = waterQualityManagementPlan.SourceControlBMPs .Where(x => x.SourceControlBMPNote != null || (x.IsPresent != null && x.IsPresent == true)) .OrderBy(x => x.SourceControlBMPAttributeID) .GroupBy(x => x.SourceControlBMPAttribute.SourceControlBMPAttributeCategoryID); var calculatedParcelAcres = WaterQualityManagementPlan .CalculateParcelAcreageTotal(); // This is 'calculated' by summing parcel recorded acres - not sure that's what's intended by calculated in this case // TODO: Never compare floating-point values to zero. We should establish an application-wide error tolerance and use that instead of the direct comparison CalculatedParcelArea = calculatedParcelAcres != 0 ? $"{Math.Round(calculatedParcelAcres, 2).ToString(CultureInfo.InvariantCulture)} acres" : "No parcels have been associated with this WQMP"; TrashCaptureEffectiveness = WaterQualityManagementPlan.TrashCaptureEffectiveness == null ? "Not Provided" : WaterQualityManagementPlan.TrashCaptureEffectiveness + "%"; WaterQualityManagementPlanModelingApproaches = waterQualityManagementPlanModelingApproaches; ModeledPerformanceViewData = modeledPerformanceViewData; FieldDefinitionForPercentOfSiteTreated = FieldDefinitionType.PercentOfSiteTreated; FieldDefinitionForPercentCaptured = FieldDefinitionType.PercentCaptured; FieldDefinitionForPercentRetained = FieldDefinitionType.PercentRetained; FieldDefinitionForFullyParameterized = FieldDefinitionType.FullyParameterized; FieldDefinitionForDelineationStatus = FieldDefinitionType.DelineationStatus; FieldDefinitionForDryWeatherFlowOverride = FieldDefinitionType.DryWeatherFlowOverride; AnyLSPCBasins = anyLspcBasins; UsesDetailedModelingApproach = WaterQualityManagementPlan.WaterQualityManagementPlanModelingApproachID == WaterQualityManagementPlanModelingApproach.Detailed .WaterQualityManagementPlanModelingApproachID; if (UsesDetailedModelingApproach) { AnyDetailedBMPsNotFullyParameterized = TreatmentBMPs.Any(x => !(x.IsFullyParameterized() && (x.Delineation?.IsVerified ?? false))); AllDetailedBMPsNotFullyParameterized = TreatmentBMPs.All(x => !(x.IsFullyParameterized() && (x.Delineation?.IsVerified ?? false))); // this is redundant but I just want to make this perfectly clear. AnySimpleBMPsNotFullyParameterized = false; AllSimpleBMPsNotFullyParameterized = false; } else { AnySimpleBMPsNotFullyParameterized = QuickBMPs.Any(x => !x.IsFullyParameterized()); AllSimpleBMPsNotFullyParameterized = QuickBMPs.All(x => !x.IsFullyParameterized()); // this is redundant but I just want to make this perfectly clear. AnyDetailedBMPsNotFullyParameterized = false; AllDetailedBMPsNotFullyParameterized = false; } }
/// <summary> /// Does this object have any dependent objects? (If it does have dependent objects, these would need to be deleted before this object could be deleted.) /// </summary> /// <returns></returns> public bool HasDependentObjects() { return(LoadGeneratingUnits.Any() || QuickBMPs.Any() || SourceControlBMPs.Any() || TreatmentBMPs.Any() || WaterQualityManagementPlanDocuments.Any() || WaterQualityManagementPlanParcels.Any() || WaterQualityManagementPlanVerifies.Any()); }