public void UpdateModel(Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment)
        {
            Check.Require(ModelObjectHelpers.IsRealPrimaryKeyValue(onlandVisualTrashAssessment.OnlandVisualTrashAssessmentID));

            onlandVisualTrashAssessment.StormwaterJurisdictionID = StormwaterJurisdiction.StormwaterJurisdictionID;

            if (OnlandVisualTrashAssessmentAreaID.HasValue)
            {
                var transectBackingAssessment = HttpRequestStorage.DatabaseEntities.OnlandVisualTrashAssessmentAreas
                                                .Find(OnlandVisualTrashAssessmentAreaID).GetTransectBackingAssessment();

                // ensure the area to which this assessment is assigned ends up with only one transect-backing assessment
                if (transectBackingAssessment != null)
                {
                    if (transectBackingAssessment.OnlandVisualTrashAssessmentID != onlandVisualTrashAssessment.OnlandVisualTrashAssessmentID)
                    {
                        onlandVisualTrashAssessment.IsTransectBackingAssessment = false;
                    }
                }
                else
                {
                    onlandVisualTrashAssessment.IsTransectBackingAssessment = true;
                }
            }
            else
            {
                onlandVisualTrashAssessment.IsTransectBackingAssessment = false;
            }

            onlandVisualTrashAssessment.OnlandVisualTrashAssessmentAreaID = OnlandVisualTrashAssessmentAreaID;
            onlandVisualTrashAssessment.AssessingNewArea = AssessingNewArea;
        }
Exemple #2
0
 public RecordObservationsViewData(Person currentPerson, Models.OnlandVisualTrashAssessment ovta,
                                   OVTAObservationsMapInitJson mapInitJson, string geoServerUrl)
     : base(currentPerson, Models.OVTASection.RecordObservations, ovta)
 {
     MapInitJson        = mapInitJson;
     ViewDataForAngular = new ViewDataForAngularClass(mapInitJson, ovta, geoServerUrl, ovta.StormwaterJurisdictionID);
 }
Exemple #3
0
 public ViewDataForAngularClass(OVTAObservationsMapInitJson mapInitJson,
                                Models.OnlandVisualTrashAssessment ovta, string geoServerUrl, int?ovtaStormwaterJurisdictionID)
 {
     MapInitJson  = mapInitJson;
     GeoServerUrl = geoServerUrl;
     OVTAStormwaterJurisdictionID = ovtaStormwaterJurisdictionID;
     ovtaID = ovta.OnlandVisualTrashAssessmentID;
 }
 public InitiateOVTAViewModel(Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment, Person currentPerson) : this(onlandVisualTrashAssessment)
 {
     var stormwaterJurisdictionsPersonCanEdit = currentPerson.GetStormwaterJurisdictionsPersonCanView().ToList();
     if (stormwaterJurisdictionsPersonCanEdit.Count == 1)
     {
         StormwaterJurisdiction =
             new StormwaterJurisdictionSimple(stormwaterJurisdictionsPersonCanEdit.Single());
     }
 }
        private void AssignParameters(Models.OVTASection ovtaSection, Models.OnlandVisualTrashAssessment ovta)
        {
            EntityName = "On-land Visual Trash Assessment";
            EntityUrl  = SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(x => x.Index());

            OVTA          = ovta;
            OVTASection   = ovtaSection;
            SectionName   = ovtaSection.OVTASectionName;
            SectionHeader = ovtaSection.SectionHeader;
            PageTitle     = ovtaSection.OVTASectionDisplayName;
        }
        public InitiateOVTAViewData(Person currentPerson,
                                    Models.OnlandVisualTrashAssessment ovta, List <StormwaterJurisdiction> jurisdictions,
                                    SelectOVTAAreaMapInitJson mapInitJson,
                                    IEnumerable <Models.OnlandVisualTrashAssessmentArea> onlandVisualTrashAssessmentAreas,
                                    StormwaterJurisdiction defaultJurisdiction, string geoServerUrl)
            : base(currentPerson, Models.OVTASection.InitiateOVTA, ovta)
        {
            Jurisdictions       = jurisdictions;
            MapInitJson         = mapInitJson;
            DefaultJurisdiction = defaultJurisdiction;
            var useDefaultJurisdiction = defaultJurisdiction != null;

            ViewDataForAngular = new ViewDataForAngularClass(mapInitJson, onlandVisualTrashAssessmentAreas, useDefaultJurisdiction, jurisdictions, geoServerUrl);
        }
