//public ViewMode Mode { get; set; } protected void AddItem_Click(object sender, EventArgs e) { var field = GetField(); var media = MediasMapper.GetByID(field.MediaDetail.MediaID); var fieldAssociation = new FieldAssociation(); fieldAssociation.MediaDetail = (MediaDetail)PagesMapper.CreateObject(MediaTypeID, MediasMapper.CreateObject(), media); fieldAssociation.MediaDetail.SectionTitle = fieldAssociation.MediaDetail.ShortDescription = fieldAssociation.MediaDetail.MainContent = fieldAssociation.MediaDetail.LinkTitle; fieldAssociation.MediaDetail.PathToFile = "/media/images/icons/File.jpg"; fieldAssociation.MediaDetail.PublishDate = DateTime.Now; fieldAssociation.MediaDetail.CreatedByUserID = fieldAssociation.MediaDetail.LastUpdatedByUserID = FrameworkSettings.CurrentUser.ID; fieldAssociation.MediaDetail.CachedVirtualPath = fieldAssociation.MediaDetail.CalculatedVirtualPath(); fieldAssociation.MediaDetail.LanguageID = AdminBasePage.CurrentLanguage.ID; fieldAssociation.MediaDetail.UseDefaultLanguageLayouts = false; var mediaType = MediaTypesMapper.GetByID(fieldAssociation.MediaDetail.MediaTypeID); if (mediaType != null) { fieldAssociation.MediaDetail.UseMediaTypeLayouts = mediaType.UseMediaTypeLayouts; } field.FieldAssociations.Add(fieldAssociation); var returnObj = BaseMapper.SaveDataModel(); BindValues(); }
protected void UploadFilesNow_Click(object sender, EventArgs e) { try { var field = GetField(); if (IsPostBack && Request.Files.Count > 0 && !hasRun) { hasRun = true; var index = 0; for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (string.IsNullOrEmpty(file.FileName)) { continue; } var fileInfo = (new System.IO.FileInfo(GetFolderPath() + file.FileName)); if (!fileInfo.Directory.Exists) { fileInfo.Directory.Create(); } if (fileInfo.Directory.Exists) { file.SaveAs(fileInfo.FullName); var filePath = URIHelper.ConvertAbsUrlToTilda(URIHelper.ConvertAbsPathToAbsUrl(fileInfo.FullName)).Replace("~", ""); if (!field.FieldAssociations.Any(j => j.MediaDetail.PathToFile == filePath)) { var fieldAssociation = new FieldAssociation(); fieldAssociation.MediaDetail = (MediaDetail)PagesMapper.CreateObject(MediaTypeID, MediasMapper.CreateObject(), AdminBasePage.SelectedMedia); fieldAssociation.MediaDetail.LinkTitle = fieldAssociation.MediaDetail.SectionTitle = fieldAssociation.MediaDetail.ShortDescription = fieldAssociation.MediaDetail.MainContent = fileInfo.Name; fieldAssociation.MediaDetail.PathToFile = filePath; fieldAssociation.MediaDetail.PublishDate = DateTime.Now; fieldAssociation.MediaDetail.CreatedByUser = fieldAssociation.MediaDetail.LastUpdatedByUser = FrameworkSettings.CurrentUser; fieldAssociation.MediaDetail.CachedVirtualPath = fieldAssociation.MediaDetail.CalculatedVirtualPath(); fieldAssociation.MediaDetail.LanguageID = SettingsMapper.GetSettings().DefaultLanguage.ID; field.FieldAssociations.Add(fieldAssociation); index++; var returnObj = BaseMapper.SaveDataModel(); } } } } SetValue(GetValue()); } catch (Exception ex) { } }
public void CopyProperties(IMediaDetail toItem, IMediaDetail fromItem) { foreach (var field in fromItem.Fields) { var newField = new MediaDetailField(); var foundField = toItem.Fields.FirstOrDefault(i => i.FieldCode == field.FieldCode); if (foundField != null) { newField = foundField; } newField.CopyFrom(field); foreach (var fieldAssociation in field.FieldAssociations) { var newFieldAssociation = new FieldAssociation(); newFieldAssociation.CopyFrom(fieldAssociation); var associatedMediaDetail = (MediaDetail)MediaDetailsMapper.GetByID(newFieldAssociation.AssociatedMediaDetailID); if (associatedMediaDetail == null) { continue; } if (!associatedMediaDetail.MediaType.ShowInSiteTree) { newFieldAssociation.MediaDetail = (MediaDetail)MediaDetailsMapper.CreateObject(associatedMediaDetail.MediaType.ID, MediasMapper.CreateObject(), associatedMediaDetail.Media.ParentMedia); newFieldAssociation.MediaDetail.CopyFrom(associatedMediaDetail); newFieldAssociation.MediaDetail.DateCreated = newFieldAssociation.MediaDetail.DateLastModified = DateTime.Now; newFieldAssociation.MediaDetail.CreatedByUser = newFieldAssociation.MediaDetail.LastUpdatedByUser = FrameworkSettings.CurrentUser; CopyProperties(newFieldAssociation.MediaDetail, associatedMediaDetail); } /*if (newFieldAssociation.MediaDetail != null) * { * newFieldAssociation.MediaDetail.HistoryForMediaDetailID = fieldAssociation.AssociatedMediaDetailID; * newFieldAssociation.MediaDetail.HistoryVersionNumber = newFieldAssociation.MediaDetail.HistoryVersionNumber + 1; * }*/ newField.FieldAssociations.Add(newFieldAssociation); } if (newField.ID == 0) { toItem.Fields.Add(newField); } } }
public UsageDialogController(string title, string subjectName, string subjectType, FieldAssociation association) { if (association == null) { throw new ArgumentNullResourceException("association", Resources.General_Given_Parameter_Cannot_Be_Null); } DefaultButtonCaption = "Close"; ImageSource = "../Assets/MainIcon.png"; DialogTitle = title; HeadingCaption = BuildHeadingCaption(subjectName, subjectType, association); DataList = association.UsageDescriptors; }
public IMediaDetail HandleDuplicate(IMediaDetail detail, Media parentMedia, bool duplicateChildren = false, string newName = "", bool autoPublish = true) { var duplicatedItem = MediaDetailsMapper.CreateObject(detail.MediaTypeID, null, parentMedia, false); duplicatedItem.CopyFrom(detail, new List <string> { "MediaID", "Media" }); if (newName != "") { duplicatedItem.Title = duplicatedItem.LinkTitle = newName; } duplicatedItem.CachedVirtualPath = duplicatedItem.CalculatedVirtualPath(); /*if (duplicatedItem.ID == 0) * { * var mediaType = MediaTypesMapper.GetByID(detail.MediaTypeID); * var createdItems = mediaType.MediaDetails.Where(i => !i.IsHistory && i.ParentMediaID == detail.ParentMediaID && i.LanguageID == detail.LanguageID).Select(i => i); * * var newIndex = createdItems.Count() + 1; * * duplicatedItem.LinkTitle = detail.Language.DisplayName + " - " + mediaType.Name + " " + newIndex; * }*/ duplicatedItem.Media.OrderIndex = parentMedia.ChildMedias.Count(i => i.ID != 0); duplicatedItem.PublishDate = duplicatedItem.DateCreated = duplicatedItem.DateLastModified = DateTime.Now; //var fields = detail.Fields.ToList(); foreach (var item in detail.Fields) { var mediaDetailField = new MediaDetailField(); mediaDetailField.CopyFrom(item); if (newName != "" && mediaDetailField.FieldCode == "SectionTitle") { mediaDetailField.FieldValue = newName; } mediaDetailField.DateCreated = mediaDetailField.DateLastModified = DateTime.Now; foreach (var association in item.FieldAssociations) { var fieldAssociation = new FieldAssociation(); fieldAssociation.CopyFrom(association); if (item.AdminControl.Contains("MultiFile")) { var associatedMediaDetail = MediaDetailsMapper.GetByID(fieldAssociation.AssociatedMediaDetailID); fieldAssociation.AssociatedMediaDetailID = 0; fieldAssociation.MediaDetail = (MediaDetail)HandleDuplicate(associatedMediaDetail, associatedMediaDetail.Media.ParentMedia, true); } mediaDetailField.FieldAssociations.Add(fieldAssociation); } duplicatedItem.Fields.Add(mediaDetailField); } if (!autoPublish) { duplicatedItem.PublishDate = null; } var returnObj = MediaDetailsMapper.Insert(duplicatedItem); if (returnObj.IsError) { throw returnObj.Error.Exception; } else { if (duplicateChildren) { var childMediaDetails = detail.ChildMediaDetails; foreach (var childDetail in childMediaDetails) { HandleDuplicate(childDetail, duplicatedItem.Media); } /*foreach (var child in detail.Media.ChildMedias) * { * var mediaDetailsToCopy = child.MediaDetails.Where(i => !i.IsDraft && !i.IsHistory); * * foreach (var childDetail in mediaDetailsToCopy) * { * HandleDuplicate(childDetail, duplicatedItem.Media); * } * }*/ } } return(duplicatedItem); }
public void ShowDialog(string title, string subjectName, string subjectType, FieldAssociation association) { DataContext = new UsageDialogController(title, subjectName, subjectType, association); ShowDialog(); }
public static string BuildHeadingCaption(string subjectName, string subjectType, FieldAssociation association) { if (association == null) { throw new ArgumentNullResourceException("association", Resources.General_Given_Parameter_Cannot_Be_Null); } if (association is ConsumeAssociation) { return string.Format( CultureInfo.CurrentCulture, "The following methods in the {0} {1} consume the {2} {3}:", subjectName, subjectType, association.AssociatedTo.Name, association.AssociatedTo.Modifiers.TypeTextName); } if (association.UsageDescriptors.Any(x => x.Kind == MemberKind.Method)) { return string.Format( CultureInfo.CurrentCulture, "{0} fields in the {1} {2} and other methods that consume the {0} {3}:", association.AssociatedTo.Name, subjectName, subjectType, association.AssociatedTo.Modifiers.TypeTextName); } return string.Format( CultureInfo.CurrentCulture, "{0} fields in the {1} {2}:", association.AssociatedTo.Name, subjectName, subjectType); }
/// <summary> /// Dehydrates a runtime object model <see cref="FieldAssociation"/> to a persistence object. /// </summary> /// <param name="association"> /// The association. /// </param> /// <returns> /// The <see cref="FieldAssociationData"/>. /// </returns> private static FieldAssociationData ConvertAndCache(FieldAssociation association) { if (association == null) { throw new ArgumentNullResourceException("association", Resources.General_Given_Parameter_Cannot_Be_Null); } FieldAssociationData converted; if (association is StaticAssociation) { converted = new StaticAssociationData(); } else if (association is ConsumeAssociation) { converted = new ConsumeAssociationData(); } else { converted = new FieldAssociationData(); } converted.Name = association.Name; VisualisableTypeDataContainer typeData; if (!FieldDataCache.TryGetValue(association.AssociatedTo.Id, out typeData)) { typeData = new VisualisableTypeDataContainer(); FieldDataCache.Add(association.AssociatedTo.Id, typeData); // Stack Overflow potential, be sure to cache converted types to ensure no circular references. typeData.Data = association.AssociatedTo.ExtractPersistentData(); } if (typeData.Data == null) { // Should be free from memory leaks being a private class typeData.DataReady += (s, e) => converted.AssociatedTo = typeData.Data; } converted.AssociatedTo = typeData.Data; converted.UsageCount = association.UsageCount; return converted; }