/// <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)
        {
            if (!Page.IsValid)
            {
                return;
            }

            var         rockContext        = new RockContext();
            var         mediaFolderService = new MediaFolderService(rockContext);
            var         mediaFolderId      = hfId.Value.AsIntegerOrNull();
            MediaFolder mediaFolder        = null;

            if (mediaFolderId.HasValue)
            {
                mediaFolder = mediaFolderService.Get(mediaFolderId.Value);
            }

            var isNew = mediaFolder == null;

            if (isNew)
            {
                mediaFolder = new MediaFolder()
                {
                    Id             = 0,
                    MediaAccountId = hfMediaAccountId.ValueAsInt()
                };
                mediaFolderService.Add(mediaFolder);
            }

            mediaFolder.Name        = tbName.Text;
            mediaFolder.Description = tbDescription.Text;
            mediaFolder.IsContentChannelSyncEnabled = swEnableContentChannelSync.Checked;
            mediaFolder.WorkflowTypeId = wtpWorkflowType.SelectedValueAsId();

            if (swEnableContentChannelSync.Checked)
            {
                var contentChannelId = ContentChannelCache.GetId(ddlContentChannel.SelectedValue.AsGuid());
                if (contentChannelId.HasValue)
                {
                    mediaFolder.ContentChannelId = contentChannelId.Value;
                }

                mediaFolder.ContentChannelAttributeId = ddlChannelAttribute.SelectedValueAsInt();
                mediaFolder.ContentChannelItemStatus  = rrbContentChannelItemStatus.SelectedValueAsEnum <ContentChannelItemStatus>();
            }
            else
            {
                mediaFolder.ContentChannelId          = null;
                mediaFolder.ContentChannelAttributeId = null;
                mediaFolder.ContentChannelItemStatus  = null;
            }

            rockContext.SaveChanges();

            var pageReference = RockPage.PageReference;

            pageReference.Parameters.AddOrReplace(PageParameterKey.MediaFolderId, mediaFolder.Id.ToString());
            Response.Redirect(pageReference.BuildUrl(), false);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handles the DeleteClick event of the gFolderList control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="Rock.Web.UI.Controls.RowEventArgs"/> instance containing the event data.</param>
        protected void gFolderList_DeleteClick(object sender, Rock.Web.UI.Controls.RowEventArgs e)
        {
            var rockContext        = new RockContext();
            var mediaFolderService = new MediaFolderService(rockContext);
            var mediaFolder        = mediaFolderService.Get(e.RowKeyId);

            if (mediaFolder != null)
            {
                string errorMessage;
                if (!mediaFolderService.CanDelete(mediaFolder, out errorMessage))
                {
                    mdGridWarning.Show(errorMessage, ModalAlertType.Information);
                    return;
                }

                mediaFolderService.Delete(mediaFolder);
                rockContext.SaveChanges();
            }

            BindGrid();
        }
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="mediaFolderId">The media folder identifier.</param>
        /// <param name="mediaAccountId">The media account identifier.</param>
        private void ShowDetail(int mediaFolderId, int?mediaAccountId)
        {
            var         rockContext        = new RockContext();
            var         mediaFolderService = new MediaFolderService(rockContext);
            MediaFolder mediaFolder        = null;

            if (!mediaAccountId.Equals(0))
            {
                mediaFolder = mediaFolderService.Get(mediaFolderId);
            }

            if (mediaFolder == null)
            {
                MediaAccount mediaAccount = null;
                if (mediaAccountId.HasValue)
                {
                    mediaAccount = new MediaAccountService(rockContext).Get(mediaAccountId.Value);
                }

                if (mediaAccount != null)
                {
                    mediaFolder = new MediaFolder {
                        Id = 0, MediaAccountId = mediaAccount.Id
                    };
                }
                else
                {
                    pnlView.Visible = false;
                    return;
                }
            }

            hfId.SetValue(mediaFolder.Id);
            hfMediaAccountId.SetValue(mediaFolder.MediaAccountId);
            pnlView.Visible = true;

            bool readOnly = false;

            nbEditModeMessage.Text = string.Empty;
            if (!IsUserAuthorized(Authorization.EDIT))
            {
                readOnly = true;
                nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed(MediaFolder.FriendlyTypeName);
            }

            if (readOnly)
            {
                btnEdit.Visible = false;
                btnSyncContentChannelItems.Visible = false;

                ShowReadonlyDetails(mediaFolder);
            }
            else
            {
                btnEdit.Visible = true;

                if (mediaFolder.Id > 0)
                {
                    btnSyncContentChannelItems.Visible = !(mediaFolder.MediaAccount.GetMediaAccountComponent()?.AllowsManualEntry ?? true);
                    ShowReadonlyDetails(mediaFolder);
                }
                else
                {
                    btnSyncContentChannelItems.Visible = false;
                    ShowEditDetails(mediaFolder);
                }
            }
        }