Пример #1
0
        public FieldVisitSectionViewData(Person currentPerson, Models.FieldVisit fieldVisit, Models.FieldVisitSection fieldVisitSection)
            : base(currentPerson, NeptuneArea.OCStormwaterTools)
        {
            FieldVisit  = fieldVisit;
            SectionName = fieldVisitSection.FieldVisitSectionName;

            EntityName = "Treatment BMP Field Visits";
            EntityUrl  = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Index());

            SubEntityName = fieldVisit.TreatmentBMP.TreatmentBMPName ?? "Preview Treatment BMP Field Visit";
            SubEntityUrl  = fieldVisit.TreatmentBMP?.GetDetailUrl() ?? "#";
            PageTitle     = fieldVisit.VisitDate.ToStringDate();

            EditDateAndTypeUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.EditDateAndType(fieldVisit.PrimaryKey));

            CanManageStormwaterJurisdiction = currentPerson.CanManageStormwaterJurisdiction(fieldVisit.TreatmentBMP.StormwaterJurisdictionID);
            VerifiedUnverifiedFieldVisitUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.VerifyFieldVisit(FieldVisit.PrimaryKey));

            SectionHeader      = fieldVisitSection.SectionHeader;
            ValidationWarnings = new List <string>();

            WrapupUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.VisitSummary(fieldVisit));


            MaintenanceRecord              = fieldVisit.MaintenanceRecord;
            InitialAssessment              = fieldVisit.GetAssessmentByType(TreatmentBMPAssessmentTypeEnum.Initial);
            PostMaintenanceAssessment      = fieldVisit.GetAssessmentByType(TreatmentBMPAssessmentTypeEnum.PostMaintenance);
            UserCanDeleteMaintenanceRecord = MaintenanceRecord != null &&
                                             new MaintenanceRecordManageFeature()
                                             .HasPermission(CurrentPerson, MaintenanceRecord)
                                             .HasPermission;
        }
 public AssessmentInformationViewData(Person currentPerson, Models.FieldVisit fieldVisit, IEnumerable <SelectListItem> jurisdictionPeople, TreatmentBMPAssessmentTypeEnum treatmentBMPAssessmentTypeEnum)
     : base(currentPerson, fieldVisit, treatmentBMPAssessmentTypeEnum == TreatmentBMPAssessmentTypeEnum.Initial ? (Models.FieldVisitSection)Models.FieldVisitSection.Assessment : Models.FieldVisitSection.PostMaintenanceAssessment)
 {
     JurisdictionPeople     = jurisdictionPeople;
     SubsectionName         = "Assessment Information";
     TreatmentBMPAssessment = fieldVisit.GetAssessmentByType(treatmentBMPAssessmentTypeEnum);
 }
Пример #3
0
 public LocationViewData(Person currentPerson, Models.FieldVisit fieldVisit, EditLocationViewData editLocationViewData) : base(currentPerson, fieldVisit,
                                                                                                                               Models.FieldVisitSection.Inventory)
 {
     EditLocationViewData = editLocationViewData;
     SubsectionName       = "Location";
     SectionHeader        = "Location";
 }
Пример #4
0
 public AttributesViewData(Person currentPerson, Models.FieldVisit fieldVisit, EditAttributesViewData editAttributesViewData) : base(currentPerson, fieldVisit,
                                                                                                                                     Models.FieldVisitSection.Inventory)
 {
     EditAttributesViewData = editAttributesViewData;
     SubsectionName         = "Attributes";
     SectionHeader          = "Attributes";
 }
Пример #5
0
        public LocationViewModel(Models.FieldVisit fieldVisit)
        {
            // this is going TO The browser, so it has to be reprojected to web mercator
            var reprojected = CoordinateSystemHelper.ProjectCaliforniaStatePlaneVIToWebMercator(fieldVisit.TreatmentBMP.LocationPoint);

            TreatmentBMPPointY = reprojected.YCoordinate;
            TreatmentBMPPointX = reprojected.XCoordinate;
        }
