public void UpdateModel(Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { if (IsParcelPicker.GetValueOrDefault()) { // since this is parcel picks, we don't need to reproject; the parcels are already in the correct system (State Plane) var unionListGeometries = HttpRequestStorage.DatabaseEntities.Parcels.Where(x => ParcelIDs.Contains(x.ParcelID)).Select(x => x.ParcelGeometry).ToList().UnionListGeometries(); var onlandVisualTrashAssessmentAreaGeometry2771 = unionListGeometries.FixSrid(CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID); onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry = onlandVisualTrashAssessmentAreaGeometry2771; onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry4326 = CoordinateSystemHelper.ProjectWebMercatorToCaliforniaStatePlaneVI(onlandVisualTrashAssessmentAreaGeometry2771); } else { var dbGeometrys = WktAndAnnotations.Select(x => DbGeometry.FromText(x.Wkt, CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID).ToSqlGeometry().MakeValid() .ToDbGeometry()); var newGeometry4326 = dbGeometrys.ToList().UnionListGeometries(); // since this is coming from the browser, we have to transform to State Plane onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry = CoordinateSystemHelper.ProjectWebMercatorToCaliforniaStatePlaneVI(newGeometry4326); onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry4326 = newGeometry4326.FixSrid(CoordinateSystemHelper.WGS_1984_SRID); HttpRequestStorage.DatabaseEntities.SaveChanges(); } }
public EditBasicsViewModel(Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { AssessmentAreaName = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName; AssessmentAreaDescription = onlandVisualTrashAssessmentArea.AssessmentAreaDescription; AssessmentAreaID = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaID; StormwaterJurisdictionID = onlandVisualTrashAssessmentArea.StormwaterJurisdictionID; }
public static HtmlString GetBaselineScoreAsHtmlString( this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { return(new HtmlString(onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore != null ? onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore .OnlandVisualTrashAssessmentScoreDisplayName : "<p class='systemText'>No completed assessments</p>")); }
public TrashMapAssetPanelViewData(Person currentPerson, Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { OnlandVisualTrashAssessmentArea = onlandVisualTrashAssessmentArea; UserHasViewDetailsPermission = new OnlandVisualTrashAssessmentAreaViewFeature().HasPermission(currentPerson, onlandVisualTrashAssessmentArea).HasPermission; ScoreHtmlString = new HtmlString(OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore != null ? OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore .OnlandVisualTrashAssessmentScoreDisplayName : "<p class='systemText'>No completed assessments</p>"); }
public static HtmlString GetDisplayNameAsDetailUrl(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea, Person currentPerson) { if (!new OnlandVisualTrashAssessmentAreaViewFeature() .HasPermission(currentPerson, onlandVisualTrashAssessmentArea).HasPermission) { return(new HtmlString(onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName)); } return(new HtmlString( $"<a href=\"{onlandVisualTrashAssessmentArea.GetDetailUrl()}\" alt=\"{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}\" title=\"{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}\" >{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}</a>")); }
public static LayerGeoJson GetAssessmentAreaLayerGeoJson(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { var geoJsonFeatureCollection = new List <Models.OnlandVisualTrashAssessmentArea> { onlandVisualTrashAssessmentArea } .ToGeoJsonFeatureCollection(); var assessmentAreaLayerGeoJson = new LayerGeoJson("parcels", geoJsonFeatureCollection, "#ffff00", .5m, LayerInitialVisibility.Show); return(assessmentAreaLayerGeoJson); }
public static OnlandVisualTrashAssessmentScore CalculateProgressScore(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { var onlandVisualTrashAssessments = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessments.Where(x => x.OnlandVisualTrashAssessmentStatusID == OnlandVisualTrashAssessmentStatus.Complete .OnlandVisualTrashAssessmentStatusID && x.IsProgressAssessment).ToList(); if (!onlandVisualTrashAssessments.Any()) { return(null); } var average = onlandVisualTrashAssessments.OrderByDescending(x => x.CompletedDate).Take(3).Average(x => x.OnlandVisualTrashAssessmentScore.NumericValue); var onlandVisualTrashAssessmentScore = OnlandVisualTrashAssessmentScore.All.Single(x => x.NumericValue == Math.Round(average)); return(onlandVisualTrashAssessmentScore); }
public static DbGeometry RecomputeTransectLine( this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea, out Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment) { var onlandVisualTrashAssessments = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessments .Where(x => x.OnlandVisualTrashAssessmentStatusID == OnlandVisualTrashAssessmentStatus.Complete.OnlandVisualTrashAssessmentStatusID).ToList(); // new transect should come from the earliest completed assessment if (onlandVisualTrashAssessments.Any(x => x.OnlandVisualTrashAssessmentStatusID == OnlandVisualTrashAssessmentStatus.Complete.OnlandVisualTrashAssessmentStatusID)) { onlandVisualTrashAssessment = onlandVisualTrashAssessments.MinBy(x => x.CompletedDate); return(onlandVisualTrashAssessment.GetTransect()?.FixSrid(CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID)); } onlandVisualTrashAssessment = null; return(null); }
public static LayerGeoJson GetTransectLineLayerGeoJson(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { if (onlandVisualTrashAssessmentArea.TransectLine != null) { var featureCollection = new FeatureCollection(); var feature = DbGeometryToGeoJsonHelper.FromDbGeometryWithReprojectionCheck(onlandVisualTrashAssessmentArea.TransectLine); featureCollection.Features.AddRange(new List <Feature> { feature }); LayerGeoJson transectLineLayerGeoJson = new LayerGeoJson("transectLine", featureCollection, "#000000", 1, LayerInitialVisibility.Show); return(transectLineLayerGeoJson); } return(null); }
public EditLocationViewData(Person currentPerson, Models.OnlandVisualTrashAssessmentArea ovtaArea, RefineAssessmentAreaMapInitJson mapInitJson) : base(currentPerson, NeptunePage.GetNeptunePageByPageType(NeptunePageType.EditOVTAArea)) { MapInitJson = mapInitJson; EntityName = "OVTA Areas"; EntityUrl = SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(x => x.Index()); SubEntityName = ovtaArea.OnlandVisualTrashAssessmentAreaName; SubEntityUrl = SitkaRoute <OnlandVisualTrashAssessmentAreaController> .BuildUrlFromExpression(x => x.Detail(ovtaArea)); PageTitle = "Edit Location"; MapFormID = "editAssessmentAreaMapForm"; GeoServerUrl = NeptuneWebConfiguration.ParcelMapServiceUrl; OnlandVisualTrashAssessmentAreaID = ovtaArea.OnlandVisualTrashAssessmentAreaID; ParcelUnionUrl = SitkaRoute <ParcelController> .BuildUrlFromExpression(x => x.Union()); ParcelsViaTransectUrlTemplate = new UrlTemplate <int>(SitkaRoute <OnlandVisualTrashAssessmentAreaController> .BuildUrlFromExpression(x => x.ParcelsViaTransect(UrlTemplate.Parameter1Int))).UrlTemplateString; DetailUrl = ovtaArea.GetDetailUrl(); }
public DetailViewData(Person currentPerson, Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea, OVTAAreaMapInitJson mapInitJson, string newUrl, string editDetailsUrl, string confirmEditLocationUrl) : base(currentPerson) { EntityName = "OVTA Areas"; EntityUrl = SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(x => x.Index()); PageTitle = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName; OnlandVisualTrashAssessmentArea = onlandVisualTrashAssessmentArea; MapInitJson = mapInitJson; var completedAssessments = OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessments.Where(x => x.OnlandVisualTrashAssessmentStatus == OnlandVisualTrashAssessmentStatus.Complete).ToList(); LastAssessmentDateHtmlString = new HtmlString(completedAssessments.Max(x => x.CompletedDate)?.ToShortDateString() ?? "<p class='systemText'>No completed assessments</p>"); ProgressScoreHtmlString = new HtmlString(OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentProgressScore != null ? OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentProgressScore .OnlandVisualTrashAssessmentScoreDisplayName : "<p class='systemText'>No completed assessments</p>"); BaselineScoreHtmlString = new HtmlString(OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore != null ? OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScore .OnlandVisualTrashAssessmentScoreDisplayName : "<p class='systemText'>No completed assessments</p>"); NewUrl = newUrl; EditDetailsUrl = editDetailsUrl; ConfirmEditLocationUrl = confirmEditLocationUrl; UserHasAssessmentAreaManagePermission = new OnlandVisualTrashAssessmentAreaEditFeature().HasPermission(currentPerson, OnlandVisualTrashAssessmentArea).HasPermission; UserHasEditLocationPermission = new JurisdictionManageFeature().HasPermissionByPerson(currentPerson); GridSpec = new OnlandVisualTrashAssessmentIndexGridSpec(currentPerson, false) { ObjectNameSingular = "Assessment", ObjectNamePlural = "Assessments", SaveFiltersInCookie = true }; GridName = "onlandVisualTrashAssessmentsGrid"; GridDataUrl = SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(j => j.OVTAGridJsonDataForAreaDetails(onlandVisualTrashAssessmentArea)); GeoServerUrl = NeptuneWebConfiguration.ParcelMapServiceUrl; }
public EditBasicsViewData(Person currentPerson, Models.OnlandVisualTrashAssessmentArea ovtaArea) : base(currentPerson) { AssessmentAreaName = ovtaArea.OnlandVisualTrashAssessmentAreaName; AssessmentAreaDescription = ovtaArea.AssessmentAreaDescription; }
public void UpdateModel(Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment, ICollection <OnlandVisualTrashAssessmentPreliminarySourceIdentificationType> allOnlandVisualTrashAssessmentPreliminarySourceIdentificationTypes) { if (Finalize.GetValueOrDefault()) { onlandVisualTrashAssessment.OnlandVisualTrashAssessmentScoreID = ScoreID; onlandVisualTrashAssessment.Notes = Notes; onlandVisualTrashAssessment.CompletedDate = AssessmentDate; onlandVisualTrashAssessment.IsProgressAssessment = IsProgressAssessment; // create the assessment area if (onlandVisualTrashAssessment.AssessingNewArea.GetValueOrDefault()) { var onlandVisualTrashAssessmentAreaGeometry2771 = onlandVisualTrashAssessment .DraftGeometry; var onlandVisualTrashAssessmentArea = new Models.OnlandVisualTrashAssessmentArea(AssessmentAreaName, onlandVisualTrashAssessment.StormwaterJurisdiction, onlandVisualTrashAssessmentAreaGeometry2771) { OnlandVisualTrashAssessmentAreaGeometry4326 = CoordinateSystemHelper.ProjectCaliforniaStatePlaneVIToWebMercator(onlandVisualTrashAssessment.DraftGeometry) }; HttpRequestStorage.DatabaseEntities.SaveChanges(); onlandVisualTrashAssessment.OnlandVisualTrashAssessmentAreaID = onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaID; onlandVisualTrashAssessment.DraftGeometry = null; onlandVisualTrashAssessment.DraftAreaDescription = null; } onlandVisualTrashAssessment.OnlandVisualTrashAssessmentStatusID = OnlandVisualTrashAssessmentStatus.Complete.OnlandVisualTrashAssessmentStatusID; HttpRequestStorage.DatabaseEntities.SaveChanges(); onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.AssessmentAreaDescription = AssessmentAreaDescription; onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentBaselineScoreID = onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.CalculateScoreFromBackingData(false)? .OnlandVisualTrashAssessmentScoreID; if (IsProgressAssessment) { onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea .OnlandVisualTrashAssessmentProgressScoreID = onlandVisualTrashAssessment.OnlandVisualTrashAssessmentScoreID; } if (onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.TransectLine == null && onlandVisualTrashAssessment.OnlandVisualTrashAssessmentObservations.Count >= 2) { var transect = onlandVisualTrashAssessment.GetTransect(); onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.TransectLine = transect; onlandVisualTrashAssessment.IsTransectBackingAssessment = true; var transectBackingAssessment = onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea.GetTransectBackingAssessment(); if (transectBackingAssessment != null) { transectBackingAssessment.IsTransectBackingAssessment = false; } } } else { onlandVisualTrashAssessment.OnlandVisualTrashAssessmentScoreID = ScoreID; onlandVisualTrashAssessment.Notes = Notes; onlandVisualTrashAssessment.DraftAreaName = AssessmentAreaName; onlandVisualTrashAssessment.DraftAreaDescription = AssessmentAreaDescription; } var onlandVisualTrashAssessmentPreliminarySourceIdentificationTypesToUpdate = PreliminarySourceIdentifications.Where(x => x.Has).Select(x => new OnlandVisualTrashAssessmentPreliminarySourceIdentificationType( OnlandVisualTrashAssessmentID.GetValueOrDefault(), x.PreliminarySourceIdentificationTypeID.GetValueOrDefault()) { ExplanationIfTypeIsOther = x.ExplanationIfTypeIsOther }).ToList(); onlandVisualTrashAssessment.OnlandVisualTrashAssessmentPreliminarySourceIdentificationTypes.Merge(onlandVisualTrashAssessmentPreliminarySourceIdentificationTypesToUpdate, allOnlandVisualTrashAssessmentPreliminarySourceIdentificationTypes, (z, w) => z.OnlandVisualTrashAssessmentID == w.OnlandVisualTrashAssessmentID && z.PreliminarySourceIdentificationTypeID == w.PreliminarySourceIdentificationTypeID, (z, w) => z.ExplanationIfTypeIsOther = w.ExplanationIfTypeIsOther ); // bug?: why are we nulling these unconditionally? onlandVisualTrashAssessment.DraftAreaDescription = null; onlandVisualTrashAssessment.DraftAreaName = null; onlandVisualTrashAssessment.DraftGeometry = null; }
public void UpdateModel(Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName = AssessmentAreaName; onlandVisualTrashAssessmentArea.AssessmentAreaDescription = AssessmentAreaDescription; }
public static Models.OnlandVisualTrashAssessment GetTransectBackingAssessment(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { return(onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessments.SingleOrDefault(x => x.IsTransectBackingAssessment)); }
public EditLocationViewModel(Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { }
public static string GetDeleteUrl(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { return(DeleteUrlTemplate.ParameterReplace(onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaID)); }
public static DateTime?GetLastAssessmentDate( this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { return(onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessments.Max(x => x.CompletedDate)); }
public static HtmlString GetDisplayNameAsDetailUrlNoPermissionCheck(this Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea) { return(new HtmlString( $"<a href=\"{onlandVisualTrashAssessmentArea.GetDetailUrl()}\" alt=\"{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}\" title=\"{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}\" >{onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaName}</a>")); }
public static string GetBeginOVTAUrl(this Models.OnlandVisualTrashAssessmentArea ovtaa) { return(BeginOVTAUrlTemplate.ParameterReplace(ovtaa.OnlandVisualTrashAssessmentAreaID)); }