Exemple #7
0
 public FinalizeOVTAViewModel(Models.OnlandVisualTrashAssessment ovta)
 {
     AssessmentAreaName        = ovta.OnlandVisualTrashAssessmentArea?.OnlandVisualTrashAssessmentAreaName ?? ovta.DraftAreaName;
     AssessmentAreaDescription = ovta.OnlandVisualTrashAssessmentArea?.AssessmentAreaDescription ??
                                 ovta.DraftAreaDescription;
     ScoreID = ovta.OnlandVisualTrashAssessmentScoreID;
     Notes   = ovta.Notes;
     StormwaterJurisdictionID         = ovta.StormwaterJurisdictionID;
     AssessmentAreaID                 = ovta.OnlandVisualTrashAssessmentAreaID;
     PreliminarySourceIdentifications = ovta.GetPreliminarySourceIdentificationSimples();
     OnlandVisualTrashAssessmentID    = ovta.OnlandVisualTrashAssessmentID;
     AssessmentDate       = ovta.CompletedDate ?? DateTime.Now;
     IsProgressAssessment = ovta.IsProgressAssessment;
 }
        public FinalizeOVTAViewData(Person currentPerson,
                                    Models.OnlandVisualTrashAssessment ovta, OVTASummaryMapInitJson ovtaSummaryMapInitJson, IEnumerable <SelectListItem> scores, string geoServerUrl)
            : base(currentPerson, Models.OVTASection.FinalizeOVTA, ovta)
        {
            Scores                    = scores;
            ConductedByPerson         = ovta.CreatedByPerson;
            Jurisdiction              = ovta.StormwaterJurisdiction;
            CreatedDate               = ovta.CreatedDate.ToShortDateString();
            IsProgressAssessment      = ovta.IsProgressAssessment;
            AssessmentAreaDescription = ovta.OnlandVisualTrashAssessmentArea?.AssessmentAreaDescription ??
                                        ovta.DraftAreaDescription;
            ScoreDescriptionsUrl =
                SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(x => x.ScoreDescriptions());

            PreliminarySourceIdentificationTypeOthers = PreliminarySourceIdentificationType.All.Where(x => x.IsOther());

            TrashAssessmentSummaryMapViewData = new TrashAssessmentSummaryMapViewData(ovtaSummaryMapInitJson, ovta.OnlandVisualTrashAssessmentObservations, geoServerUrl);
        }
Exemple #9
0
        public DetailViewData(Person currentPerson, Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment, TrashAssessmentSummaryMapViewData trashAssessmentSummaryMapViewData, string returnToEditUrl, bool userHasReturnToEditPermission) : base(currentPerson)
        {
            OnlandVisualTrashAssessment       = onlandVisualTrashAssessment;
            IsProgressAssessment              = onlandVisualTrashAssessment.ToBaselineProgress();
            TrashAssessmentSummaryMapViewData = trashAssessmentSummaryMapViewData;
            EntityName = "On-land Visual Trash Assessment";
            EntityUrl  = SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(x => x.Index());

            SubEntityName = onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea
                            .OnlandVisualTrashAssessmentAreaName;
            SubEntityUrl = SitkaRoute <OnlandVisualTrashAssessmentAreaController> .BuildUrlFromExpression(x =>
                                                                                                          x.Detail(onlandVisualTrashAssessment.OnlandVisualTrashAssessmentArea));

            // ReSharper disable once PossibleInvalidOperationException
            PageTitle       = OnlandVisualTrashAssessment.CompletedDate.Value.ToShortDateString();
            ReturnToEditUrl = returnToEditUrl;
            UserHasReturnToEditPermission = userHasReturnToEditPermission;
        }
