protected void LanguageToggleLinks_ItemDataBound(object sender, ListViewItemEventArgs e) { if (e.Item.DataItem == null) { return; } var language = (FrameworkLibrary.Language)e.Item.DataItem; var languageLink = (HyperLink)e.Item.FindControl("LanguageLink"); languageLink.Text = language.Name; if (BasePage.CurrentMediaDetail.Language.CultureCode == language.CultureCode) { languageLink.CssClass = "current"; } var item = MediaDetailsMapper.GetByMedia(BasePage.CurrentMedia, language); if (item == null) { e.Item.Visible = false; return; } languageLink.NavigateUrl = URIHelper.ConvertToAbsUrl(item.AutoCalculatedVirtualPath); }
private void Bind() { if (selectedItem == null) { return; } var details = new List <IMediaDetail>(); var medias = MediasMapper.GetByTag(selectedItem); foreach (Media media in medias) { IMediaDetail detail = MediaDetailsMapper.GetByMedia(media, AdminBasePage.CurrentLanguage); if (detail != null) { details.Add(detail); } } this.ItemList.DataSource = details; this.ItemList.DataBind(); }
public void LoadByMedia(Media media) { currentMedia = media; currentMediaDetail = MediaDetailsMapper.GetByMedia(media, CurrentLanguage); }
protected void Page_Init(object sender, EventArgs e) { long id; long parentId; long.TryParse(Request["historyVersion"], out historyVersion); long.TryParse(Request["mediaTypeId"], out mediaTypeId); if (long.TryParse(Request["selectedMediaId"], out id)) { selectedMediaItem = MediasMapper.GetByID(id); SelectedMedia = selectedMediaItem; if (selectedMediaItem != null) { selectedItem = MediaDetailsMapper.GetByMedia(selectedMediaItem, CurrentLanguage); if (historyVersion > 0) { selectedItem = BaseMapper.GetObjectFromContext((MediaDetail)selectedItem); historyVersionItem = BaseMapper.GetObjectFromContext((MediaDetail)MediaDetailsMapper.GetByMedia(selectedMediaItem, CurrentLanguage, historyVersion)); } if ((selectedItem != null) && (historyVersionItem != null)) { tmpSelectedItem = BaseMapper.GetObjectFromContext((MediaDetail)selectedItem); selectedItem = historyVersionItem; } } } if (long.TryParse(Request["parentMediaId"], out parentId)) { parentMediaItem = MediasMapper.GetByID(parentId); } if (selectedItem == null) { if (parentMediaItem != null) { SelectedMedia = parentMediaItem; } /*if (parentMediaItem == null) * return;*/ selectedItem = MediaDetailsMapper.CreateObject(mediaTypeId, selectedMediaItem, parentMediaItem); } Return canAccessReturnObj = BaseMapper.GenerateReturn(); if (selectedItem.ID != 0) { canAccessReturnObj = MediaDetailsMapper.CanAccessMediaDetail(selectedItem, CurrentUser); if (canAccessReturnObj.IsError) { DisplayErrorMessage("Cannot edit item", canAccessReturnObj.Error); CanAccessItem = canAccessReturnObj; return; } else { KeyValuePair <IMediaDetail, User> checkedOutItem = IsCheckedOut(selectedItem); if (checkedOutItem.Key == null) { CheckOut(selectedItem); } else { if (checkedOutItem.Value.ID != CurrentUser.ID) { Return returnObj = BaseMapper.GenerateReturn("Cannot edit item", "The item has been checked out by user: ( " + checkedOutItem.Value.UserName + " )"); CanAccessItem = returnObj; DisplayErrorMessage("Error", returnObj.Error); return; } } } } SelectedMediaDetail = selectedItem; SelectedMedia = selectedMediaItem; if (selectedMediaItem == null) { SelectedMedia = parentMediaItem; } if (selectedItem.ID == 0) { Save.Text = "Create"; SaveAndPublish.Text = "Create And Publish"; LoadLatestDraft.Visible = false; CreateDraft.Visible = false; var mediaType = MediaTypesMapper.GetByID(selectedItem.MediaTypeID); if (mediaType == null) { return; } selectedItem.MainLayout = mediaType.MainLayout; selectedItem.SummaryLayout = mediaType.SummaryLayout; selectedItem.FeaturedLayout = mediaType.FeaturedLayout; selectedItem.UseMediaTypeLayouts = mediaType.UseMediaTypeLayouts; var liveMediaDetail = selectedItem.Media?.GetLiveMediaDetail(); if (liveMediaDetail != null) { selectedItem.CopyFrom(liveMediaDetail); var fieldsNotInMediaType = liveMediaDetail.Fields.Where(i => i.MediaTypeFieldID == null); if (fieldsNotInMediaType != null) { foreach (var field in fieldsNotInMediaType) { var newField = new MediaDetailField(); newField.CopyFrom(field); if (field.FieldAssociations.Count > 0) { newField.FieldValue = ""; } else { newField.FieldValue = field.FieldValue; } newField.DateCreated = DateTime.Now; newField.DateLastModified = DateTime.Now; selectedItem.Fields.Add(newField); } } var fieldsThatCanBeCopied = liveMediaDetail.Fields.Where(i => !i.FieldAssociations.Any()); foreach (var field in fieldsThatCanBeCopied) { var foundField = selectedItem.Fields.FirstOrDefault(i => i.FieldCode == field.FieldCode); if (foundField != null) { foundField.CopyFrom(field); } } } } else { Save.Text = "Save Page"; SaveAndPublish.Text = "Save And Publish"; } if ((historyVersion > 0) && (historyVersionItem != null) && (!historyVersionItem.IsDraft)) { //SavePanel.Visible = false; } else { var draftItems = selectedItem.History.Where(i => i.IsDraft); if (draftItems.Count() > 0) { LoadLatestDraft.Visible = true; CreateDraft.Visible = false; } SaveAndPublish.Visible = true; SavePanel.Visible = true; HistoryPanel.Visible = false; } if (historyVersion > 0) { SavePanel.Visible = true; if (!selectedItem.IsDraft) { Save.Visible = false; } CreateDraft.Visible = false; PublishNow.Visible = false; PublishLive.Visible = true; HistoryPanel.Visible = true; HistoryVersionNumber.Text = historyVersion.ToString(); } if (CurrentUser.IsInRole(RoleEnum.Developer)) { EditMediaType.NavigateUrl = "~/Admin/Views/PageHandlers/MediaTypes/Detail.aspx?id=" + SelectedMediaDetail.MediaTypeID; EditMediaType.Visible = true; } Panel.SetObject(SelectedMediaDetail); if (Request.QueryString["masterFilePath"] != null) { PreviewPanel.Visible = false; RemovePreviewPanelScript.Visible = true; } else { PreviewPanel.Visible = true; RemovePreviewPanelScript.Visible = false; } UpdateSectionTitles(); }