/// <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; CampusService campusService = new CampusService(); int campusId = int.Parse( hfCampusId.Value ); if ( campusId == 0 ) { campus = new Campus(); campusService.Add( campus, CurrentPersonId ); } else { campus = campusService.Get( campusId ); } campus.Name = tbCampusName.Text; campus.ShortCode = tbCampusCode.Text; if ( !campus.IsValid ) { // Controls will render the error messages return; } RockTransactionScope.WrapTransaction( () => { campusService.Save( campus, CurrentPersonId ); } ); NavigateToParentPage(); }
/// <summary> /// Handles the Delete event of the gCampuses control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gCampuses_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); CampusService campusService = new CampusService( rockContext ); Campus campus = campusService.Get( e.RowKeyId ); if ( campus != null ) { // Don't allow deleting the last campus if ( !campusService.Queryable().Where( c => c.Id != campus.Id ).Any() ) { mdGridWarning.Show( campus.Name + " is the only campus and cannot be deleted (Rock requires at least one campus).", ModalAlertType.Information ); return; } string errorMessage; if ( !campusService.CanDelete( campus, out errorMessage ) ) { mdGridWarning.Show( errorMessage, ModalAlertType.Information ); return; } CampusCache.Flush( campus.Id ); campusService.Delete( campus ); rockContext.SaveChanges(); } BindGrid(); }
/// <summary> /// Shows the detail. /// </summary> /// <param name="campusId">The campus identifier.</param> public void ShowDetail( int campusId ) { pnlDetails.Visible = true; // Load depending on Add(0) or Edit Campus campus = null; if ( !campusId.Equals( 0 ) ) { campus = new CampusService( new RockContext() ).Get( campusId ); lActionTitle.Text = ActionTitle.Edit(Campus.FriendlyTypeName).FormatAsHtmlTitle(); } if ( campus == null ) { campus = new Campus { Id = 0 }; lActionTitle.Text = ActionTitle.Add( Campus.FriendlyTypeName ).FormatAsHtmlTitle(); } hfCampusId.Value = campus.Id.ToString(); tbCampusName.Text = campus.Name; cbIsActive.Checked = !campus.IsActive.HasValue || campus.IsActive.Value; tbDescription.Text = campus.Description; tbUrl.Text = campus.Url; tbPhoneNumber.Text = campus.PhoneNumber; acAddress.SetValues( campus.Location ); tbCampusCode.Text = campus.ShortCode; ppCampusLeader.SetValue( campus.LeaderPersonAlias != null ? campus.LeaderPersonAlias.Person : null ); kvlServiceTimes.Value = campus.ServiceTimes; campus.LoadAttributes(); phAttributes.Controls.Clear(); Rock.Attribute.Helper.AddEditControls( campus, phAttributes, true, BlockValidationGroup ); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !IsUserAuthorized( Authorization.EDIT ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Campus.FriendlyTypeName ); } if ( campus.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Campus.FriendlyTypeName ); } if ( readOnly ) { lActionTitle.Text = ActionTitle.View( Campus.FriendlyTypeName ); btnCancel.Text = "Close"; } tbCampusName.ReadOnly = readOnly; btnSave.Visible = !readOnly; }
/// <summary> /// Shows the detail. /// </summary> /// <param name="businessId">The business identifier.</param> public void ShowDetail( int businessId ) { var rockContext = new RockContext(); // Load the Campus drop down ddlCampus.Items.Clear(); ddlCampus.Items.Add( new ListItem( string.Empty, string.Empty ) ); var campusService = new CampusService( new RockContext() ); foreach ( Campus campus in campusService.Queryable() ) { ListItem li = new ListItem( campus.Name, campus.Id.ToString() ); ddlCampus.Items.Add( li ); } Person business = null; // A business is a person if ( !businessId.Equals( 0 ) ) { business = new PersonService( rockContext ).Get( businessId ); } if ( business == null ) { business = new Person { Id = 0, Guid = Guid.NewGuid() }; } bool editAllowed = business.IsAuthorized( Authorization.EDIT, CurrentPerson ); hfBusinessId.Value = business.Id.ToString(); bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !editAllowed || !IsUserAuthorized( Authorization.EDIT ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Person.FriendlyTypeName ); } if ( readOnly ) { ShowSummary( businessId ); } else { if ( business.Id > 0 ) { ShowSummary( business.Id ); } else { ShowEditDetails( business ); } } BindContactListGrid( business ); }
/// <summary> /// Handles the ItemCommand event of the rptCampuses control. /// </summary> /// <param name="source">The source of the event.</param> /// <param name="e">The <see cref="RepeaterCommandEventArgs"/> instance containing the event data.</param> protected void rptCampuses_ItemCommand( object source, RepeaterCommandEventArgs e ) { bool pageScope = GetAttributeValue( "ContextScope" ) == "Page"; var campus = new CampusService( new RockContext() ).Get( e.CommandArgument.ToString().AsInteger() ); if ( campus != null ) { RockPage.SetContextCookie( campus, pageScope, true ); } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="itemKey">The item key.</param> /// <param name="itemKeyValue">The item key value.</param> public void ShowDetail( string itemKey, int itemKeyValue ) { // return if unexpected itemKey if ( itemKey != "campusId" ) { return; } pnlDetails.Visible = true; // Load depending on Add(0) or Edit Campus campus = null; if ( !itemKeyValue.Equals( 0 ) ) { campus = new CampusService( new RockContext() ).Get( itemKeyValue ); lActionTitle.Text = ActionTitle.Edit(Campus.FriendlyTypeName).FormatAsHtmlTitle(); } else { campus = new Campus { Id = 0 }; lActionTitle.Text = ActionTitle.Add(Campus.FriendlyTypeName).FormatAsHtmlTitle(); } hfCampusId.Value = campus.Id.ToString(); tbCampusName.Text = campus.Name; tbCampusCode.Text = campus.ShortCode; tbPhoneNumber.Text = campus.PhoneNumber; ppCampusLeader.SetValue( campus.LeaderPersonAlias != null ? campus.LeaderPersonAlias.Person : null ); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !IsUserAuthorized( Authorization.EDIT ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Campus.FriendlyTypeName ); } if ( campus.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Campus.FriendlyTypeName ); } if ( readOnly ) { lActionTitle.Text = ActionTitle.View( Campus.FriendlyTypeName ); btnCancel.Text = "Close"; } tbCampusName.ReadOnly = readOnly; btnSave.Visible = !readOnly; }
/// <summary> /// Creates the control(s) neccessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override System.Web.UI.Control EditControl( Dictionary<string, ConfigurationValue> configurationValues, string id ) { var editControl = new RockDropDownList { ID = id }; CampusService campusService = new CampusService(); var campusList = campusService.Queryable().OrderBy( a => a.Name ).ToList(); editControl.Items.Add( None.ListItem ); foreach ( var campus in campusList ) { editControl.Items.Add( new ListItem( campus.Name, campus.Id.ToString() ) ); } return editControl; }
/// <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( System.Web.UI.Control parentControl, string value, Dictionary<string, ConfigurationValue> configurationValues, bool condensed ) { string formattedValue = value; if ( !string.IsNullOrWhiteSpace( value ) ) { var campus = new CampusService( new RockContext() ).Get( value.AsInteger() ); if ( campus != null ) { formattedValue = campus.Name; } } return base.FormatValue( parentControl, formattedValue, configurationValues, condensed ); }
/// <summary> /// Creates the control(s) neccessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override System.Web.UI.Control EditControl( Dictionary<string, ConfigurationValue> configurationValues, string id ) { var campusPicker = new CampusPicker { ID = id }; CampusService campusService = new CampusService( new RockContext() ); var campusList = campusService.Queryable().OrderBy( a => a.Name ).ToList(); if ( campusList.Any() ) { campusPicker.Campuses = campusList; return campusPicker; } return null; }
/// <summary> /// Handles the Delete event of the gCampuses control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gCampuses_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); CampusService campusService = new CampusService( rockContext ); Campus campus = campusService.Get( (int)e.RowKeyValue ); if ( campus != null ) { string errorMessage; if ( !campusService.CanDelete( campus, out errorMessage ) ) { mdGridWarning.Show( errorMessage, ModalAlertType.Information ); return; } campusService.Delete( campus ); rockContext.SaveChanges(); } BindGrid(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event. /// </summary> /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnInit( EventArgs e ) { base.OnInit( e ); var campusi = new CampusService().Queryable().OrderBy( a => a.Name ).ToList(); cpCampus.Campuses = campusi; cpCampus.Visible = campusi.Any(); var childRole = new GroupTypeRoleService().Get( new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_CHILD ) ); if ( childRole != null ) { _childRoleId = childRole.Id; } bool.TryParse( GetAttributeValue( "Gender" ), out _requireGender ); bool.TryParse( GetAttributeValue( "Grade" ), out _requireGrade ); bool showNickName = false; nfmMembers.ShowNickName = bool.TryParse( GetAttributeValue( "NickName" ), out showNickName ) && showNickName; lTitle.Text = ("Add Family").FormatAsHtmlTitle(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event. /// </summary> /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnInit( EventArgs e ) { base.OnInit( e ); bool canEdit = IsUserAuthorized( Authorization.EDIT ); rAccountFilter.ApplyFilterClick += rAccountFilter_ApplyFilterClick; rAccountFilter.DisplayFilterValue += rAccountFilter_DisplayFilterValue; var campusList = new CampusService( new RockContext() ).Queryable().OrderBy( a => a.Name ).ToList(); if ( campusList.Count > 0 ) { ddlCampus.Visible = true; rGridAccount.Columns[3].Visible = true; } rGridAccount.DataKeyNames = new string[] { "id" }; rGridAccount.Actions.ShowAdd = canEdit; rGridAccount.Actions.AddClick += rGridAccount_Add; rGridAccount.GridReorder += rGridAccount_GridReorder; rGridAccount.GridRebind += rGridAccounts_GridRebind; rGridAccount.IsDeleteEnabled = canEdit; }
/// <summary> /// Gets the expression. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="serviceInstance">The service instance.</param> /// <param name="parameterExpression">The parameter expression.</param> /// <param name="selection">The selection.</param> /// <returns></returns> public override Expression GetExpression( Type entityType, IService serviceInstance, ParameterExpression parameterExpression, string selection ) { var rockContext = (RockContext)serviceInstance.Context; string[] selectionValues = selection.Split( '|' ); if ( selectionValues.Length >= 1 ) { Campus campus = new CampusService( rockContext ).Get( selectionValues[0].AsGuid() ); if ( campus == null ) { return null; } GroupMemberService groupMemberService = new GroupMemberService( rockContext ); var groupMemberServiceQry = groupMemberService.Queryable() .Where( xx => xx.Group.GroupType.Guid == new Guid( Rock.SystemGuid.GroupType.GROUPTYPE_FAMILY ) ) .Where( xx => xx.Group.CampusId == campus.Id ); var qry = new PersonService( rockContext ).Queryable() .Where( p => groupMemberServiceQry.Any( xx => xx.PersonId == p.Id ) ); Expression extractedFilterExpression = FilterExpressionExtractor.Extract<Rock.Model.Person>( qry, parameterExpression, "p" ); return extractedFilterExpression; } return null; }
/// <summary> /// Gets the campus identifier from selection. /// </summary> /// <param name="selectionValues">The selection values.</param> /// <returns></returns> private static int? GetCampusIdFromSelection( string[] selectionValues ) { Guid? campusGuid = selectionValues[0].AsGuidOrNull(); int? campusId = null; if ( campusGuid.HasValue ) { var campus = new CampusService( new RockContext() ).Get( campusGuid.Value ); if ( campus != null ) { campusId = campus.Id; } } return campusId; }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { CampusService campusService = new CampusService( new RockContext() ); SortProperty sortProperty = gCampuses.SortProperty; if ( sortProperty != null ) { gCampuses.DataSource = campusService.Queryable().Sort( sortProperty ).ToList(); } else { gCampuses.DataSource = campusService.Queryable().OrderBy( s => s.Name ).ToList(); } gCampuses.DataBind(); }
private void SetCampus() { RockContext rockContext = new RockContext(); Campus campus = null; // get device string deviceIp = GetIPAddress(); DeviceService deviceService = new DeviceService(rockContext); var deviceQry = deviceService.Queryable( "Location" ) .Where( d => d.IPAddress == deviceIp ); // add device type filter if (!string.IsNullOrWhiteSpace(GetAttributeValue("DeviceType"))) { Guid givingKioskGuid = new Guid( GetAttributeValue("DeviceType")); deviceQry = deviceQry.Where( d => d.DeviceType.Guid == givingKioskGuid); } var device = deviceQry.FirstOrDefault(); if ( device != null ) { if ( device.Locations.Count > 0 ) { campus = new CampusService( new RockContext() ).Get( device.Locations.First().CampusId.Value ); // set the context if ( campus != null ) { var campusEntityType = EntityTypeCache.Read( "Rock.Model.Campus" ); var currentCampus = RockPage.GetCurrentContext( campusEntityType ) as Campus; if ( currentCampus == null || currentCampus.Id != campus.Id ) { bool pageScope = GetAttributeValue( "ContextScope" ) == "Page"; RockPage.SetContextCookie( campus, pageScope, true ); } } } } // set display output var mergeFields = Rock.Lava.LavaHelper.GetCommonMergeFields( this.RockPage, this.CurrentPerson ); mergeFields.Add( "ClientIp", deviceIp ); mergeFields.Add( "Device", device ); mergeFields.Add( "Campus", campus ); lOutput.Text = GetAttributeValue( "DisplayLava" ).ResolveMergeFields( mergeFields ); // show debug info if ( GetAttributeValue( "EnableDebug" ).AsBoolean() && IsUserAuthorized( Authorization.EDIT ) ) { lDebug.Visible = true; lDebug.Text = mergeFields.lavaDebugInfo(); } }
/// <summary> /// Formats the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="selection">The selection.</param> /// <returns></returns> public override string FormatSelection( Type entityType, string selection ) { string result = "Campus"; string[] selectionValues = selection.Split( '|' ); if ( selectionValues.Length >= 1 ) { int? campusId = GetCampusIdFromSelection( selectionValues ); if ( campusId.HasValue ) { var campus = new CampusService( new RockContext() ).Get( campusId.Value ); if ( campus != null ) { result = string.Format( "Campus: {0}", campus.Name ); } } else { result = "No Campus"; } } return result; }
/// <summary> /// Binds the filter. /// </summary> private void BindFilter() { var campusi = new CampusService( new RockContext() ).Queryable().OrderBy( a => a.Name ).ToList(); cpCampus.Campuses = campusi; cpCampus.Visible = campusi.Any(); var definedType = DefinedTypeCache.Read( com.centralaz.SystemGuid.DefinedType.REFERRAL_AGENCY_TYPE.AsGuid() ); if ( definedType != null ) { ddlAgencyType.BindToDefinedType( definedType, true ); } }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event. /// </summary> /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnInit( EventArgs e ) { base.OnInit( e ); ddlMaritalStatus.BindToDefinedType( DefinedTypeCache.Read( Rock.SystemGuid.DefinedType.PERSON_MARITAL_STATUS.AsGuid() ) ); var AdultMaritalStatus = DefinedValueCache.Read( GetAttributeValue( "AdultMaritalStatus" ).AsGuid() ); if (AdultMaritalStatus != null) { ddlMaritalStatus.SetValue( AdultMaritalStatus.Id ); } var campusi = new CampusService( new RockContext() ).Queryable().OrderBy( a => a.Name ).ToList(); cpCampus.Campuses = campusi; cpCampus.Visible = campusi.Any(); var familyGroupType = GroupTypeCache.GetFamilyGroupType(); if (familyGroupType != null) { _childRoleId = familyGroupType.Roles .Where( r => r.Guid.Equals( Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_CHILD.AsGuid() ) ) .Select( r => r.Id) .FirstOrDefault(); } bool.TryParse( GetAttributeValue( "Gender" ), out _requireGender ); bool.TryParse( GetAttributeValue( "Grade" ), out _requireGrade ); lTitle.Text = ("Add Family").FormatAsHtmlTitle(); }
/// <summary> /// Formats the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="selection">The selection.</param> /// <returns></returns> public override string FormatSelection( Type entityType, string selection ) { string result = "Campus"; string[] selectionValues = selection.Split( '|' ); if ( selectionValues.Length >= 1 ) { Guid campusGuid = selectionValues[0].AsGuid(); var campus = new CampusService( new RockContext() ).Get( campusGuid ); if ( campus != null ) { result = "Campus: " + campus.Name; } } return result; }
/// <summary> /// Binds the filter. /// </summary> private void BindFilter() { string titleFilter = rFBFilter.GetUserPreference( "Title" ); txtTitle.Text = !string.IsNullOrWhiteSpace( titleFilter ) ? titleFilter : string.Empty; ddlStatus.BindToEnum( typeof( BatchStatus ) ); ddlStatus.Items.Insert( 0, Rock.Constants.All.ListItem ); ddlStatus.SetValue( rFBFilter.GetUserPreference( "Status" ) ); var campusi = new CampusService().Queryable().OrderBy( a => a.Name ).ToList(); ddlCampus.Campuses = campusi; ddlCampus.Visible = campusi.Any(); ddlCampus.SetValue( rFBFilter.GetUserPreference( "Campus" ) ); }
/// <summary> /// Gets the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="controls">The controls.</param> /// <returns></returns> public override string GetSelection( Type entityType, Control[] controls ) { var campusId = ( controls[0] as CampusPicker ).SelectedCampusId; var campus = new CampusService( new RockContext() ).Get( campusId ?? 0 ); var value1 = string.Empty; if ( campus != null ) { value1 = campus.Guid.ToString(); } return value1; }
/// <summary> /// Sets the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="controls">The controls.</param> /// <param name="selection">The selection.</param> public override void SetSelection( Type entityType, Control[] controls, string selection ) { string[] selectionValues = selection.Split( '|' ); if ( selectionValues.Length >= 1 ) { var campusPicker = controls[0] as CampusPicker; var selectedCampus = new CampusService( new RockContext() ).Get( selectionValues[0].AsGuid() ); if ( selectedCampus != null ) { campusPicker.SelectedCampusId = selectedCampus.Id; } else { campusPicker.SelectedCampusId = null; } } }
/// <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 ); if ( !Page.IsPostBack ) { var rockContext = new RockContext(); string itemId = PageParameter( "businessId" ); // Load the Giving Group drop down ddlGivingGroup.Items.Clear(); ddlGivingGroup.Items.Add( new ListItem( None.Text, None.IdValue ) ); if ( int.Parse( itemId ) > 0 ) { var businessService = new PersonService( rockContext ); var business = businessService.Get( int.Parse( itemId ) ); ddlGivingGroup.Items.Add( new ListItem( business.FirstName, business.Id.ToString() ) ); } // Load the Campus drop down ddlCampus.Items.Clear(); ddlCampus.Items.Add( new ListItem( string.Empty, string.Empty ) ); var campusService = new CampusService( new RockContext() ); foreach ( Campus campus in campusService.Queryable() ) { ListItem li = new ListItem( campus.Name, campus.Id.ToString() ); ddlCampus.Items.Add( li ); } if ( !string.IsNullOrWhiteSpace( itemId ) ) { ShowDetail( "businessId", int.Parse( itemId ) ); } else { pnlDetails.Visible = false; } } if ( !string.IsNullOrWhiteSpace( hfModalOpen.Value ) ) { mdAddContact.Show(); } }
/// <summary> /// Loads the drop downs. /// </summary> private void LoadDropDowns() { CampusService campusService = new CampusService( new RockContext() ); List<Campus> campuses = campusService.Queryable().OrderBy( a => a.Name ).ToList(); campuses.Insert( 0, new Campus { Id = None.Id, Name = None.Text } ); ddlCampus.DataSource = campuses; ddlCampus.DataBind(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event. /// </summary> /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnInit( EventArgs e ) { base.OnInit( e ); basePersonUrl = ResolveUrl( "~/Person/" ); var rockContext = new RockContext(); int familyId = int.MinValue; if ( int.TryParse( PageParameter( "FamilyId" ), out familyId ) ) { _family = new GroupService( rockContext ).Get( familyId ); if ( _family != null && string.Compare( _family.GroupType.Guid.ToString(), Rock.SystemGuid.GroupType.GROUPTYPE_FAMILY, true ) != 0 ) { nbNotice.Heading = "Invalid Family"; nbNotice.Text = "Sorry, but the group selected is not a Family group"; nbNotice.NotificationBoxType = NotificationBoxType.Danger; nbNotice.Visible = true; _family = null; return; } else { familyRoles = _family.GroupType.Roles.OrderBy( r => r.Order ).ToList(); rblNewPersonRole.DataSource = familyRoles; rblNewPersonRole.DataBind(); addressTypes = _family.GroupType.LocationTypes.Select( l => l.LocationTypeValue ).OrderBy( v => v.Order ).ToList(); } } _canEdit = IsUserAuthorized( Authorization.EDIT ); var campusi = new CampusService( rockContext ).Queryable().OrderBy( a => a.Name ).ToList(); cpCampus.Campuses = campusi; cpCampus.Visible = campusi.Any(); ddlRecordStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS ) ), true ); ddlReason.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS_REASON ) ), true ); lvMembers.DataKeyNames = new string[] { "Index" }; lvMembers.ItemDataBound += lvMembers_ItemDataBound; lvMembers.ItemCommand += lvMembers_ItemCommand; modalAddPerson.SaveButtonText = "Ok"; modalAddPerson.SaveClick += modalAddPerson_SaveClick; modalAddPerson.OnCancelScript = string.Format( "$('#{0}').val('');", hfActiveTab.ClientID ); gLocations.DataKeyNames = new string[] { "id" }; gLocations.RowDataBound += gLocations_RowDataBound; gLocations.RowEditing += gLocations_RowEditing; gLocations.RowUpdating += gLocations_RowUpdating; gLocations.RowCancelingEdit += gLocations_RowCancelingEdit; gLocations.Actions.ShowAdd = _canEdit; gLocations.Actions.ShowAdd = true; gLocations.Actions.AddClick += gLocations_Add; gLocations.IsDeleteEnabled = _canEdit; gLocations.GridRebind += gLocations_GridRebind; ddlNewPersonGender.BindToEnum( typeof( Gender ) ); // Save and Cancel should not confirm exit btnSave.OnClientClick = string.Format( "javascript:$('#{0}').val('');return true;", confirmExit.ClientID ); btnCancel.OnClientClick = string.Format( "javascript:$('#{0}').val('');return true;", confirmExit.ClientID ); }
/// <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 ); if ( !Page.IsPostBack ) { ShowDetail( PageParameter( "campusId" ).AsInteger() ); } else { if ( pnlDetails.Visible ) { var rockContext = new RockContext(); Campus campus; string itemId = PageParameter( "campusId" ); if ( !string.IsNullOrWhiteSpace( itemId ) && int.Parse( itemId ) > 0 ) { campus = new CampusService( rockContext ).Get( int.Parse( PageParameter( "campusId" ) ) ); } else { campus = new Campus { Id = 0 }; } campus.LoadAttributes(); phAttributes.Controls.Clear(); Rock.Attribute.Helper.AddEditControls( campus, phAttributes, false, BlockValidationGroup ); } } }
/// <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(); }
/// <summary> /// Loads the campus picker. /// </summary> private void LoadCampusPicker() { CampusService campusService = new CampusService( new RockContext() ); cpCampuses.Campuses = campusService.Queryable().OrderBy( a => a.Name ).ToList(); cpCampuses.Visible = cpCampuses.AvailableCampusIds.Count > 0; }
/// <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 ) { EventItemOccurrence eventItemOccurrence = null; using ( var rockContext = new RockContext() ) { bool newItem = false; var eventItemOccurrenceService = new EventItemOccurrenceService( rockContext ); var eventItemOccurrenceGroupMapService = new EventItemOccurrenceGroupMapService( rockContext ); var registrationInstanceService = new RegistrationInstanceService( rockContext ); var scheduleService = new ScheduleService( rockContext ); int eventItemOccurrenceId = hfEventItemOccurrenceId.ValueAsInt(); if ( eventItemOccurrenceId != 0 ) { eventItemOccurrence = eventItemOccurrenceService .Queryable( "Linkages" ) .Where( i => i.Id == eventItemOccurrenceId ) .FirstOrDefault(); } if ( eventItemOccurrence == null ) { newItem = true; eventItemOccurrence = new EventItemOccurrence{ EventItemId = PageParameter("EventItemId").AsInteger() }; eventItemOccurrenceService.Add( eventItemOccurrence ); } int? newCampusId = ddlCampus.SelectedValueAsInt(); if ( eventItemOccurrence.CampusId != newCampusId ) { eventItemOccurrence.CampusId = newCampusId; if ( newCampusId.HasValue ) { var campus = new CampusService( rockContext ).Get( newCampusId.Value ); eventItemOccurrence.Campus = campus; } else { eventItemOccurrence.Campus = null; } } eventItemOccurrence.Location = tbLocation.Text; string iCalendarContent = sbSchedule.iCalendarContent; var calEvent = ScheduleICalHelper.GetCalenderEvent( iCalendarContent ); if ( calEvent != null && calEvent.DTStart != null ) { if ( eventItemOccurrence.Schedule == null ) { eventItemOccurrence.Schedule = new Schedule(); } eventItemOccurrence.Schedule.iCalendarContent = iCalendarContent; } else { if ( eventItemOccurrence.ScheduleId.HasValue ) { var oldSchedule = scheduleService.Get( eventItemOccurrence.ScheduleId.Value ); if ( oldSchedule != null ) { scheduleService.Delete( oldSchedule ); } } } if ( !eventItemOccurrence.ContactPersonAliasId.Equals( ppContact.PersonAliasId )) { PersonAlias personAlias = null; eventItemOccurrence.ContactPersonAliasId = ppContact.PersonAliasId; if ( eventItemOccurrence.ContactPersonAliasId.HasValue ) { personAlias = new PersonAliasService( rockContext ).Get( eventItemOccurrence.ContactPersonAliasId.Value ); } if ( personAlias != null ) { eventItemOccurrence.ContactPersonAlias = personAlias; } } eventItemOccurrence.ContactPhone = PhoneNumber.FormattedNumber( PhoneNumber.DefaultCountryCode(), pnPhone.Number ); eventItemOccurrence.ContactEmail = tbEmail.Text; eventItemOccurrence.Note = htmlOccurrenceNote.Text; // Remove any linkage no longer in UI Guid uiLinkageGuid = LinkageState != null ? LinkageState.Guid : Guid.Empty; foreach( var linkage in eventItemOccurrence.Linkages.Where( l => !l.Guid.Equals(uiLinkageGuid)).ToList()) { eventItemOccurrence.Linkages.Remove( linkage ); eventItemOccurrenceGroupMapService.Delete( linkage ); } // Add/Update linkage in UI if ( !uiLinkageGuid.Equals( Guid.Empty )) { var linkage = eventItemOccurrence.Linkages.Where( l => l.Guid.Equals( uiLinkageGuid)).FirstOrDefault(); if ( linkage == null ) { linkage = new EventItemOccurrenceGroupMap(); eventItemOccurrence.Linkages.Add( linkage ); } linkage.CopyPropertiesFrom( LinkageState ); // update registration instance if ( LinkageState.RegistrationInstance != null ) { if ( LinkageState.RegistrationInstance.Id != 0 ) { linkage.RegistrationInstance = registrationInstanceService.Get( LinkageState.RegistrationInstance.Id ); } if ( linkage.RegistrationInstance == null ) { var registrationInstance = new RegistrationInstance(); registrationInstanceService.Add( registrationInstance ); linkage.RegistrationInstance = registrationInstance; } linkage.RegistrationInstance.CopyPropertiesFrom( LinkageState.RegistrationInstance ); } } if ( !Page.IsValid ) { return; } if ( !eventItemOccurrence.IsValid ) { // Controls will render the error messages return; } rockContext.SaveChanges(); var qryParams = new Dictionary<string, string>(); qryParams.Add( "EventCalendarId", PageParameter( "EventCalendarId" ) ); qryParams.Add( "EventItemId", PageParameter( "EventItemId" ) ); if ( newItem ) { NavigateToParentPage( qryParams ); } else { qryParams.Add( "EventItemOccurrenceId", eventItemOccurrence.Id.ToString() ); NavigateToPage( RockPage.Guid, qryParams ); } } }