Пример #6
0
 public PhotosViewData(Person currentPerson, Models.FieldVisit fieldVisit,
                       ManagePhotosWithPreviewViewData managePhotosWithPreviewViewData)
     : base(currentPerson, fieldVisit, Models.FieldVisitSection.Inventory)
 {
     SubsectionName = "Photos";
     SectionHeader  = "Photos";
     ManagePhotosWithPreviewViewData = managePhotosWithPreviewViewData;
 }
Пример #7
0
        public EditDateAndTypeViewData(Models.FieldVisit fieldVisit)
        {
            FieldVisitDate   = fieldVisit.VisitDate;
            FieldVisitTypeID = fieldVisit.FieldVisitTypeID;

            AllFieldVisitTypes = FieldVisitType.All.ToSelectListWithDisabledEmptyFirstRow(
                x => x.FieldVisitTypeID.ToString(CultureInfo.InvariantCulture), x => x.FieldVisitTypeDisplayName,
                "Choose a type");
        }
Пример #8
0
        public MaintainViewData(Person currentPerson, Models.FieldVisit fieldVisit, IEnumerable <SelectListItem> allMaintenanceRecordTypes) : base(currentPerson, fieldVisit, Models.FieldVisitSection.Maintenance)
        {
            AllMaintenanceRecordTypes    = allMaintenanceRecordTypes;
            PostMaintenanceAssessmentUrl =
                SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.PostMaintenanceAssessment(fieldVisit));

            EditMaintenanceRecordUrl =
                SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.EditMaintenanceRecord(fieldVisit));

            IsNew = fieldVisit.MaintenanceRecord == null;
        }
Пример #9
0
        public ObservationsViewData(Models.FieldVisit fieldVisit, TreatmentBMPAssessmentTypeEnum treatmentBMPAssessmentTypeEnum, Person currentPerson)
            : base(currentPerson, fieldVisit, treatmentBMPAssessmentTypeEnum == TreatmentBMPAssessmentTypeEnum.Initial ? (Models.FieldVisitSection)Models.FieldVisitSection.Assessment : Models.FieldVisitSection.PostMaintenanceAssessment)
        {
            var initialAssessmentObservations = fieldVisit.GetInitialAssessment()?.TreatmentBMPObservations.Select(x =>
                                                                                                                   new CollectionMethodSectionViewModel(x, x.TreatmentBMPAssessmentObservationType)).ToList();

            SubsectionName = "Observations";
            SectionHeader  = "Observations";
            TreatmentBMPAssessmentTypeEnum = treatmentBMPAssessmentTypeEnum;
            ViewDataForAngular             = new ObservationsViewDataForAngular(fieldVisit.TreatmentBMP.TreatmentBMPType, initialAssessmentObservations);
            SubmitUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Observations(fieldVisit, treatmentBMPAssessmentTypeEnum));
        }
