Esempio n. 1
0
        private static bool ValidateSingleMetaEntry(MetaDataModel.Entry entry, string value, IWorkspaceItem item, out string defaultMessage)
        {
            switch (entry.Type)
            {
            case MetaDataType.None:
                defaultMessage = $"Entry {value} does not match regex {entry.Regex?.ToString()}";
                return(entry.Regex == null || entry.Regex.IsMatch(value));

            case MetaDataType.Boolean:
                defaultMessage = "Entry has to be a boolean (true/false)";
                return(bool.TryParse(value, out _));

            case MetaDataType.File:
                defaultMessage = $"The file '{value}' does not exist in the workspace";
                return(SearchForFile(item.Workspace.Item, value));

            case MetaDataType.Float:
                defaultMessage = $"Could not parse '{value}' as a floating point number";
                return(double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out _));

            case MetaDataType.Integer:
                defaultMessage = $"Could not parse '{value}' as an integer";
                return(int.TryParse(value, out _));

            case MetaDataType.Locale:
                defaultMessage = $"Could not parse '{value}' as a locale (e.g en-US)";
                return(LocaleRegex.IsMatch(value));
            }
            defaultMessage = "";
            return(false);
        }
Esempio n. 2
0
        private static bool ValidateEntry(MetaDataModel.Entry entry, MetaDataEntry doc, IWorkspaceItem item, out string defaultMessage)
        {
            const string DONT_SHOW = "DONT SHOW";

            if (entry.IsArray)
            {
                if (doc.Value == null)
                {
                    foreach (var value in doc.Entries)
                    {
                        if (!ValidateSingleMetaEntry(entry, value.Value, item, out defaultMessage))
                        {
                            return(false);
                        }
                    }
                    defaultMessage = DONT_SHOW;
                    return(true);
                }
                else
                {
                    defaultMessage = DONT_SHOW;
                    return(false);
                }
            }
            else if (doc.Value == null)
            {
                defaultMessage = "Entry has to contain a value";
                return(false);
            }
            else
            {
                return(ValidateSingleMetaEntry(entry, doc.Value, item, out defaultMessage));
            }
        }
Esempio n. 3
0
 public MarkdownMetaCompletionData(MetaDataModel.Entry metaDataEntry)
 {
     this.metaDataEntry = metaDataEntry ?? throw new ArgumentNullException(nameof(metaDataEntry));
 }