/// <summary> /// Transfer Project properties to a new agency with updated classifications /// </summary> /// <param name="context"></param> /// <param name="originalProject"></param> /// <param name="project"></param> /// <returns></returns> public static void TransferProjectProperties(this PimsContext context, Entity.Project originalProject, Entity.Project project) { var parentParcels = originalProject.GetSubdivisionParentParcels(); context.DisposeSubdivisionParentParcels(parentParcels); var propertiesWithNoSubdivisions = originalProject.Properties.Where(p => !parentParcels.Any(pp => p.Parcel?.Id == pp.Id)); propertiesWithNoSubdivisions.ForEach(p => { var matchingProperty = project.Properties.First(property => p.Id == property.Id); context.Update(p.UpdateProjectProperty(matchingProperty)); }); }