Пример #10
0
 public EditAttributesViewData(Person currentPerson, Models.FieldVisit fieldVisit, bool isSubForm, bool missingRequiredAttributes) : base(
         currentPerson, NeptuneArea.OCStormwaterTools)
 {
     IsSubForm = isSubForm;
     MissingRequiredAttributes            = missingRequiredAttributes;
     TreatmentBMPTypeCustomAttributeTypes = fieldVisit.TreatmentBMP.TreatmentBMPType
                                            .TreatmentBMPTypeCustomAttributeTypes.Where(x =>
                                                                                        x.CustomAttributeType.CustomAttributeTypePurposeID !=
                                                                                        CustomAttributeTypePurpose.Maintenance.CustomAttributeTypePurposeID).ToList().OrderBy(x =>
                                                                                                                                                                              x.CustomAttributeType.CustomAttributeTypePurpose.CustomAttributeTypePurposeDisplayName)
                                            .ThenByOrderThenName().ToList();
 }
        public void UpdateModel(Models.FieldVisit fieldVisit, List <Models.CustomAttributeType> allCustomAttributeTypes)
        {
            var maintenanceRecord = fieldVisit.MaintenanceRecord;

            maintenanceRecord.MaintenanceRecordTypeID      = MaintenanceRecordTypeID.Value;
            maintenanceRecord.MaintenanceRecordDescription = MaintenanceRecordDescription;

            var treatmentBMPTypeCustomAttributeTypes = maintenanceRecord.TreatmentBMP.TreatmentBMPType.TreatmentBMPTypeCustomAttributeTypes.ToList();
            var customAttributeSimplesWithValues     = CustomAttributes.Where(x => x.CustomAttributeValues != null && x.CustomAttributeValues.Count > 0);
            var customAttributesToUpdate             = new List <MaintenanceRecordObservation>();
            var customAttributeValuesToUpdate        = new List <MaintenanceRecordObservationValue>();

            foreach (var x in customAttributeSimplesWithValues)
            {
                var customAttribute = new MaintenanceRecordObservation(maintenanceRecord.MaintenanceRecordID,
                                                                       treatmentBMPTypeCustomAttributeTypes.Single(y => y.CustomAttributeTypeID == x.CustomAttributeTypeID)
                                                                       .TreatmentBMPTypeCustomAttributeTypeID, maintenanceRecord.TreatmentBMP.TreatmentBMPTypeID,
                                                                       x.CustomAttributeTypeID);
                customAttributesToUpdate.Add(customAttribute);

                foreach (var value in x.CustomAttributeValues)
                {
                    var valueParsedForDataType = allCustomAttributeTypes.Single(y => y.CustomAttributeTypeID == x.CustomAttributeTypeID).CustomAttributeDataType.ValueParsedForDataType(value);
                    var customAttributeValue   = new MaintenanceRecordObservationValue(customAttribute, valueParsedForDataType);
                    customAttributeValuesToUpdate.Add(customAttributeValue);
                }
            }

            var maintenanceRecordObservationsInDatabase      = HttpRequestStorage.DatabaseEntities.MaintenanceRecordObservations.Local;
            var maintenanceRecordObservationValuesInDatabase = HttpRequestStorage.DatabaseEntities.MaintenanceRecordObservationValues.Local;

            var existingMaintenanceRecordObservations = maintenanceRecord.MaintenanceRecordObservations.Where(x =>
                                                                                                              x.CustomAttributeType.CustomAttributeTypePurposeID ==
                                                                                                              CustomAttributeTypePurpose.Maintenance.CustomAttributeTypePurposeID).ToList();

            var existingMaintenanceRecordObservationValues = existingMaintenanceRecordObservations.SelectMany(x => x.MaintenanceRecordObservationValues).ToList();

            existingMaintenanceRecordObservations.Merge(customAttributesToUpdate, maintenanceRecordObservationsInDatabase,
                                                        (x, y) => x.MaintenanceRecordID == y.MaintenanceRecordID &&
                                                        x.TreatmentBMPTypeID == y.TreatmentBMPTypeID &&
                                                        x.CustomAttributeTypeID == y.CustomAttributeTypeID &&
                                                        x.MaintenanceRecordObservationID == y.MaintenanceRecordObservationID,
                                                        (x, y) => { });

            existingMaintenanceRecordObservationValues.Merge(customAttributeValuesToUpdate, maintenanceRecordObservationValuesInDatabase,
                                                             (x, y) => x.MaintenanceRecordObservationValueID == y.MaintenanceRecordObservationValueID &&
                                                             x.MaintenanceRecordObservationID == y.MaintenanceRecordObservationID,
                                                             (x, y) => { x.ObservationValue = y.ObservationValue; });
        }
