本文整理汇总了C#中Rock.Model.LocationService.Add方法的典型用法代码示例。如果您正苦于以下问题:C# LocationService.Add方法的具体用法?C# LocationService.Add怎么用?C# LocationService.Add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.LocationService
的用法示例。
在下文中一共展示了LocationService.Add方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Get
/// <summary>
/// Returns the first <see cref="Rock.Model.Location"/> where the address matches the provided address. If no address is found with the provided values,
/// the address will be standardized. If there is still not a match, the address will be saved as a new location.
/// </summary>
/// <param name="street1">A <see cref="System.String"/> representing the Address Line 1 to search by.</param>
/// <param name="street2">A <see cref="System.String"/> representing the Address Line 2 to search by.</param>
/// <param name="city">A <see cref="System.String"/> representing the City to search by.</param>
/// <param name="state">A <see cref="System.String"/> representing the State to search by.</param>
/// <param name="zip">A <see cref="System.String"/> representing the Zip/Postal code to search by</param>
/// <returns>The first <see cref="Rock.Model.Location"/> where an address match is found, if no match is found a new <see cref="Rock.Model.Location"/> is created and returned.</returns>
public Location Get( string street1, string street2, string city, string state, string zip )
{
// Make sure it's not an empty address
if ( string.IsNullOrWhiteSpace( street1 ) &&
string.IsNullOrWhiteSpace( street2 ) &&
string.IsNullOrWhiteSpace( city ) &&
string.IsNullOrWhiteSpace( state ) &&
string.IsNullOrWhiteSpace( zip ) )
{
return null;
}
// First check if a location exists with the entered values
Location existingLocation = Queryable().FirstOrDefault( t =>
( t.Street1 == street1 || ( street1 == null && t.Street1 == null ) ) &&
( t.Street2 == street2 || ( street2 == null && t.Street2 == null ) ) &&
( t.City == city || ( city == null && t.City == null ) ) &&
( t.State == state || ( state == null && t.State == null ) ) &&
( t.Zip == zip || ( zip == null && t.Zip == null ) ) );
if ( existingLocation != null )
{
return existingLocation;
}
// If existing location wasn't found with entered values, try standardizing the values, and
// search for an existing value again
var newLocation = new Location
{
Street1 = street1,
Street2 = street2,
City = city,
State = state,
Zip = zip
};
Verify( newLocation, false );
existingLocation = Queryable().FirstOrDefault( t =>
( t.Street1 == newLocation.Street1 || ( newLocation.Street1 == null && t.Street1 == null ) ) &&
( t.Street2 == newLocation.Street2 || ( newLocation.Street2 == null && t.Street2 == null ) ) &&
( t.City == newLocation.City || ( newLocation.City == null && t.City == null ) ) &&
( t.State == newLocation.State || ( newLocation.State == null && t.State == null ) ) &&
( t.Zip == newLocation.Zip || ( newLocation.Zip == null && t.Zip == null ) ) );
if ( existingLocation != null )
{
return existingLocation;
}
// Create a new context/service so that save does not affect calling method's context
var rockContext = new RockContext();
var locationService = new LocationService( rockContext );
locationService.Add( newLocation );
rockContext.SaveChanges();
// refetch it from the database to make sure we get a valid .Id
return Get(newLocation.Guid);
}
示例2: 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;
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 = new Location();
location.Name = string.Empty;
}
else
{
location = locationService.Get( locationId );
FlushCampus( locationId );
}
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.LoadAttributes( rockContext );
Rock.Attribute.Helper.GetEditValues( phAttributeEdits, location );
if ( !Page.IsValid )
{
return;
}
if ( !location.IsValid )
{
// Controls will render the error messages
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();
}
}
location.SaveAttributeValues( rockContext );
} );
var qryParams = new Dictionary<string, string>();
qryParams["LocationId"] = location.Id.ToString();
qryParams["ExpandedIds"] = PageParameter( "ExpandedIds" );
//.........这里部分代码省略.........
示例3: 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();
//.........这里部分代码省略.........
示例4: GetByGeoFence
/// <summary>
/// Returns the first <see cref="Rock.Model.Location"/> with a GeoFence that matches
/// the specified GeoFence.
/// </summary>
/// <param name="fence">A <see cref="System.Data.Entity.Spatial.DbGeography"/> object that
/// represents the GeoFence of the location to retrieve.</param>
/// <returns>The <see cref="Rock.Model.Location"/> for the specified GeoFence. </returns>
public Location GetByGeoFence( DbGeography fence )
{
// get the first address that has a GeoPoint or GeoFence that matches the value
var result = Queryable()
.Where( a =>
a.GeoFence != null &&
a.GeoFence.SpatialEquals( fence ) )
.FirstOrDefault();
if ( result == null )
{
// if the Location can't be found, save the new location to the database
Location newLocation = new Location
{
GeoFence = fence,
Guid = Guid.NewGuid()
};
// Create a new context/service so that save does not affect calling method's context
var rockContext = new RockContext();
var locationService = new LocationService( rockContext );
locationService.Add( newLocation );
rockContext.SaveChanges();
// refetch it from the database to make sure we get a valid .Id
return Get( newLocation.Guid );
}
return result;
}
示例5: 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 )
{
Campus campus;
var rockContext = new RockContext();
var campusService = new CampusService( rockContext );
var locationService = new LocationService( rockContext );
var locationCampusValue = DefinedValueCache.Read(Rock.SystemGuid.DefinedValue.LOCATION_TYPE_CAMPUS.AsGuid());
int campusId = int.Parse( hfCampusId.Value );
if ( campusId == 0 )
{
campus = new Campus();
campusService.Add( campus);
}
else
{
campus = campusService.Get( campusId );
}
campus.Name = tbCampusName.Text;
campus.IsActive = cbIsActive.Checked;
campus.Description = tbDescription.Text;
campus.Url = tbUrl.Text;
campus.PhoneNumber = tbPhoneNumber.Text;
if ( campus.Location == null )
{
var location = locationService.Queryable()
.Where( l =>
l.Name.Equals( campus.Name, StringComparison.OrdinalIgnoreCase ) &&
l.LocationTypeValueId == locationCampusValue.Id )
.FirstOrDefault();
if (location == null)
{
location = new Location();
locationService.Add( location );
}
campus.Location = location;
}
campus.Location.Name = campus.Name;
campus.Location.LocationTypeValueId = locationCampusValue.Id;
string preValue = campus.Location.GetFullStreetAddress();
acAddress.GetValues( campus.Location );
string postValue = campus.Location.GetFullStreetAddress();
campus.ShortCode = tbCampusCode.Text;
var personService = new PersonService( rockContext );
var leaderPerson = personService.Get( ppCampusLeader.SelectedValue ?? 0 );
campus.LeaderPersonAliasId = leaderPerson != null ? leaderPerson.PrimaryAliasId : null;
campus.ServiceTimes = kvlServiceTimes.Value;
campus.LoadAttributes( rockContext );
Rock.Attribute.Helper.GetEditValues( phAttributes, campus );
if ( !campus.IsValid && campus.Location.IsValid)
{
// Controls will render the error messages
return;
}
rockContext.WrapTransaction( () =>
{
rockContext.SaveChanges();
campus.SaveAttributeValues( rockContext );
if (preValue != postValue && !string.IsNullOrWhiteSpace(campus.Location.Street1))
{
locationService.Verify(campus.Location, true);
}
} );
Rock.Web.Cache.CampusCache.Flush( campus.Id );
NavigateToParentPage();
}
示例6: LoadKioskLocations
/// <summary>
/// Loads the kiosk locations.
/// </summary>
/// <param name="kioskDevice">The kiosk device.</param>
/// <param name="location">The location.</param>
/// <param name="campusId">The campus identifier.</param>
/// <param name="rockContext">The rock context.</param>
private static void LoadKioskLocations( KioskDevice kioskDevice, Location location, int? campusId, RockContext rockContext )
{
// Get the child locations and the selected location
var allLocations = new LocationService( rockContext ).GetAllDescendentIds( location.Id ).ToList();
allLocations.Add( location.Id );
var activeSchedules = new Dictionary<int, KioskSchedule>();
foreach ( var groupLocation in new GroupLocationService( rockContext ).GetActiveByLocations( allLocations ).OrderBy( l => l.Order ).AsNoTracking() )
{
var kioskLocation = new KioskLocation( groupLocation.Location );
kioskLocation.CampusId = campusId;
kioskLocation.Order = groupLocation.Order;
// Populate each kioskLocation with its schedules (kioskSchedules)
foreach ( var schedule in groupLocation.Schedules.Where( s => s.CheckInStartOffsetMinutes.HasValue ) )
{
if ( activeSchedules.Keys.Contains( schedule.Id ) )
{
kioskLocation.KioskSchedules.Add( activeSchedules[schedule.Id] );
}
else
{
var kioskSchedule = new KioskSchedule( schedule );
kioskSchedule.CheckInTimes = schedule.GetCheckInTimes( RockDateTime.Now );
if ( kioskSchedule.IsCheckInActive || kioskSchedule.NextActiveDateTime.HasValue )
{
kioskLocation.KioskSchedules.Add( kioskSchedule );
activeSchedules.Add( schedule.Id, kioskSchedule );
}
}
}
// If the group location has any active OR future schedules, add the group's group type to the kiosk's
// list of group types
if ( kioskLocation.KioskSchedules.Count > 0 )
{
KioskGroupType kioskGroupType = kioskDevice.KioskGroupTypes.Where( g => g.GroupType.Id == groupLocation.Group.GroupTypeId ).FirstOrDefault();
if ( kioskGroupType == null )
{
kioskGroupType = new KioskGroupType( groupLocation.Group.GroupTypeId );
kioskDevice.KioskGroupTypes.Add( kioskGroupType );
}
KioskGroup kioskGroup = kioskGroupType.KioskGroups.Where( g => g.Group.Id == groupLocation.GroupId ).FirstOrDefault();
if ( kioskGroup == null )
{
kioskGroup = new KioskGroup( groupLocation.Group );
kioskGroup.Group.LoadAttributes( rockContext );
kioskGroupType.KioskGroups.Add( kioskGroup );
}
kioskGroup.KioskLocations.Add( kioskLocation );
}
}
}
示例7: 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;
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 = new Location();
location.Name = string.Empty;
}
else
{
location = locationService.Get( locationId );
}
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();
var addrLocation = locapAddress.Location;
if ( addrLocation != null )
{
location.Street1 = addrLocation.Street1;
location.Street2 = addrLocation.Street2;
location.City = addrLocation.City;
location.State = addrLocation.State;
location.Zip = addrLocation.Zip;
}
location.GeoPoint = geopPoint.SelectedValue;
if ( geopPoint.SelectedValue != null )
{
location.IsGeoPointLocked = true;
}
location.GeoFence = geopFence.SelectedValue;
location.IsGeoPointLocked = cbGeoPointLocked.Checked;
location.LoadAttributes( rockContext );
Rock.Attribute.Helper.GetEditValues( phAttributeEdits, location );
if ( !Page.IsValid )
{
return;
}
if ( !location.IsValid )
{
// Controls will render the error messages
return;
}
RockTransactionScope.WrapTransaction( () =>
{
if ( location.Id.Equals( 0 ) )
{
locationService.Add( location );
}
rockContext.SaveChanges();
location.SaveAttributeValues( rockContext );
} );
var qryParams = new Dictionary<string, string>();
qryParams["LocationId"] = location.Id.ToString();
NavigateToPage( RockPage.Guid, qryParams );
}
示例8: Get
/// <summary>
/// Returns the first
/// <see cref="Rock.Model.Location" /> where the address matches the provided address. If no address is found with the provided values,
/// the address will be standardized. If there is still not a match, the address will be saved as a new location.
/// </summary>
/// <param name="street1">A <see cref="System.String" /> representing the Address Line 1 to search by.</param>
/// <param name="street2">A <see cref="System.String" /> representing the Address Line 2 to search by.</param>
/// <param name="city">A <see cref="System.String" /> representing the City to search by.</param>
/// <param name="state">A <see cref="System.String" /> representing the State to search by.</param>
/// <param name="postalCode">A <see cref="System.String" /> representing the Zip/Postal code to search by</param>
/// <param name="country">The country.</param>
/// <param name="verifyLocation">if set to <c>true</c> [verify location].</param>
/// <returns>
/// The first <see cref="Rock.Model.Location" /> where an address match is found, if no match is found a new <see cref="Rock.Model.Location" /> is created and returned.
/// </returns>
public Location Get( string street1, string street2, string city, string state, string postalCode, string country, bool verifyLocation = true )
{
// Make sure it's not an empty address
if ( string.IsNullOrWhiteSpace( street1 ) )
{
return null;
}
// First check if a location exists with the entered values
Location existingLocation = Queryable().FirstOrDefault( t =>
( t.Street1 == street1 || ( ( street1 == null || street1 == "" ) && ( t.Street1 == null || t.Street1 == "" ) ) ) &&
( t.Street2 == street2 || ( ( street2 == null || street2 == "" ) && ( t.Street2 == null || t.Street2 == "" ) ) ) &&
( t.City == city || ( ( city == null || city == "" ) && ( t.City == null || t.City == "" ) ) ) &&
( t.State == state || ( ( state == null || state == "" ) && ( t.State == null || t.State == "" ) ) ) &&
( t.PostalCode == postalCode || ( ( postalCode == null || postalCode == "" ) && ( t.PostalCode == null || t.PostalCode == "" ) ) ) &&
( t.Country == country || ( ( country == null || country == "" ) && ( t.Country == null || t.Country == "" ) ) ) );
if ( existingLocation != null )
{
return existingLocation;
}
// If existing location wasn't found with entered values, try standardizing the values, and
// search for an existing value again
var newLocation = new Location
{
Street1 = street1.FixCase(),
Street2 = street2.FixCase(),
City = city.FixCase(),
State = state,
PostalCode = postalCode,
Country = country
};
if ( verifyLocation )
{
Verify( newLocation, false );
}
existingLocation = Queryable().FirstOrDefault( t =>
( t.Street1 == newLocation.Street1 || ( ( newLocation.Street1 == null || newLocation.Street1 == "" ) && ( t.Street1 == null || t.Street1 == "" ) ) ) &&
( t.Street2 == newLocation.Street2 || ( ( newLocation.Street2 == null || newLocation.Street2 == "" ) && ( t.Street2 == null || t.Street2 == "" ) ) ) &&
( t.City == newLocation.City || ( ( newLocation.City == null || newLocation.City == "" ) && ( t.City == null || t.City == "" ) ) ) &&
( t.State == newLocation.State || ( ( newLocation.State == null || newLocation.State == "" ) && ( t.State == null || t.State == "" ) ) ) &&
( t.PostalCode == newLocation.PostalCode || ( ( newLocation.PostalCode == null || newLocation.PostalCode == "" ) && ( t.PostalCode == null || t.PostalCode == "" ) ) ) &&
( t.Country == newLocation.Country || ( ( newLocation.Country == null || newLocation.Country == "" ) && ( t.Country == null || t.Country == "" ) ) ) );
if ( existingLocation != null )
{
return existingLocation;
}
// Create a new context/service so that save does not affect calling method's context
var rockContext = new RockContext();
var locationService = new LocationService( rockContext );
locationService.Add( newLocation );
rockContext.SaveChanges();
// refetch it from the database to make sure we get a valid .Id
return Get( newLocation.Guid );
}
示例9: GetByGeoPoint
/// <summary>
/// Returns a <see cref="Rock.Model.Location"/> by GeoPoint. If a match is not found,
/// a new Location will be added based on the Geopoint.
/// </summary>
/// <param name="point">A <see cref="System.Data.Entity.Spatial.DbGeography"/> object
/// representing the Geopoint for the location.</param>
/// <returns>The first <see cref="Rock.Model.Location"/> that matches the specified GeoPoint.</returns>
public Location GetByGeoPoint( DbGeography point )
{
// get the first address that has a GeoPoint the value
// use the 'Where Max(ID)' trick instead of TOP 1 to optimize SQL performance
var qryWhere = Queryable()
.Where( a =>
a.GeoPoint != null &&
a.GeoPoint.SpatialEquals( point ) );
var result = Queryable().Where( a => a.Id == qryWhere.Max( b => b.Id ) ).FirstOrDefault();
if ( result == null )
{
// if the Location can't be found, save the new location to the database
Location newLocation = new Location
{
GeoPoint = point,
Guid = Guid.NewGuid()
};
// Create a new context/service so that save does not affect calling method's context
var rockContext = new RockContext();
var locationService = new LocationService( rockContext );
locationService.Add( newLocation );
rockContext.SaveChanges();
// refetch it from the database to make sure we get a valid .Id
return Get( newLocation.Guid );
}
return result;
}