本文整理汇总了C#中Rock.Model.LocationService类的典型用法代码示例。如果您正苦于以下问题:C# LocationService类的具体用法?C# LocationService怎么用?C# LocationService使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
LocationService类属于Rock.Model命名空间,在下文中一共展示了LocationService类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
/// <summary>
/// Job that updates the JobPulse setting with the current date/time.
/// This will allow us to notify an admin if the jobs stop running.
///
/// Called by the <see cref="IScheduler" /> when a
/// <see cref="ITrigger" /> fires that is associated with
/// the <see cref="IJob" />.
/// </summary>
public virtual void Execute(IJobExecutionContext context)
{
// get the job map
JobDataMap dataMap = context.JobDetail.JobDataMap;
int maxRecords = Int32.Parse( dataMap.GetString( "MaxRecordsPerRun" ) );
int throttlePeriod = Int32.Parse( dataMap.GetString( "ThrottlePeriod" ) );
int retryPeriod = Int32.Parse( dataMap.GetString( "RetryPeriod" ) );
DateTime retryDate = DateTime.Now.Subtract(new TimeSpan(retryPeriod, 0, 0, 0));
var rockContext = new Rock.Data.RockContext();
LocationService locationService = new LocationService(rockContext);
var addresses = locationService.Queryable()
.Where( l => (
(l.IsGeoPointLocked == null || l.IsGeoPointLocked == false) // don't ever try locked address
&& (l.IsActive == true && l.Street1 != null && l.PostalCode != null) // or incomplete addresses
&& (
(l.GeocodedDateTime == null && (l.GeocodeAttemptedDateTime == null || l.GeocodeAttemptedDateTime < retryDate)) // has not been attempted to be geocoded since retry date
||
(l.StandardizedDateTime == null && (l.StandardizeAttemptedDateTime == null || l.StandardizeAttemptedDateTime < retryDate)) // has not been attempted to be standardize since retry date
)
))
.Take( maxRecords ).ToList();
foreach ( var address in addresses )
{
locationService.Verify( address, false ); // currently not reverifying
rockContext.SaveChanges();
System.Threading.Thread.Sleep( throttlePeriod );
}
}
示例2: BindGrid
/// <summary>
/// Binds the group members grid.
/// </summary>
protected void BindGrid()
{
if ( _group != null )
{
lHeading.Text = _group.Name;
DateTime? fromDateTime = drpDates.LowerValue;
DateTime? toDateTime = drpDates.UpperValue;
List<int> locationIds = new List<int>();
List<int> scheduleIds = new List<int>();
// Location Filter
if ( ddlLocation.Visible )
{
string locValue = ddlLocation.SelectedValue;
if ( locValue.StartsWith( "P" ) )
{
int? parentLocationId = locValue.Substring( 1 ).AsIntegerOrNull();
if ( parentLocationId.HasValue )
{
locationIds = new LocationService( _rockContext )
.GetAllDescendents( parentLocationId.Value )
.Select( l => l.Id )
.ToList();
}
}
else
{
int? locationId = locValue.AsIntegerOrNull();
if ( locationId.HasValue )
{
locationIds.Add( locationId.Value );
}
}
}
// Schedule Filter
if ( ddlSchedule.Visible && ddlSchedule.SelectedValue != "0" )
{
scheduleIds.Add( ddlSchedule.SelectedValueAsInt() ?? 0 );
}
var qry = new ScheduleService( _rockContext ).GetGroupOccurrences( _group, fromDateTime, toDateTime, locationIds, scheduleIds, true ).AsQueryable();
SortProperty sortProperty = gOccurrences.SortProperty;
List<ScheduleOccurrence> occurrences = null;
if ( sortProperty != null )
{
occurrences = qry.Sort( sortProperty ).ToList();
}
else
{
occurrences = qry.OrderByDescending( a => a.Date ).ThenByDescending( a => a.StartTime ).ToList();
}
gOccurrences.DataSource = occurrences;
gOccurrences.DataBind();
}
}
示例3: Search
/// <summary>
/// Returns a list of matching people
/// </summary>
/// <param name="searchterm"></param>
/// <returns></returns>
public override IQueryable<string> Search( string searchterm )
{
var service = new LocationService();
return service.Queryable().
Where( a => a.Street1.Contains( searchterm ) ).
OrderBy( a => a.Street1 ).
Select( a => a.Street1 + " " + a.City ).Distinct();
}
示例4: Geocode
public Location Geocode( Location location )
{
var user = CurrentUser();
if ( user != null )
{
if ( location != null )
{
var locationService = new LocationService();
locationService.Geocode( location, user.PersonId );
return location;
}
throw new HttpResponseException( HttpStatusCode.BadRequest );
}
throw new HttpResponseException( HttpStatusCode.Unauthorized );
}
示例5: FormatValue
/// <summary>
/// Returns the field's current value(s)
/// </summary>
/// <param name="parentControl">The parent control.</param>
/// <param name="value">Information about the value</param>
/// <param name="configurationValues">The configuration values.</param>
/// <param name="condensed">Flag indicating if the value should be condensed (i.e. for use in a grid column)</param>
/// <returns></returns>
public override string FormatValue( Control parentControl, string value, Dictionary<string, ConfigurationValue> configurationValues, bool condensed )
{
string formattedValue = string.Empty;
if ( !string.IsNullOrWhiteSpace( value ) )
{
var service = new LocationService();
var location = service.Get( new Guid( value ) );
if ( location != null )
{
formattedValue = location.ToString();
}
}
return base.FormatValue( parentControl, formattedValue, null, condensed );
}
示例6: Execute
/// <summary>
/// Job that updates the JobPulse setting with the current date/time.
/// This will allow us to notify an admin if the jobs stop running.
///
/// Called by the <see cref="IScheduler" /> when a
/// <see cref="ITrigger" /> fires that is associated with
/// the <see cref="IJob" />.
/// </summary>
public virtual void Execute(IJobExecutionContext context)
{
// get the job map
JobDataMap dataMap = context.JobDetail.JobDataMap;
int maxRecords = Int32.Parse( dataMap.GetString( "MaxRecordsPerRun" ) );
int throttlePeriod = Int32.Parse( dataMap.GetString( "ThrottlePeriod" ) );
int retryPeriod = Int32.Parse( dataMap.GetString( "RetryPeriod" ) );
DateTime retryDate = DateTime.Now.Subtract(new TimeSpan(retryPeriod, 0, 0, 0));
var rockContext = new Rock.Data.RockContext();
LocationService locationService = new LocationService(rockContext);
var addresses = locationService.Queryable()
.Where( l =>
(
( l.IsGeoPointLocked == null || l.IsGeoPointLocked == false ) &&// don't ever try locked address
l.IsActive == true &&
l.Street1 != null &&
l.Street1 != "" &&
l.City != null &&
l.City != "" &&
(
( l.GeocodedDateTime == null && ( l.GeocodeAttemptedDateTime == null || l.GeocodeAttemptedDateTime < retryDate ) ) || // has not been attempted to be geocoded since retry date
( l.StandardizedDateTime == null && ( l.StandardizeAttemptedDateTime == null || l.StandardizeAttemptedDateTime < retryDate ) ) // has not been attempted to be standardize since retry date
)
) )
.Take( maxRecords ).ToList();
int attempts = 0;
int successes = 0;
foreach ( var address in addresses )
{
attempts++;
if ( locationService.Verify( address, true ) )
{
successes++;
}
rockContext.SaveChanges();
System.Threading.Thread.Sleep( throttlePeriod );
}
context.Result = string.Format( "{0:N0} address verifications attempted; {1:N0} successfully verified", attempts, successes );
}
示例7: ShowEditDetails
/// <summary>
/// Shows the edit details.
/// </summary>
/// <param name="location">The location.</param>
private void ShowEditDetails( Location location )
{
if ( location.Id == 0 )
{
lReadOnlyTitle.Text = ActionTitle.Add( Location.FriendlyTypeName ).FormatAsHtmlTitle();
hlInactive.Visible = false;
}
else
{
if ( string.IsNullOrWhiteSpace( location.Name ) )
{
lReadOnlyTitle.Text = location.ToString().FormatAsHtmlTitle();
}
else
{
lReadOnlyTitle.Text = location.Name.FormatAsHtmlTitle();
}
}
SetEditMode( true );
imgImage.BinaryFileId = location.ImageId;
imgImage.NoPictureUrl = System.Web.VirtualPathUtility.ToAbsolute( "~/Assets/Images/no-picture.svg?" );
tbName.Text = location.Name;
cbIsActive.Checked = location.IsActive;
acAddress.SetValues( location );
ddlPrinter.SetValue( location.PrinterDeviceId );
geopPoint.SetValue( location.GeoPoint );
geopFence.SetValue( location.GeoFence );
cbGeoPointLocked.Checked = location.IsGeoPointLocked ?? false;
Guid mapStyleValueGuid = GetAttributeValue( "MapStyle" ).AsGuid();
geopPoint.MapStyleValueGuid = mapStyleValueGuid;
geopFence.MapStyleValueGuid = mapStyleValueGuid;
var rockContext = new RockContext();
var locationService = new LocationService( rockContext );
var attributeService = new AttributeService( rockContext );
ddlLocationType.BindToDefinedType( DefinedTypeCache.Read( Rock.SystemGuid.DefinedType.LOCATION_TYPE.AsGuid() ), true );
gpParentLocation.Location = location.ParentLocation ?? locationService.Get( location.ParentLocationId ?? 0 );
// LocationType depends on Selected ParentLocation
if ( location.Id == 0 && ddlLocationType.Items.Count > 1 )
{
// if this is a new location
ddlLocationType.SelectedIndex = 0;
}
else
{
ddlLocationType.SetValue( location.LocationTypeValueId );
}
location.LoadAttributes( rockContext );
BuildAttributeEdits( location, true );
}
示例8: btnStandardize_Click
/// <summary>
/// Handles the Click event of the btnStandardize control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
protected void btnStandardize_Click( object sender, EventArgs e )
{
int locationId = hfLocationId.Value.AsInteger();
var rockContext = new RockContext();
var service = new LocationService( rockContext );
var location = service.Get( locationId );
if (location == null)
{
// if they are adding a new named location, there won't be a location record yet, so just make a new one for the verification
location = new Location();
}
acAddress.GetValues( location );
service.Verify( location, true );
acAddress.SetValues( location );
geopPoint.SetValue( location.GeoPoint );
lStandardizationUpdate.Text = String.Format( "<div class='alert alert-info'>Standardization Result: {0}<br/>Geocoding Result: {1}</div>",
location.StandardizeAttemptedResult.IfEmpty( "No Result" ),
location.GeocodeAttemptedResult.IfEmpty( "No Result" ) );
}
示例9: btnEdit_Click
/// <summary>
/// Handles the Click event of the btnEdit control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
protected void btnEdit_Click( object sender, EventArgs e )
{
LocationService locationService = new LocationService( new RockContext() );
Location location = locationService.Get( int.Parse( hfLocationId.Value ) );
ShowEditDetails( location );
}
示例10: btnCancel_Click
/// <summary>
/// Handles the Click event of the btnCancel control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
protected void btnCancel_Click( object sender, EventArgs e )
{
if ( hfLocationId.Value.Equals( "0" ) )
{
int? parentLocationId = PageParameter( "ParentLocationId" ).AsIntegerOrNull();
if ( parentLocationId.HasValue )
{
// Cancelling on Add, and we know the parentLocationId, so we are probably in treeview mode, so navigate to the current page
var qryParams = new Dictionary<string, string>();
qryParams["LocationId"] = parentLocationId.ToString();
qryParams["ExpandedIds"] = PageParameter( "ExpandedIds" );
NavigateToPage( RockPage.Guid, qryParams );
}
else
{
// Cancelling on Add. Return to Grid
NavigateToParentPage();
}
}
else
{
// Cancelling on Edit. Return to Details
LocationService locationService = new LocationService( new RockContext() );
Location location = locationService.Get( int.Parse( hfLocationId.Value ) );
ShowReadonlyDetails( location );
}
}
示例11: btnSave_Click
//.........这里部分代码省略.........
}
var oldMemberChanges = new List<string>();
History.EvaluateChange( oldMemberChanges, "Role", fm.GroupRole.Name, string.Empty );
History.EvaluateChange( oldMemberChanges, "Family", fm.Group.Name, string.Empty );
HistoryService.SaveChanges( rockContext, typeof( Person ), Rock.SystemGuid.Category.HISTORY_PERSON_FAMILY_CHANGES.AsGuid(),
fm.Person.Id, oldMemberChanges, fm.Group.Name, typeof( Group ), fm.Group.Id );
familyMemberService.Delete( fm );
rockContext.SaveChanges();
var f = familyService.Queryable()
.Where( g =>
g.Id == otherFamilyMember.GroupId &&
!g.Members.Any() )
.FirstOrDefault();
if ( f != null )
{
familyService.Delete( f );
rockContext.SaveChanges();
}
}
}
HistoryService.SaveChanges( rockContext, typeof( Person ), Rock.SystemGuid.Category.HISTORY_PERSON_DEMOGRAPHIC_CHANGES.AsGuid(),
familyMember.Id, demographicChanges );
HistoryService.SaveChanges( rockContext, typeof( Person ), Rock.SystemGuid.Category.HISTORY_PERSON_FAMILY_CHANGES.AsGuid(),
familyMember.Id, memberChanges, _family.Name, typeof( Group ), _family.Id );
}
// SAVE LOCATIONS
var groupLocationService = new GroupLocationService( rockContext );
// delete any group locations that were removed
var remainingLocationIds = FamilyAddresses.Where( a => a.Id > 0 ).Select( a => a.Id ).ToList();
foreach ( var removedLocation in groupLocationService.Queryable( "GroupLocationTypeValue,Location" )
.Where( l => l.GroupId == _family.Id &&
!remainingLocationIds.Contains( l.Id ) ) )
{
History.EvaluateChange( familyChanges, removedLocation.GroupLocationTypeValue.Name + " Location",
removedLocation.Location.ToString(), string.Empty );
groupLocationService.Delete( removedLocation );
}
rockContext.SaveChanges();
foreach ( var familyAddress in FamilyAddresses )
{
Location updatedAddress = null;
if ( familyAddress.LocationIsDirty )
{
updatedAddress = new LocationService( rockContext ).Get(
familyAddress.Street1, familyAddress.Street2, familyAddress.City,
familyAddress.State, familyAddress.Zip );
}
GroupLocation groupLocation = null;
if ( familyAddress.Id > 0 )
{
groupLocation = groupLocationService.Get( familyAddress.Id );
}
if ( groupLocation == null )
{
groupLocation = new GroupLocation();
groupLocation.GroupId = _family.Id;
示例12: GetLocationId
/// <summary>
/// Gets the Location ID of a location already in Rock. --looks under dbo.group.foreignId then compares group.description with location name.
/// </summary>
/// <param name="rlcID">rlc ID </param>
/// <returns>Location ID</returns>
private int GetLocationId(int rlcId)
{
var lookupContext = new RockContext();
var groupService = new GroupService(lookupContext);
var rlcGroup = new Group();
string rlcIdString = rlcId.ToString();
rlcGroup = groupService.Queryable().Where(g => g.ForeignId == (rlcIdString)).FirstOrDefault();
string groupLocation = String.Empty;
if ( rlcGroup != null ) { groupLocation = rlcGroup.Description; }
if (!String.IsNullOrWhiteSpace(groupLocation))
{
var locationService = new LocationService(lookupContext);
var location = new List<Location>();
location = locationService.Queryable().Where(l => l.ParentLocationId.HasValue).ToList();
switch (groupLocation)
{
case "A201":
{
return location.Where(l => l.Name == "A201").FirstOrDefault().Id;
}
case "A202":
{
return location.Where(l => l.Name == "A202").FirstOrDefault().Id;
}
case "Area X Basketball":
{
return location.Where(l => l.Name == "Area X").FirstOrDefault().Id;
}
case "Area X Main Area":
{
return location.Where(l => l.Name == "Area X").FirstOrDefault().Id;
}
case "Auditorium":
{
return location.Where(l => l.Name == "Auditorium").FirstOrDefault().Id;
}
case "Auditorium Recording Booth":
{
return location.Where(l => l.Name == "Auditorium").FirstOrDefault().Id;
}
case "Auditorium Sound Booth":
{
return location.Where(l => l.Name == "Auditorium").FirstOrDefault().Id;
}
case "Bookstore Downstairs":
{
return location.Where(l => l.Name == "Bookstore").FirstOrDefault().Id;
}
case "Bookstore Upstairs":
{
return location.Where(l => l.Name == "Bookstore").FirstOrDefault().Id;
}
case "Bug 117":
{
return location.Where(l => l.Name == "Bug").FirstOrDefault().Id;
}
case "Bunny 114":
{
return location.Where(l => l.Name == "Bunny").FirstOrDefault().Id;
}
case "Butterfly 108":
{
return location.Where(l => l.Name == "Butterfly").FirstOrDefault().Id;
}
case "C201":
{
return location.Where(l => l.Name == "C201").FirstOrDefault().Id;
}
case "C202":
{
return location.Where(l => l.Name == "C202").FirstOrDefault().Id;
}
case "C203":
{
return location.Where(l => l.Name == "C203").FirstOrDefault().Id;
}
case "Car 1":
{
return location.Where(l => l.Name == "Car 1").FirstOrDefault().Id;
}
case "Car 10":
{
return location.Where(l => l.Name == "Car 10").FirstOrDefault().Id;
}
case "Car 2":
{
return location.Where(l => l.Name == "Car 2").FirstOrDefault().Id;
}
case "Car 3":
{
return location.Where(l => l.Name == "Car 3").FirstOrDefault().Id;
}
case "Car 4":
//.........这里部分代码省略.........
示例13: GetExpression
/// <summary>
/// Creates a Linq Expression that can be applied to an IQueryable to filter the result set.
/// </summary>
/// <param name="entityType">The type of entity in the result set.</param>
/// <param name="serviceInstance">A service instance that can be queried to obtain the result set.</param>
/// <param name="parameterExpression">The input parameter that will be injected into the filter expression.</param>
/// <param name="selection">A formatted string representing the filter settings.</param>
/// <returns>
/// A Linq Expression that can be used to filter an IQueryable.
/// </returns>
/// <exception cref="System.Exception">Filter issue(s): + errorMessages.AsDelimited( ; )</exception>
public override Expression GetExpression( Type entityType, IService serviceInstance, ParameterExpression parameterExpression, string selection )
{
var settings = new FilterSettings( selection );
var context = (RockContext)serviceInstance.Context;
// Get the Location Data View that defines the set of candidates from which proximate Locations can be selected.
var dataView = DataComponentSettingsHelper.GetDataViewForFilterComponent( settings.DataViewGuid, context );
// Evaluate the Data View that defines the candidate Locations.
var locationService = new LocationService( context );
var locationQuery = locationService.Queryable();
if ( dataView != null )
{
locationQuery = DataComponentSettingsHelper.FilterByDataView( locationQuery, dataView, locationService );
}
// Get all the Family Groups that have a Location matching one of the candidate Locations.
int familyGroupTypeId = GroupTypeCache.Read( SystemGuid.GroupType.GROUPTYPE_FAMILY.AsGuid() ).Id;
var groupLocationsQuery = new GroupLocationService( context ).Queryable()
.Where( gl => gl.Group.GroupTypeId == familyGroupTypeId && locationQuery.Any( l => l.Id == gl.LocationId ) );
// If a Location Type is specified, apply the filter condition.
if (settings.LocationTypeGuid.HasValue)
{
int groupLocationTypeId = DefinedValueCache.Read( settings.LocationTypeGuid.Value ).Id;
groupLocationsQuery = groupLocationsQuery.Where( x => x.GroupLocationTypeValue.Id == groupLocationTypeId );
}
// Get all of the Group Members of the qualifying Families.
var groupMemberServiceQry = new GroupMemberService( context ).Queryable()
.Where( gm => groupLocationsQuery.Any( gl => gl.GroupId == gm.GroupId ) );
// Get all of the People corresponding to the qualifying Group Members.
var qry = new PersonService( context ).Queryable()
.Where( p => groupMemberServiceQry.Any( gm => gm.PersonId == p.Id ) );
// Retrieve the Filter Expression.
var extractedFilterExpression = FilterExpressionExtractor.Extract<Model.Person>( qry, parameterExpression, "p" );
return extractedFilterExpression;
}
示例14: OnLoad
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Load" /> event.
/// </summary>
/// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param>
protected override void OnLoad( EventArgs e )
{
base.OnLoad( e );
_personId = PageParameter( "PersonId" ).AsIntegerOrNull();
if ( !Page.IsPostBack )
{
string locationId = PageParameter( "LocationId" );
if ( !string.IsNullOrWhiteSpace( locationId ) )
{
ShowDetail( locationId.AsInteger(), PageParameter( "ParentLocationId" ).AsIntegerOrNull() );
}
else
{
pnlDetails.Visible = false;
}
}
else
{
// Rebuild the attribute controls on postback based on group type
if ( pnlDetails.Visible )
{
int? locationId = PageParameter( "LocationId" ).AsIntegerOrNull();
if ( locationId.HasValue && locationId.Value > 0 )
{
var location = new LocationService(new RockContext()).Get( locationId.Value );
if ( location != null )
{
location.LoadAttributes();
BuildAttributeEdits( location, true );
}
}
}
}
}
示例15: btnSave_Click
/// <summary>
/// Handles the Click event of the btnSave control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
protected void btnSave_Click( object sender, EventArgs e )
{
Location location = null;
var rockContext = new RockContext();
LocationService locationService = new LocationService( rockContext );
AttributeService attributeService = new AttributeService( rockContext );
AttributeQualifierService attributeQualifierService = new AttributeQualifierService( rockContext );
int locationId = int.Parse( hfLocationId.Value );
if ( locationId != 0 )
{
location = locationService.Get( locationId );
FlushCampus( locationId );
}
if ( location == null )
{
location = new Location();
location.Name = string.Empty;
}
string previousName = location.Name;
int? orphanedImageId = null;
if ( location.ImageId != imgImage.BinaryFileId )
{
orphanedImageId = location.ImageId;
location.ImageId = imgImage.BinaryFileId;
}
location.Name = tbName.Text;
location.IsActive = cbIsActive.Checked;
location.LocationTypeValueId = ddlLocationType.SelectedValueAsId();
if ( gpParentLocation != null && gpParentLocation.Location != null )
{
location.ParentLocationId = gpParentLocation.Location.Id;
}
else
{
location.ParentLocationId = null;
}
location.PrinterDeviceId = ddlPrinter.SelectedValueAsInt();
acAddress.GetValues(location);
location.GeoPoint = geopPoint.SelectedValue;
if ( geopPoint.SelectedValue != null )
{
location.IsGeoPointLocked = true;
}
location.GeoFence = geopFence.SelectedValue;
location.IsGeoPointLocked = cbGeoPointLocked.Checked;
location.SoftRoomThreshold = nbSoftThreshold.Text.AsIntegerOrNull();
location.FirmRoomThreshold = nbFirmThreshold.Text.AsIntegerOrNull();
location.LoadAttributes( rockContext );
Rock.Attribute.Helper.GetEditValues( phAttributeEdits, location );
if ( !Page.IsValid )
{
return;
}
// if the location IsValid is false, and the UI controls didn't report any errors, it is probably because the custom rules of location didn't pass.
// So, make sure a message is displayed in the validation summary
cvLocation.IsValid = location.IsValid;
if ( !cvLocation.IsValid )
{
cvLocation.ErrorMessage = location.ValidationResults.Select( a => a.ErrorMessage ).ToList().AsDelimited( "<br />" );
return;
}
rockContext.WrapTransaction( () =>
{
if ( location.Id.Equals( 0 ) )
{
locationService.Add( location );
}
rockContext.SaveChanges();
if (orphanedImageId.HasValue)
{
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
var binaryFile = binaryFileService.Get( orphanedImageId.Value );
if ( binaryFile != null )
{
// marked the old images as IsTemporary so they will get cleaned up later
binaryFile.IsTemporary = true;
rockContext.SaveChanges();
//.........这里部分代码省略.........