Пример #12
0
        public DetailViewData(Person currentPerson, Models.FieldVisit fieldVisit,
                              AssessmentDetailViewData initialAssessmentViewData,
                              AssessmentDetailViewData postMaintenanceAssessmentViewData) : base(currentPerson, NeptuneArea.OCStormwaterTools)
        {
            FieldVisit                        = fieldVisit;
            MaintenanceRecord                 = FieldVisit.MaintenanceRecord;
            InitialAssessmentViewData         = initialAssessmentViewData;
            PostMaintenanceAssessmentViewData = postMaintenanceAssessmentViewData;
            EntityName                        = "Treatment BMP Field Visits";
            EntityUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Index());

            SubEntityName     = FieldVisit.TreatmentBMP.TreatmentBMPName ?? "Preview Treatment BMP Field Visit";
            SubEntityUrl      = FieldVisit.TreatmentBMP?.GetDetailUrl() ?? "#";
            PageTitle         = FieldVisit.VisitDate.ToStringDate();
            InitialAssessment = FieldVisit.GetAssessmentByType(TreatmentBMPAssessmentTypeEnum.Initial);
            UserCanDeleteInitialAssessment = InitialAssessment != null &&
                                             new TreatmentBMPAssessmentManageFeature()
                                             .HasPermission(currentPerson, InitialAssessment)
                                             .HasPermission;
            PostMaintenanceAssessment = FieldVisit.GetAssessmentByType(TreatmentBMPAssessmentTypeEnum.PostMaintenance);
            UserCanDeletePostMaintenanceAssessment = PostMaintenanceAssessment != null &&
                                                     new TreatmentBMPAssessmentManageFeature()
                                                     .HasPermission(currentPerson, PostMaintenanceAssessment)
                                                     .HasPermission;
            UserCanDeleteMaintenanceRecord = MaintenanceRecord != null &&
                                             new MaintenanceRecordManageFeature()
                                             .HasPermission(currentPerson, MaintenanceRecord)
                                             .HasPermission;
            SortedMaintenanceRecordObservations = MaintenanceRecord?.MaintenanceRecordObservations.ToList()
                                                  .OrderBy(x => x.TreatmentBMPTypeCustomAttributeType.SortOrder)
                                                  .ThenBy(x => x.TreatmentBMPTypeCustomAttributeType.GetDisplayName());
            UserHasCustomAttributeTypeManagePermissions =
                new NeptuneAdminFeature().HasPermissionByPerson(currentPerson);

            CanManageStormwaterJurisdiction =
                currentPerson.CanManageStormwaterJurisdiction(fieldVisit.TreatmentBMP.StormwaterJurisdictionID);
            CanEditStormwaterJurisdiction   = currentPerson.IsAssignedToStormwaterJurisdiction(fieldVisit.TreatmentBMP.StormwaterJurisdictionID);
            VerifiedUnverifiedFieldVisitUrl =
                SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.VerifyFieldVisit(FieldVisit.PrimaryKey));

            MarkAsProvisionalUrl =
                SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x =>
                                                                          x.MarkProvisionalFieldVisit(FieldVisit.PrimaryKey));

            ReturnToEditUrl =
                SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x =>
                                                                          x.ReturnFieldVisitToEdit(FieldVisit.PrimaryKey));
        }
Пример #13
0
        public void UpdateModel(Models.FieldVisit fieldVisit, Person currentPerson)
        {
            var treatmentBMP = fieldVisit.TreatmentBMP;
            var customAttributeSimplesWithValues = CustomAttributes.Where(x =>
                                                                          x.CustomAttributeValues != null && x.CustomAttributeValues.Count > 0);
            var customAttributesToUpdate      = new List <CustomAttribute>();
            var customAttributeValuesToUpdate = new List <CustomAttributeValue>();

            foreach (var x in customAttributeSimplesWithValues)
            {
                var customAttribute = new CustomAttribute(treatmentBMP.TreatmentBMPID,
                                                          x.TreatmentBMPTypeCustomAttributeTypeID, treatmentBMP.TreatmentBMPTypeID, x.CustomAttributeTypeID);
                customAttributesToUpdate.Add(customAttribute);
                foreach (var value in x.CustomAttributeValues)
                {
                    var customAttributeValue = new CustomAttributeValue(customAttribute, value);
                    customAttributeValuesToUpdate.Add(customAttributeValue);
                }
            }

            var customAttributesInDatabase      = HttpRequestStorage.DatabaseEntities.CustomAttributes.Local;
            var customAttributeValuesInDatabase = HttpRequestStorage.DatabaseEntities.CustomAttributeValues.Local;

            var existingCustomAttributes = treatmentBMP.CustomAttributes.ToList();

            var existingCustomAttributeValues =
                existingCustomAttributes.SelectMany(x => x.CustomAttributeValues).ToList();

            existingCustomAttributes.Merge(customAttributesToUpdate, customAttributesInDatabase,
                                           (x, y) => x.TreatmentBMPID == y.TreatmentBMPID &&
                                           x.TreatmentBMPTypeID == y.TreatmentBMPTypeID &&
                                           x.CustomAttributeTypeID == y.CustomAttributeTypeID &&
                                           x.CustomAttributeID == y.CustomAttributeID);

            existingCustomAttributeValues.Merge(customAttributeValuesToUpdate, customAttributeValuesInDatabase,
                                                (x, y) => x.CustomAttributeValueID == y.CustomAttributeValueID &&
                                                x.CustomAttributeID == y.CustomAttributeID,
                                                (x, y) => { x.AttributeValue = y.AttributeValue; });
        }
