public static DialogResult Run(BaseLibraryLink link, LinkSettingsType settingsType) { var dilogResult = DialogResult.Cancel; link.PerformTransaction(link.ParentLibrary.Context, linkCopy => { var editForm = ObjectIntendHelper.GetObjectInstances(typeof(ILinkSettingsEditForm), null, linkCopy) .OfType<ILinkSettingsEditForm>() .FirstOrDefault(form => form.EditableSettings.Any(st => st == settingsType)); if (editForm != null) { editForm.InitForm<ILinkSettingsEditControl>(settingsType); dilogResult = ((Form)editForm).ShowDialog(MainController.Instance.MainForm); ((Form)editForm).Dispose(); if (dilogResult == DialogResult.OK) linkCopy.MarkAsModified(); return dilogResult == DialogResult.OK; } return dilogResult == DialogResult.Cancel; }, copyMethod => MainController.Instance.ProcessManager.Run("Preparing Data...", cancelationToken => copyMethod()), (context, original, current) => MainController.Instance.ProcessManager.Run("Saving Changes...", cancelationToken => { original.Save(context, current, false); })); return dilogResult; }
private void ProcessLinkOptions(LinkSettingsType settingsType) { var selectedFiles = advBandedGridView .GetSelectedRows() .Select(i => advBandedGridView.GetRow(i)) .OfType<LibraryFileLink>() .ToList(); var targetFile = selectedFiles.Any() ? selectedFiles.FirstOrDefault() : advBandedGridView.GetFocusedRow() as LibraryFileLink; if (targetFile == null) return; SettingsEditorFactory.RunEmbedded(targetFile, _data, settingsType); }
public static DialogResult Run(IList<BaseLibraryLink> links, LinkSettingsType settingsType, bool useTransaktion = true) { var dilogResult = DialogResult.Cancel; if (!links.Any()) return dilogResult; if (useTransaktion) links.PerformTransaction(links.First().ParentLibrary.Context, copiedLinks => { var editForm = ObjectIntendHelper.GetObjectInstances(typeof(ILinkSetSettingsEditForm), null, copiedLinks) .OfType<ILinkSettingsEditForm>() .FirstOrDefault(form => form.EditableSettings.Any(st => st == settingsType)); if (editForm != null) { editForm.InitForm<ILinkSetSettingsEditControl>(settingsType); dilogResult = ((Form)editForm).ShowDialog(MainController.Instance.MainForm); ((Form)editForm).Dispose(); if (dilogResult == DialogResult.OK) foreach (var copiedLink in copiedLinks) copiedLink.MarkAsModified(); return dilogResult == DialogResult.OK; } return dilogResult == DialogResult.Cancel; }, copyMethod => MainController.Instance.ProcessManager.Run("Preparing Data...", cancelationToken => copyMethod()), (context, originalList, currentList) => MainController.Instance.ProcessManager.Run("Saving Changes...", cancelationToken => { foreach (var originalLink in originalList) { var currentLink = currentList.First(e => e.Id == originalLink.Id); originalLink.Save(context, currentLink, false); } })); else { var editForm = ObjectIntendHelper.GetObjectInstances(typeof(ILinkSetSettingsEditForm), null, links) .OfType<ILinkSettingsEditForm>() .FirstOrDefault(form => form.EditableSettings.Any(st => st == settingsType)); if (editForm != null) { editForm.InitForm<ILinkSetSettingsEditControl>(settingsType); dilogResult = ((Form)editForm).ShowDialog(MainController.Instance.MainForm); ((Form)editForm).Dispose(); if (dilogResult == DialogResult.OK) foreach (var copiedLink in links) copiedLink.MarkAsModified(); } } return dilogResult; }
private ILinkSettingBuilder <TResource> AddLinkSetting(LinkSettingsType type, string name, string urlTemplate) { Ensure.IsSet(urlTemplate, $"Url template must be set for the '{type.ToString()}' link with name '{name}' for resource '{typeof(TResource).Name}'"); if (!urlTemplate.IsValidTemplateUrl()) { throw new JsonCrafterException($"The entered url '{urlTemplate}' (for template with name '{name}') is not a valid url."); } var link = new LinkSettingBuilder <TResource>(_parent, this, type, name, urlTemplate); Settings.Add(link); return(link); }
public void ProcessUniverslaLinkSettings( LinkSettingsType settingsType, LibraryFileLink templateLink, bool useUniversalSettings) { if (!useUniversalSettings) { SettingsTemplates.RemoveAll(st => st.SettingsType == settingsType && st.FileType == templateLink.Type); return; } if (!SettingsTemplates.Any(st => st.SettingsType == settingsType && st.FileType == templateLink.Type)) SettingsTemplates.Add(LinkFileSettingsTemplate.Create(settingsType, templateLink.Type)); foreach (var targetLink in ParentFolder.AllLinks.Where(l => l.Type == templateLink.Type && l != templateLink).ToList()) ApplyUniversalLinkSettings(settingsType, targetLink, templateLink); }
public void InitForm(LinkSettingsType settingsType) { Width = 680; Height = 400; Text = _sourceLink.ToString(); StartPosition = FormStartPosition.CenterScreen; var folderSettings = (LibraryFolderLinkSettings)_parentFolderLink.Settings; checkEditApplyForAll.Checked = folderSettings.SettingsTemplates .Any(st => st.SettingsType == settingsType && st.FileType == _sourceLink.Type); AddOptionPages( ObjectIntendHelper.GetObjectInstances( typeof(ILinkSettingsEditControl), EntitySettingsResolver.ExtractObjectTypeFromProxy(_sourceLink.GetType()), _sourceLink) .OfType<ILinkSettingsEditControl>() .Where(lp => lp.SettingsType == settingsType && lp.AvailableForEmbedded) .OrderBy(lp => lp.Order)); }
private void ApplyUniversalLinkSettings( LinkSettingsType settingsType, LibraryFileLink targetLink, LibraryFileLink templateLink) { switch (settingsType) { case LinkSettingsType.Tags: targetLink.Tags = null; targetLink.TagsEncoded = templateLink.Tags.Serialize(); break; case LinkSettingsType.Security: targetLink.Security = null; targetLink.SettingsEncoded = templateLink.Security.Serialize(); break; default: targetLink.Settings = null; targetLink.SettingsEncoded = templateLink.Settings.Serialize(); break; } targetLink.MarkAsModified(); }
public static DialogResult RunEmbedded(LibraryFileLink link, LibraryFolderLink parentLink, LinkSettingsType settingsType) { var dilogResult = DialogResult.Cancel; link.PerformTransaction(link.ParentLibrary.Context, linkCopy => { using (var editForm = new FormEditLinkSettingsEmbedded(linkCopy, parentLink)) { editForm.InitForm(settingsType); dilogResult = editForm.ShowDialog(); if (dilogResult == DialogResult.OK) linkCopy.MarkAsModified(); return dilogResult == DialogResult.OK; } }, copyMethod => MainController.Instance.ProcessManager.Run("Preparing Data...", cancelationToken => copyMethod()), (context, original, current) => MainController.Instance.ProcessManager.Run("Saving Changes...", cancelationToken => { current.BeforeSave(); original.ApplyValues(current); })); return dilogResult; }
public LinkSettingBuilder(IConfigurationBuilder parentConfigBuilder, IResourceBuilder <TResource> parentResourceBuilder, LinkSettingsType linkType, string name, string url) : base(parentConfigBuilder, parentResourceBuilder) { _url = Ensure.IsSet(url); LinkType = linkType; _name = name ?? string.Empty; }
public void EditLinkSettings(IList<BaseLibraryLink> links, LinkSettingsType settingsType) { var result = links.Count == 1 ? SettingsEditorFactory.Run(links.First(), settingsType) : SettingsEditorFactory.Run(links, settingsType, false); if (result != DialogResult.OK) return; grFiles.SuspendLayout(); _outsideChangesInProgress = true; foreach (var linkRow in grFiles.Rows.OfType<LinkRow>()) linkRow.Info.Recalc(); _outsideChangesInProgress = false; UpdateGridSize(); grFiles.ResumeLayout(true); grFiles.Refresh(); DataChanged?.Invoke(this, EventArgs.Empty); }
public void EditLinkSettings(LinkSettingsType settingsType) { var selectedRow = SelectedLinkRow; if (selectedRow == null) return; EditLinkSettings(new[] { selectedRow.Source }, settingsType); }