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);
                }
            }
        }
Beispiel #3
0
        protected void Page_Init(object sender, EventArgs e)
        {
            if (Items == null)
            {
                Items = MediaTypesMapper.GetDataModel().MediaTypes.OrderBy(i => i.Name).ToList();
            }

            Bind();
        }