{"action":"created","comment":{"url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/comments/143226986","pull_request_review_id":67712463,"id":143226986,"diff_hunk":"@@ -0,0 +1,198 @@\n+﻿using System;\n+using System.Collections.Generic;\n+using System.Linq;\n+using System.Xml.Linq;\n+using Newtonsoft.Json;\n+using Newtonsoft.Json.Linq;\n+using Umbraco.Core;\n+using Umbraco.Core.Deploy;\n+using Umbraco.Core.Models;\n+using Umbraco.Core.Services;\n+\n+namespace Umbraco.Deploy.Contrib.Connectors.ValueConnectors\n+{\n+    /// <summary>\n+    /// A Deploy connector for the nuPickers property editor, when used with Umbraco content & media.\n+    /// </summary>\n+    public class NuPickersValueConnector : IValueConnector\n+    {\n+        private readonly IEntityService _entityService;\n+\n+        private enum SaveFormat\n+        {\n+            CSV,\n+            JSON,\n+            XML,\n+        }\n+\n+        /// <summary>\n+        /// Initializes a new instance of the <see cref=\"NuPickersValueConnector\"/> class.\n+        /// </summary>\n+        /// <param name=\"entityService\">An <see cref=\"IEntityService\"/> implementation.</param>\n+        public NuPickersValueConnector(IEntityService entityService)\n+        {\n+            _entityService = entityService ?? throw new ArgumentNullException(nameof(entityService));\n+        }\n+\n+        public IEnumerable<string> PropertyEditorAliases => Enumerable.Empty<string>();\n+\n+        /// <summary>\n+        /// Gets the deploy property corresponding to a content property.\n+        /// </summary>\n+        /// <param name=\"property\">The content property.</param>\n+        /// <param name=\"dependencies\">The content dependencies.</param>\n+        /// <returns>The deploy property value.</returns>\n+        public string GetValue(Property property, ICollection<ArtifactDependency> dependencies)\n+        {\n+            // get the property value\n+            var value = property.Value as string;","path":"src/Umbraco.Deploy.Contrib.Connectors/ValueConnectors/NuPickersValueConnector.cs","position":48,"original_position":48,"commit_id":"e0b33e0cca03192f48a69a048ced820e1c378bc7","original_commit_id":"4f66afe124fbdb78be25e2bd57f4217e086d6caa","user":{"login":"clausjensen","id":1645360,"avatar_url":"https://avatars0.githubusercontent.com/u/1645360?v=4","gravatar_id":"","url":"https://api.github.com/users/clausjensen","html_url":"https://github.com/clausjensen","followers_url":"https://api.github.com/users/clausjensen/followers","following_url":"https://api.github.com/users/clausjensen/following{/other_user}","gists_url":"https://api.github.com/users/clausjensen/gists{/gist_id}","starred_url":"https://api.github.com/users/clausjensen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clausjensen/subscriptions","organizations_url":"https://api.github.com/users/clausjensen/orgs","repos_url":"https://api.github.com/users/clausjensen/repos","events_url":"https://api.github.com/users/clausjensen/events{/privacy}","received_events_url":"https://api.github.com/users/clausjensen/received_events","type":"User","site_admin":false},"body":"Ahhh yep you're right - it does! 😄\r\nI don't know what makes best sense?... if something is put into this method and isn't a string .. is it okay to just return an empty value (which I guess is what would happen with this logic) ? - or would that be something really incorrect that has happened in this case, so we should throw an exception?","created_at":"2017-10-06T15:52:19Z","updated_at":"2017-10-06T15:53:18Z","html_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12#discussion_r143226986","pull_request_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/comments/143226986"},"html":{"href":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12#discussion_r143226986"},"pull_request":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12"}},"in_reply_to_id":143118626},"pull_request":{"url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12","id":141656074,"html_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12","diff_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12.diff","patch_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12.patch","issue_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/12","number":12,"state":"open","locked":false,"title":"nuPickers ValueConnector","user":{"login":"leekelleher","id":209066,"avatar_url":"https://avatars0.githubusercontent.com/u/209066?v=4","gravatar_id":"","url":"https://api.github.com/users/leekelleher","html_url":"https://github.com/leekelleher","followers_url":"https://api.github.com/users/leekelleher/followers","following_url":"https://api.github.com/users/leekelleher/following{/other_user}","gists_url":"https://api.github.com/users/leekelleher/gists{/gist_id}","starred_url":"https://api.github.com/users/leekelleher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leekelleher/subscriptions","organizations_url":"https://api.github.com/users/leekelleher/orgs","repos_url":"https://api.github.com/users/leekelleher/repos","events_url":"https://api.github.com/users/leekelleher/events{/privacy}","received_events_url":"https://api.github.com/users/leekelleher/received_events","type":"User","site_admin":false},"body":"Adds a value-connector for nuPickers.\r\n\r\nThe reason being is that nuPickers is flexible with the data it can handle, it is not limited to content or media nodes.\r\n\r\nWhen associating nuPickers with the `GenericNodeIdPickerValueConnector` (in \"Deploy.Settings.config\"), this would strip out any non-node ID values.  Meaning that if nuPickers is being used to store \"just string\" values, those wouldn't be transferred to the target environment.\r\n\r\nThis custom value-connector will keep any non-node ID values intact, so they are transferred.\r\n\r\n","created_at":"2017-09-18T17:09:08Z","updated_at":"2017-10-06T15:53:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8b236e075012d6bd31d24844dfacd4fff786eebf","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12/commits","review_comments_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12/comments","review_comment_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/comments{/number}","comments_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/12/comments","statuses_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/statuses/e0b33e0cca03192f48a69a048ced820e1c378bc7","head":{"label":"UmbrellaInc:feature/nupickers-connector","ref":"feature/nupickers-connector","sha":"e0b33e0cca03192f48a69a048ced820e1c378bc7","user":{"login":"UmbrellaInc","id":2581195,"avatar_url":"https://avatars0.githubusercontent.com/u/2581195?v=4","gravatar_id":"","url":"https://api.github.com/users/UmbrellaInc","html_url":"https://github.com/UmbrellaInc","followers_url":"https://api.github.com/users/UmbrellaInc/followers","following_url":"https://api.github.com/users/UmbrellaInc/following{/other_user}","gists_url":"https://api.github.com/users/UmbrellaInc/gists{/gist_id}","starred_url":"https://api.github.com/users/UmbrellaInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/UmbrellaInc/subscriptions","organizations_url":"https://api.github.com/users/UmbrellaInc/orgs","repos_url":"https://api.github.com/users/UmbrellaInc/repos","events_url":"https://api.github.com/users/UmbrellaInc/events{/privacy}","received_events_url":"https://api.github.com/users/UmbrellaInc/received_events","type":"Organization","site_admin":false},"repo":{"id":103924784,"name":"umbraco-deploy-contrib","full_name":"UmbrellaInc/umbraco-deploy-contrib","owner":{"login":"UmbrellaInc","id":2581195,"avatar_url":"https://avatars0.githubusercontent.com/u/2581195?v=4","gravatar_id":"","url":"https://api.github.com/users/UmbrellaInc","html_url":"https://github.com/UmbrellaInc","followers_url":"https://api.github.com/users/UmbrellaInc/followers","following_url":"https://api.github.com/users/UmbrellaInc/following{/other_user}","gists_url":"https://api.github.com/users/UmbrellaInc/gists{/gist_id}","starred_url":"https://api.github.com/users/UmbrellaInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/UmbrellaInc/subscriptions","organizations_url":"https://api.github.com/users/UmbrellaInc/orgs","repos_url":"https://api.github.com/users/UmbrellaInc/repos","events_url":"https://api.github.com/users/UmbrellaInc/events{/privacy}","received_events_url":"https://api.github.com/users/UmbrellaInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/UmbrellaInc/umbraco-deploy-contrib","description":null,"fork":true,"url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib","forks_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/forks","keys_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/teams","hooks_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/hooks","issue_events_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/issues/events{/number}","events_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/events","assignees_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/assignees{/user}","branches_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/branches{/branch}","tags_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/tags","blobs_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/git/refs{/sha}","trees_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/statuses/{sha}","languages_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/languages","stargazers_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/stargazers","contributors_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/contributors","subscribers_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/subscribers","subscription_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/subscription","commits_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/commits{/sha}","git_commits_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/git/commits{/sha}","comments_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/comments{/number}","issue_comment_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/issues/comments{/number}","contents_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/contents/{+path}","compare_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/merges","archive_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/downloads","issues_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/issues{/number}","pulls_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/pulls{/number}","milestones_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/milestones{/number}","notifications_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/labels{/name}","releases_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/releases{/id}","deployments_url":"https://api.github.com/repos/UmbrellaInc/umbraco-deploy-contrib/deployments","created_at":"2017-09-18T10:23:08Z","updated_at":"2017-09-18T10:25:25Z","pushed_at":"2017-10-06T10:43:45Z","git_url":"git://github.com/UmbrellaInc/umbraco-deploy-contrib.git","ssh_url":"git@github.com:UmbrellaInc/umbraco-deploy-contrib.git","clone_url":"https://github.com/UmbrellaInc/umbraco-deploy-contrib.git","svn_url":"https://github.com/UmbrellaInc/umbraco-deploy-contrib","homepage":null,"size":3126,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"umbraco:dev","ref":"dev","sha":"645f7c24753070fb4463d715a0b51c3dd110eaa7","user":{"login":"umbraco","id":1419552,"avatar_url":"https://avatars1.githubusercontent.com/u/1419552?v=4","gravatar_id":"","url":"https://api.github.com/users/umbraco","html_url":"https://github.com/umbraco","followers_url":"https://api.github.com/users/umbraco/followers","following_url":"https://api.github.com/users/umbraco/following{/other_user}","gists_url":"https://api.github.com/users/umbraco/gists{/gist_id}","starred_url":"https://api.github.com/users/umbraco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/umbraco/subscriptions","organizations_url":"https://api.github.com/users/umbraco/orgs","repos_url":"https://api.github.com/users/umbraco/repos","events_url":"https://api.github.com/users/umbraco/events{/privacy}","received_events_url":"https://api.github.com/users/umbraco/received_events","type":"Organization","site_admin":false},"repo":{"id":92815266,"name":"Umbraco.Deploy.Contrib","full_name":"umbraco/Umbraco.Deploy.Contrib","owner":{"login":"umbraco","id":1419552,"avatar_url":"https://avatars1.githubusercontent.com/u/1419552?v=4","gravatar_id":"","url":"https://api.github.com/users/umbraco","html_url":"https://github.com/umbraco","followers_url":"https://api.github.com/users/umbraco/followers","following_url":"https://api.github.com/users/umbraco/following{/other_user}","gists_url":"https://api.github.com/users/umbraco/gists{/gist_id}","starred_url":"https://api.github.com/users/umbraco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/umbraco/subscriptions","organizations_url":"https://api.github.com/users/umbraco/orgs","repos_url":"https://api.github.com/users/umbraco/repos","events_url":"https://api.github.com/users/umbraco/events{/privacy}","received_events_url":"https://api.github.com/users/umbraco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib","description":null,"fork":false,"url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib","forks_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/forks","keys_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/teams","hooks_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/hooks","issue_events_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/events{/number}","events_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/events","assignees_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/assignees{/user}","branches_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/branches{/branch}","tags_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/tags","blobs_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/git/refs{/sha}","trees_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/statuses/{sha}","languages_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/languages","stargazers_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/stargazers","contributors_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/contributors","subscribers_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/subscribers","subscription_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/subscription","commits_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/commits{/sha}","git_commits_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/git/commits{/sha}","comments_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/comments{/number}","issue_comment_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/comments{/number}","contents_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/contents/{+path}","compare_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/merges","archive_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/downloads","issues_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues{/number}","pulls_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls{/number}","milestones_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/milestones{/number}","notifications_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/labels{/name}","releases_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/releases{/id}","deployments_url":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/deployments","created_at":"2017-05-30T09:03:33Z","updated_at":"2017-09-18T11:43:14Z","pushed_at":"2017-10-06T10:43:46Z","git_url":"git://github.com/umbraco/Umbraco.Deploy.Contrib.git","ssh_url":"git@github.com:umbraco/Umbraco.Deploy.Contrib.git","clone_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib.git","svn_url":"https://github.com/umbraco/Umbraco.Deploy.Contrib","homepage":null,"size":3120,"stargazers_count":2,"watchers_count":2,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":2,"forks":5,"open_issues":2,"watchers":2,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12"},"html":{"href":"https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/12"},"issue":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/12"},"comments":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/umbraco/Umbraco.Deploy.Contrib/statuses/e0b33e0cca03192f48a69a048ced820e1c378bc7"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"clausjensen"}}