Пример #14
0
 public PostMaintenanceAssessmentViewData(Person currentPerson, Models.FieldVisit fieldVisit) : base(currentPerson, fieldVisit, Models.FieldVisitSection.PostMaintenanceAssessment)
 {
 }
Пример #15
0
        public InventoryViewData(Person currentPerson, Models.FieldVisit fieldVisit) : base(currentPerson, fieldVisit, Models.FieldVisitSection.Inventory)
        {
            LocationUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Location(fieldVisit));

            AssessUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Assessment(fieldVisit));
        }
Пример #16
0
 public EditDateAndTypeViewModel(Models.FieldVisit inProgressFieldVisit)
 {
     FieldVisitTypeID = inProgressFieldVisit.FieldVisitTypeID;
     FieldVisitDate   = inProgressFieldVisit.VisitDate;
 }
Пример #17
0
 public AssessmentViewData(Person currentPerson, Models.FieldVisit fieldVisit) : base(currentPerson, fieldVisit, Models.FieldVisitSection.Assessment)
 {
     MaintenanceUrl = SitkaRoute <FieldVisitController> .BuildUrlFromExpression(x => x.Maintain(fieldVisit));
 }
Пример #18
0
 public NewFieldVisitViewModel(Models.FieldVisit inProgressFieldVisit)
 {
     InProgressFieldVisitExists = inProgressFieldVisit != null;
     FieldVisitTypeID           = inProgressFieldVisit?.FieldVisitTypeID ?? FieldVisitType.DryWeather.FieldVisitTypeID;
 }
Пример #19
0
        public EditMaintenanceRecordViewData(Person currentPerson, List <Models.Organization> organizations,
                                             Models.TreatmentBMP treatmentBMP, bool isNew, Models.FieldVisit fieldVisit, EditAttributesViewData editMaintenanceRecordObservationsViewData) : base(currentPerson, fieldVisit, Models.FieldVisitSection.Maintenance)
        {
            SubsectionName = "Edit Maintenance Record";
            IsNew          = isNew;
            EditMaintenanceRecordObservationsViewData = editMaintenanceRecordObservationsViewData;

            AllOrganizations = organizations.OrderBy(x => x.OrganizationName).ToSelectListWithDisabledEmptyFirstRow(x => x.OrganizationID.ToString(CultureInfo.InvariantCulture),
                                                                                                                    x => x.OrganizationName, "Choose an Organization");

            AllMaintenanceRecordTypes = MaintenanceRecordType.All.ToSelectListWithDisabledEmptyFirstRow(
                x => x.MaintenanceRecordTypeID.ToString(CultureInfo.InvariantCulture),
                x => x.MaintenanceRecordTypeDisplayName, "Choose a type");

            TreatmentBMPUrl      = treatmentBMP.GetDetailUrl();
            MaintenanceRecordUrl = MaintenanceRecord?.GetDetailUrl();
        }
Пример #20
0
 public VisitSummaryViewData(Person currentPerson, Models.FieldVisit fieldVisit) : base(currentPerson, fieldVisit, Models.FieldVisitSection.VisitSummary)
 {
 }
Пример #21
0
        public AttributesViewModel(Models.FieldVisit fieldVisit)
        {
            var treatmentBMP = fieldVisit.TreatmentBMP;

            CustomAttributes = treatmentBMP.CustomAttributes.Where(x => x.CustomAttributeType.CustomAttributeTypePurposeID != CustomAttributeTypePurpose.Maintenance.CustomAttributeTypePurposeID).Select(x => new CustomAttributeSimple(x)).ToList();
        }