Exemple #10
0
        public void UpdateModel(Models.OnlandVisualTrashAssessment ovta,
                                ObservableCollection <OnlandVisualTrashAssessmentObservation> allOnlandVisualTrashAssessmentObservations)
        {
            // this is a dict instead of the usual list so that we can permanentize the staged photos later.
            var updatedDict =
                Observations?.Select(x =>
                                     new KeyValuePair <OnlandVisualTrashAssessmentObservationSimple,
                                                       OnlandVisualTrashAssessmentObservation>(x, x.ToOnlandVisualTrashAssessmentObservation()))
                .ToList().ToDictionary(x => x.Key, x => x.Value) ??
                new Dictionary <OnlandVisualTrashAssessmentObservationSimple, OnlandVisualTrashAssessmentObservation>();

            ovta.OnlandVisualTrashAssessmentObservations.Merge(updatedDict.Values, allOnlandVisualTrashAssessmentObservations,
                                                               (x, y) => x.OnlandVisualTrashAssessmentObservationID == y.OnlandVisualTrashAssessmentObservationID,
                                                               (x, y) =>
            {
                x.Note              = y.Note;
                x.LocationPoint     = y.LocationPoint;
                x.LocationPoint4326 = y.LocationPoint4326;
            });

            updatedDict.ForEach(x =>
            {
                var dto = x.Key;
                // have to do this weird lookup otherwise line 63 will create a brand new ovtao
                var entityID     = x.Value.OnlandVisualTrashAssessmentObservationID;
                var actualEntity = HttpRequestStorage.DatabaseEntities.OnlandVisualTrashAssessmentObservations.Find(entityID);
                if (!dto.PhotoStagingID.HasValue)
                {
                    return; // no one cares
                }

                var photoStaging = ((OnlandVisualTrashAssessmentObservationPhotoStagingPrimaryKey)dto.PhotoStagingID.Value).EntityObject;


                // ReSharper disable once ObjectCreationAsStatement
                new OnlandVisualTrashAssessmentObservationPhoto(photoStaging.FileResource, actualEntity);
            });

            HttpRequestStorage.DatabaseEntities.SaveChanges();

            HttpRequestStorage.DatabaseEntities.OnlandVisualTrashAssessmentObservationPhotoStagings
            .DeleteOnlandVisualTrashAssessmentObservationPhotoStaging(ovta
                                                                      .OnlandVisualTrashAssessmentObservationPhotoStagings);
        }
Exemple #11
0
 public RefineAssessmentAreaViewData(Person currentPerson, Models.OVTASection ovtaSection, Models.OnlandVisualTrashAssessment ovta, RefineAssessmentAreaMapInitJson mapInitJson, string geoServerUrl) : base(currentPerson, ovtaSection, ovta)
 {
     MapInitJson  = mapInitJson;
     GeoServerUrl = geoServerUrl;
     MapFormID    = "refineAssessmentAreaForm";
 }
        public AddOrRemoveParcelsViewData(Person currentPerson, Models.OVTASection ovtaSection, Models.OnlandVisualTrashAssessment ovta, AddOrRemoveParcelsMapIntJson ovtaSummaryMapInitJson) : base(currentPerson, ovtaSection, ovta)
        {
            OVTASummaryMapInitJson = ovtaSummaryMapInitJson;
            ViewDataForAngular     = new ViewDataForAngularClass(ovtaSummaryMapInitJson, ovta.IsDraftGeometryManuallyRefined.GetValueOrDefault());
            RefreshUrl             =
                SitkaRoute <OnlandVisualTrashAssessmentController> .BuildUrlFromExpression(
                    x => x.RefreshParcels(ovta));

            RequireRefresh = ovta.IsDraftGeometryManuallyRefined.GetValueOrDefault();
        }
 public InitiateOVTAViewModel(Models.OnlandVisualTrashAssessment onlandVisualTrashAssessment)
 {
     StormwaterJurisdiction            = onlandVisualTrashAssessment?.StormwaterJurisdiction != null ? new StormwaterJurisdictionSimple(onlandVisualTrashAssessment.StormwaterJurisdiction) : null;
     OnlandVisualTrashAssessmentAreaID = onlandVisualTrashAssessment?.OnlandVisualTrashAssessmentAreaID;
     AssessingNewArea = onlandVisualTrashAssessment?.AssessingNewArea ?? false;
 }
 public OVTASectionViewData(Person currentPerson, Models.OVTASection ovtaSection, Models.OnlandVisualTrashAssessment ovta) : base(currentPerson)
 {
     AssignParameters(ovtaSection, ovta);
 }
Exemple #15
0
 public InstructionsViewData(Person currentPerson, NeptunePage neptunePage, Models.OnlandVisualTrashAssessment ovta)
     : base(currentPerson, neptunePage, Models.OVTASection.Instructions, ovta)
 {
 }
Exemple #16
0
 public RecordObservationsViewModel(Models.OnlandVisualTrashAssessment ovta) : base(ovta)
 {
     Observations = ovta.OnlandVisualTrashAssessmentObservations
                    .Select(x => new OnlandVisualTrashAssessmentObservationSimple(x)).ToList();
 }
Exemple #17
0
        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;
        }
Exemple #18
0
 protected OnlandVisualTrashAssessmentViewModel(Models.OnlandVisualTrashAssessment ovta)
 {
     OVTAID = ovta.OnlandVisualTrashAssessmentID;
 }
Exemple #19
0
        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);
        }