public void SetObject(IMediaDetail selectedItem) { this.selectedItem = selectedItem; if (selectedItem.ID != 0) { var allMediaTypes = MediaTypesMapper.GetDataModel().MediaTypes.Where(i => i.IsActive); var allowedMediaTypes = new List <MediaType>(); foreach (var mediaType in allMediaTypes) { MediaTypeEnum mediaTypeEnum = MediaTypeEnum.Page; Enum.TryParse(mediaType.Name, out mediaTypeEnum); var tmpMediaDetail = MediaDetailsMapper.CreateObject(mediaTypeEnum); if (tmpMediaDetail.GetType() == selectedItem.GetType()) { allowedMediaTypes.Add(mediaType); } } MediaTypes.DataSource = allowedMediaTypes; MediaTypes.DataTextField = "Name"; MediaTypes.DataValueField = "ID"; MediaTypes.DataBind(); } //UpdateFieldsFromObject(); }
protected void MediaTypeChange_Click(object sender, System.EventArgs e) { var mewMediaTypeId = long.Parse(MediaTypes.SelectedValue); var newMediaType = MediaTypesMapper.GetDataModel().MediaTypes.FirstOrDefault(i => i.ID == mewMediaTypeId); if ((newMediaType != null) && (newMediaType.ID != selectedItem.MediaType.ID)) { selectedItem.MediaTypeID = newMediaType.ID; selectedItem.ShowInMenu = newMediaType.ShowInMenu; selectedItem.ShowInSearchResults = newMediaType.ShowInSearchResults; foreach (var mediaTypeField in newMediaType.Fields) { var foundField = selectedItem.Fields.SingleOrDefault(i => i.FieldCode == mediaTypeField.FieldCode); if (foundField != null) { foundField.MediaTypeField = mediaTypeField; continue; } var newField = new MediaDetailField(); newField.CopyFrom(mediaTypeField); newField.UseMediaTypeFieldFrontEndLayout = true; newField.DateCreated = DateTime.Now; newField.DateLastModified = DateTime.Now; selectedItem.Fields.Add(newField); } if (selectedItem.UseMediaTypeLayouts) { selectedItem.MainLayout = newMediaType.MainLayout; selectedItem.FeaturedLayout = newMediaType.FeaturedLayout; selectedItem.SummaryLayout = newMediaType.SummaryLayout; } foreach (var field in selectedItem.Fields) { if (field.MediaTypeField != null && field.MediaTypeField.MediaType != newMediaType) { field.MediaTypeField = null; } } var returnObj = MediaDetailsMapper.Update(selectedItem); if (returnObj.IsError) { BasePage.DisplayErrorMessage("Error", returnObj.Error); } else { var url = AdminBasePage.GetAdminUrl(selectedItem.MediaTypeID, selectedItem.MediaID); Response.Redirect(url); } } }
protected void Page_Init(object sender, EventArgs e) { if (Items == null) { Items = MediaTypesMapper.GetDataModel().MediaTypes.OrderBy(i => i.Name).ToList(); } Bind(); }