public override void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var itemUri = validationDescriptor.ItemUri; SetHelp(itemUri); }
public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var item = validationDescriptor.ItemUri.Site.DataService.GetItemFields(validationDescriptor.ItemUri); var document = item.Uri.ToString(); AppHost.Windows.OpenLayoutDesigner(document, item); }
private string ParseItemName([NotNull] ValidationDescriptor validationDescriptor) { var start = validationDescriptor.ItemPath.LastIndexOf("/", StringComparison.Ordinal); if (start < 0) { return(string.Empty); } return(validationDescriptor.ItemPath.Mid(start + 1)); }
private string ParseFileName([NotNull] ValidationDescriptor validationDescriptor) { var start = validationDescriptor.Solution.IndexOf(":", StringComparison.Ordinal); if (start < 0) { return(string.Empty); } return(validationDescriptor.Solution.Mid(start + 1)); }
private void ParseValidationElement([NotNull] XElement element) { Debug.ArgumentNotNull(element, nameof(element)); validations.Clear(); foreach (var item in element.Elements()) { var severity = SeverityLevel.None; var severityText = item.GetAttributeValue("severity").ToLowerInvariant(); switch (severityText) { case "error": severity = SeverityLevel.Error; break; case "warning": severity = SeverityLevel.Warning; break; case "suggestion": severity = SeverityLevel.Suggestion; break; case "hint": severity = SeverityLevel.Hint; break; } var record = new ValidationDescriptor(item.GetAttributeValue("name"), severity, item.GetAttributeValue("category"), item.GetElementValue("title"), item.GetElementValue("problem"), item.GetElementValue("solution")) { ExternalLink = item.GetAttributeValue("link") }; var id = item.GetAttributeValue("item"); if (!string.IsNullOrEmpty(id)) { var parts = id.Split('/'); var databaseUri = new DatabaseUri(ItemUri.Site, new DatabaseName(parts[0])); var itemUri = new ItemUri(databaseUri, new ItemId(Guid.Parse(parts[1]))); var itemVersionUri = new ItemVersionUri(itemUri, new Language(parts[2]), new Data.Version(int.Parse(parts[3]))); record.ItemUri = itemVersionUri; record.ItemPath = item.GetAttributeValue("itempath"); } validations.Add(record); } RenderValidations(); }
public static void LoadType([NotNull] Type type, [NotNull] ValidationAttribute validationAttribute) { Assert.ArgumentNotNull(type, nameof(type)); Assert.ArgumentNotNull(validationAttribute, nameof(validationAttribute)); var i = type.GetInterface(ItemValidationInterfaceName); if (i != null) { var constructor = type.GetConstructor(Type.EmptyTypes); if (constructor == null) { return; } var instance = constructor.Invoke(null) as IItemValidation; if (instance == null) { return; } var itemValidationDescriptor = new ItemValidationDescriptor(validationAttribute, instance); itemValidations.Add(itemValidationDescriptor); return; } i = type.GetInterface(RenderingValidationInterfaceName); if (i != null) { var constructor = type.GetConstructor(Type.EmptyTypes); if (constructor == null) { return; } var instance = constructor.Invoke(null) as IRenderingValidation; if (instance == null) { return; } var renderingValidationDescriptor = new RenderingValidationDescriptor(validationAttribute, instance); renderingValidations.Add(renderingValidationDescriptor); return; } var validationDescriptor = new ValidationDescriptor(validationAttribute, type); validations.Add(validationDescriptor); }
public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var oldFieldType = Parse(validationDescriptor.Problem); var newFieldType = Parse(validationDescriptor.Solution); if (AppHost.MessageBox(string.Format("Are you sure you want to change the field type from \"{0}\" to \"{1}\"?", oldFieldType, newFieldType), "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } ItemModifier.Edit(validationDescriptor.ItemUri, "Type", newFieldType); }
public void Hide(ValidationDescriptor item) { Assert.ArgumentNotNull(item, nameof(item)); var key = item.GetKey(); if (HiddenItems.Contains(key)) { return; } HiddenItems += key; var profileName = GetProfileName(); AppHost.Settings.Set("Validation\\Items\\Hidden", profileName, HiddenItems); }
public ValidationPresenter([NotNull] IValidationViewerSkin skin, [NotNull] ValidationDescriptor item) { Assert.ArgumentNotNull(skin, nameof(skin)); Assert.ArgumentNotNull(item, nameof(item)); InitializeComponent(); Skin = skin; Item = item; Severity = item.Severity; Title = item.Title; Problem = item.Problem; Solution = item.Solution; if (string.IsNullOrEmpty(item.Problem)) { ProblemField.Visibility = Visibility.Collapsed; } if (string.IsNullOrEmpty(item.Solution)) { SolutionField.Visibility = Visibility.Collapsed; } if (string.IsNullOrEmpty(item.ExternalLink)) { ExternalLink.Visibility = Visibility.Collapsed; } if (item.ItemUri != ItemVersionUri.Empty) { ItemPath.Inlines.Add(item.ItemPath); } else { ItemLink.Visibility = Visibility.Collapsed; } var fix = FixManager.GetFix(item); if (fix == null) { FixButton.Visibility = Visibility.Collapsed; } }
public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var itemName = ParseItemName(validationDescriptor); if (AppHost.MessageBox(string.Format("Are you sure you want to delete '{0}'?", itemName), "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation) != MessageBoxResult.OK) { return; } var pipeline = PipelineManager.GetPipeline <DeleteItemPipeline>(); pipeline.ItemUri = validationDescriptor.ItemUri.ItemUri; pipeline.DeleteFiles = false; pipeline.Start(); }
public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var name = Parse(validationDescriptor.Problem); if (AppHost.MessageBox(string.Format(Resources.Delete_Execute_Are_you_sure_you_want_to_delete___0___, name), Resources.Confirmation, MessageBoxButton.OKCancel, MessageBoxImage.Exclamation) != MessageBoxResult.OK) { return; } var pipeline = PipelineManager.GetPipeline <DeleteItemPipeline>(); pipeline.ItemUri = validationDescriptor.ItemUri.ItemUri; pipeline.DeleteFiles = false; pipeline.Start(); }
/// <summary>Determines whether this instance can fix the specified validation.</summary> /// <param name="validationDescriptor">The validation.</param> /// <returns><c>true</c> if this instance can fix the specified validation; otherwise, <c>false</c>.</returns> public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, "validationDescriptor"); if (validationDescriptor.Name != "Control does not have an Example file") { return(false); } if (string.IsNullOrEmpty(validationDescriptor.ItemUri.Site.WebRootPath)) { return(false); } var fileName = this.ParseFileName(validationDescriptor); return(!string.IsNullOrEmpty(fileName)); }
public void Disable(ValidationDescriptor item) { Assert.ArgumentNotNull(item, nameof(item)); var profileName = GetProfileName(); var key = "[" + item.Name + "]"; var inactive = AppHost.Settings.GetString("Validation\\Items\\Profiles", profileName, string.Empty); if (inactive.Contains(key)) { return; } inactive += key; AppHost.Settings.Set("Validation\\Items\\Profiles", profileName, inactive); }
public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var customValidation = CustomValidationManager.CustomValidations.FirstOrDefault(c => c.Title == validationDescriptor.Title); if (customValidation == null) { return(false); } if (string.IsNullOrWhiteSpace(customValidation.Fix)) { return(false); } return(true); }
public void Hide(ValidationDescriptor item) { Assert.ArgumentNotNull(item, nameof(item)); ValidationViewer.Hide(item); var treeViewItem = entries.FirstOrDefault(e => e.Tag == item); if (treeViewItem == null) { return; } var parent = treeViewItem.GetAncestor <TreeViewItem>(); if (parent != null) { parent.Items.Remove(treeViewItem); } treeViewItem = parent; while (treeViewItem != null) { parent = treeViewItem.GetAncestor <TreeViewItem>(); if (treeViewItem.Items.Count == 0) { if (parent != null) { parent.Items.Remove(treeViewItem); } } else { var header = treeViewItem.Header as TreeViewHeader; if (header != null) { header.Count--; } } treeViewItem = parent; } }
public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); var customValidation = CustomValidationManager.CustomValidations.FirstOrDefault(c => c.Title == validationDescriptor.Title); if (customValidation == null) { return; } if (AppHost.MessageBox(string.Format("Are you sure you want to apply the fix?\n\nFix:\n{0}", customValidation.Fix), "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { DataService.HandleExecute(response, result, true); }; validationDescriptor.ItemUri.DatabaseUri.Site.DataService.ExecuteAsync("QueryAnalyzer.Run", completed, validationDescriptor.ItemUri.DatabaseUri.DatabaseName.ToString(), validationDescriptor.ItemUri.ItemId.ToString(), customValidation.Fix, "0"); }
public void Hide(ValidationDescriptor item) { Assert.ArgumentNotNull(item, nameof(item)); ValidationViewer.Hide(item); var control = entries.FirstOrDefault(e => e.Item == item); if (control == null) { return; } entries.Remove(control); var header = control.GetAncestor <CategoryHeader>(); Assert.IsNotNull(header, "header"); header.List.Children.Remove(control); if (header.List.Children.Count == 0) { header.Visibility = Visibility.Collapsed; } else { var text = header.HeaderField.Text; var n = text.LastIndexOf(" (", StringComparison.Ordinal); if (n >= 0) { text = text.Left(n); } text += " (" + header.List.Children.Count + ")"; header.HeaderField.Text = text; } }
private bool IsItemVisible([NotNull] ValidationDescriptor item) { Debug.ArgumentNotNull(item, nameof(item)); if (HiddenItems.Contains(item.GetKey())) { return(false); } if (!string.IsNullOrEmpty(FilterText)) { var filtered = item.Title.IsFilterMatch(FilterText); filtered |= item.Problem.IsFilterMatch(FilterText); filtered |= item.Solution.IsFilterMatch(FilterText); if (!filtered) { return(false); } } return(true); }
/// <summary>Fixes the specified validation.</summary> /// <param name="validationDescriptor">The validation.</param> public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, "validationDescriptor"); var fileName = this.ParseFileName(validationDescriptor); var itemName = this.ParseItemName(validationDescriptor); fileName = Path.Combine(validationDescriptor.ItemUri.Site.WebRootPath, fileName); const string Text = @"@using Sitecore.Mvc.Presentation @using Sitecore.Mvc @using Sitecore.Web.UI.Controls.Common @model RenderingModel <h3>Apperance</h3> <p> {0} is a good control, does what it is supposed to do and clean up after itself. </p> <p> @Html.Sitecore().Controls().{0}(""{0}1"", new {{ Text = ""Hello"" }}) </p> <pre> @Html.Sitecore().Controls().{0}(""{0}1"", new {{ Text = ""Hello"" }}) </pre> "; var contents = string.Format(Text, itemName); var folder = Path.GetDirectoryName(fileName); Directory.CreateDirectory(folder); File.WriteAllText(fileName, contents); AppHost.Files.OpenFile(fileName); }
/// <summary>Fixes the specified validation.</summary> /// <param name="validationDescriptor">The validation.</param> public void Fix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, "validationDescriptor"); var fileName = this.ParseFileName(validationDescriptor); var itemName = this.ParseItemName(validationDescriptor); fileName = Path.Combine(validationDescriptor.ItemUri.Site.WebRootPath, fileName); const string Text = @"(function () {{ ""use strict""; describe(""Given a {0} model"", function () {{ var model = new Sitecore.Definitions.Models.{0}(); describe(""when I create a {0} model"", function() {{ it(""it should have a 'text' property"", function () {{ expect(model.get(""text"")).toBeDefined(); }}); }}); }}); }}()); "; var contents = string.Format(Text, itemName); var folder = Path.GetDirectoryName(fileName); Directory.CreateDirectory(folder); File.WriteAllText(fileName, contents); AppHost.Files.OpenFile(fileName); }
public override bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Parameter must have help text"); }
public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Unused templates"); }
public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Page is missing 'PageCode' rendering"); }
public abstract bool CanFix(ValidationDescriptor validationDescriptor);
public override bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Control help text must end with a dot"); }
public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Deprecated template field type"); }
public abstract void Fix(ValidationDescriptor validationDescriptor);
public static IFix GetFix([NotNull] ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(Fixes.FirstOrDefault(f => f.CanFix(validationDescriptor))); }
public bool CanFix(ValidationDescriptor validationDescriptor) { Assert.ArgumentNotNull(validationDescriptor, nameof(validationDescriptor)); return(validationDescriptor.Name == "Empty PageSettings items can safely be deleted"); }