/// <summary>
 /// Constructor for building a new object with MinimalConstructor required fields, using objects whenever possible
 /// </summary>
 public DelineationOverlap(Delineation delineation, Delineation overlappingDelineation, DbGeometry overlappingGeometry) : this()
 {
     // Mark this as a new object by setting primary key with special value
     this.DelineationOverlapID = ModelObjectHelpers.MakeNextUnsavedPrimaryKeyValue();
     this.DelineationID        = delineation.DelineationID;
     this.Delineation          = delineation;
     delineation.DelineationOverlaps.Add(this);
     this.OverlappingDelineationID = overlappingDelineation.DelineationID;
     this.OverlappingDelineation   = overlappingDelineation;
     overlappingDelineation.DelineationOverlapsWhereYouAreTheOverlappingDelineation.Add(this);
     this.OverlappingGeometry = overlappingGeometry;
 }
示例#2
0
        /// <summary>
        /// The preference over delete-full for delineation. Nulls the DelineationID on any LGUs,
        /// deletes any overlaps, deletes the delineation itself, and marks the delineation's
        /// TreatmentBMP for a model run.
        /// </summary>
        /// <param name="treatmentBMPDelineation"></param>
        /// <param name="dbContext"></param>
        public static void DeleteDelineation(this Delineation treatmentBMPDelineation, DatabaseEntities dbContext)
        {
            var treatmentBMP = treatmentBMPDelineation.TreatmentBMP;

            foreach (var delineationLoadGeneratingUnit in treatmentBMPDelineation.LoadGeneratingUnits)
            {
                delineationLoadGeneratingUnit.DelineationID = null;
            }

            dbContext.SaveChanges();

            dbContext.DelineationOverlaps.DeleteDelineationOverlap(treatmentBMPDelineation
                                                                   .DelineationOverlaps);
            dbContext.DelineationOverlaps.DeleteDelineationOverlap(treatmentBMPDelineation
                                                                   .DelineationOverlapsWhereYouAreTheOverlappingDelineation);
            dbContext.Delineations.DeleteDelineation(treatmentBMPDelineation);
            dbContext.SaveChanges();

            NereidUtilities.MarkTreatmentBMPDirty(treatmentBMP, dbContext);
        }
示例#3
0
 public static void DeleteDelineation(this IQueryable <Delineation> delineations, Delineation delineationToDelete)
 {
     DeleteDelineation(delineations, new List <Delineation> {
         delineationToDelete
     });
 }
示例#4
0
 public static HtmlString GetDetailUrlForGrid(this Delineation delineation)
 {
     return(UrlTemplate.MakeHrefString(GetDetailUrl(delineation), "View", new Dictionary <string, string> {
         { "class", "gridButton" }
     }));
 }
示例#5
0
 public static string GetDetailUrl(this Delineation delineation)
 {
     return(delineation.TreatmentBMP.GetDelineationMapUrl());
 }
示例#6
0
 public static string GetDeleteUrl(this Delineation delineation)
 {
     return(DeleteUrlTemplate.ParameterReplace(delineation.DelineationID));
 }
示例#7
0
        public static string GetDelineationAreaString(this Delineation delineation)
        {
            var delineationAcresAsString = (delineation?.DelineationGeometry.Area * DbSpatialHelper.SquareMetersToAcres)?.ToString("0.00");

            return(delineationAcresAsString != null ? $"{delineationAcresAsString} ac" : "-");
        }
示例#8
0
 public static double?GetDelineationArea(this Delineation delineation)
 {
     return(delineation?.DelineationGeometry.Area != null
         ? (double?)Math.Round(delineation.DelineationGeometry.Area.Value * DbSpatialHelper.SquareMetersToAcres, 2)
         : null);
 }
 /// <summary>
 /// Creates a "blank" object of this type and populates primitives with defaults
 /// </summary>
 public static DelineationOverlap CreateNewBlank(Delineation delineation, Delineation overlappingDelineation)
 {
     return(new DelineationOverlap(delineation, overlappingDelineation, default(DbGeometry)));
 }