{"action":"created","issue":{"url":"https://api.github.com/repos/wsu-onering/onering/issues/10","repository_url":"https://api.github.com/repos/wsu-onering/onering","labels_url":"https://api.github.com/repos/wsu-onering/onering/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/wsu-onering/onering/issues/10/comments","events_url":"https://api.github.com/repos/wsu-onering/onering/issues/10/events","html_url":"https://github.com/wsu-onering/onering/pull/10","id":298797846,"number":10,"title":"[123] Implement IPortlet based DB auto setup","user":{"login":"lelandbatey","id":1964720,"avatar_url":"https://avatars0.githubusercontent.com/u/1964720?v=4","gravatar_id":"","url":"https://api.github.com/users/lelandbatey","html_url":"https://github.com/lelandbatey","followers_url":"https://api.github.com/users/lelandbatey/followers","following_url":"https://api.github.com/users/lelandbatey/following{/other_user}","gists_url":"https://api.github.com/users/lelandbatey/gists{/gist_id}","starred_url":"https://api.github.com/users/lelandbatey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lelandbatey/subscriptions","organizations_url":"https://api.github.com/users/lelandbatey/orgs","repos_url":"https://api.github.com/users/lelandbatey/repos","events_url":"https://api.github.com/users/lelandbatey/events{/privacy}","received_events_url":"https://api.github.com/users/lelandbatey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-02-21T00:16:26Z","updated_at":"2018-02-21T02:50:15Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/wsu-onering/onering/pulls/10","html_url":"https://github.com/wsu-onering/onering/pull/10","diff_url":"https://github.com/wsu-onering/onering/pull/10.diff","patch_url":"https://github.com/wsu-onering/onering/pull/10.patch"},"body":"This PR changes how portlets are automatically added to the database. It used to be the case that portlets would check-and-create themselves inside of their constructor. This was pretty non-optimal, as that had to happen for every request. The new way is to implement a kind of \"portlet metadata class\" beside each portlets controller. You can see an implementation of this in the `OneRing/Controllers/Portlets/ToDoController.cs` file, at the bottom, where `ToDoPortlet` is implemented.\r\n\r\nThe actual logic for finding these metadata classes and creating them in the database is handled on application startup within `Startup.cs`, specifically the new method `InitializePortlets`."},"comment":{"url":"https://api.github.com/repos/wsu-onering/onering/issues/comments/367196714","html_url":"https://github.com/wsu-onering/onering/pull/10#issuecomment-367196714","issue_url":"https://api.github.com/repos/wsu-onering/onering/issues/10","id":367196714,"user":{"login":"AlexanderEhlert","id":13974244,"avatar_url":"https://avatars0.githubusercontent.com/u/13974244?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderEhlert","html_url":"https://github.com/AlexanderEhlert","followers_url":"https://api.github.com/users/AlexanderEhlert/followers","following_url":"https://api.github.com/users/AlexanderEhlert/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderEhlert/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderEhlert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderEhlert/subscriptions","organizations_url":"https://api.github.com/users/AlexanderEhlert/orgs","repos_url":"https://api.github.com/users/AlexanderEhlert/repos","events_url":"https://api.github.com/users/AlexanderEhlert/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderEhlert/received_events","type":"User","site_admin":false},"created_at":"2018-02-21T02:50:15Z","updated_at":"2018-02-21T02:50:15Z","author_association":"CONTRIBUTOR","body":"Righto, looks good."}}
{"actor":{"display_login":"AlexanderEhlert"}}