ClrPlus.Scripting.MsBuild.Utility.MsBuildMap.MetadataRoute C# (CSharp) Method

MetadataRoute() static private method

static private MetadataRoute ( this metadataName, string defaultValue = null ) : ToRoute
metadataName this
defaultValue string
return ToRoute
        internal static ToRoute MetadataRoute(this string metadataName, string defaultValue = null)
        {
            return metadataName.MapTo<ProjectItemDefinitionElement>(pide => {
                foreach (var m in pide.Metadata) {
                    var metadata = m;
                    if (metadata.Name == metadataName) {
                        return new Accessor(() => metadata.Value, (v) => metadata.Value = v.ToString());
                    }
                }
                var n = pide.AddMetadata(metadataName, defaultValue ?? "");
                return new Accessor(() => n.Value, (v) => n.Value = v.ToString());
            });
        }