Full Code of CodeHubApp/CodeHub for AI

master 7c7df03cdee9 cached
459 files
28.5 MB
370.0k tokens
1944 symbols
1 requests
Download .txt
Showing preview only (1,640K chars total). Download the full file or copy to clipboard to get everything.
Repository: CodeHubApp/CodeHub
Branch: master
Commit: 7c7df03cdee9
Files: 459
Total size: 28.5 MB

Directory structure:
gitextract_r1oivz_j/

├── .gitignore
├── CodeHub/
│   ├── CodeHub.csproj
│   ├── Octicons.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── WebViews/
│   │   ├── CommentsModel.cs
│   │   ├── CommentsWebView.cs
│   │   ├── CommentsWebView.cshtml
│   │   ├── DiffCommentModel.cs
│   │   ├── DiffModel.cs
│   │   ├── DiffWebView.cs
│   │   ├── DiffWebView.cshtml
│   │   ├── MarkdownModel.cs
│   │   ├── MarkdownWebView.cs
│   │   ├── MarkdownWebView.cshtml
│   │   ├── SyntaxHighlighterModel.cs
│   │   ├── SyntaxHighlighterWebView.cs
│   │   ├── SyntaxHighlighterWebView.cshtml
│   │   ├── UpgradeDetailsModel.cs
│   │   ├── UpgradeDetailsWebView.cs
│   │   └── UpgradeDetailsWebView.cshtml
│   └── packages.config
├── CodeHub.Core/
│   ├── App.cs
│   ├── CodeHub.Core.csproj
│   ├── Data/
│   │   ├── Account.cs
│   │   ├── ImgurResponse.cs
│   │   ├── Language.cs
│   │   ├── LanguageRepository.cs
│   │   └── TrendingRepository.cs
│   ├── Extensions/
│   │   ├── CommandExtensions.cs
│   │   ├── ExceptionExtensions.cs
│   │   ├── GitHubClientExtensions.cs
│   │   ├── ObservableExtensions.cs
│   │   ├── ReactiveListExtensions.cs
│   │   ├── StringExtensions.cs
│   │   └── TaskExtensions.cs
│   ├── Filters/
│   │   ├── BaseIssuesFilterModel.cs
│   │   ├── IssuesFilterModel.cs
│   │   ├── MyIssuesFilterModel.cs
│   │   └── NotificationsFilterModel.cs
│   ├── Interactions.cs
│   ├── Messages/
│   │   ├── GistAddMessage.cs
│   │   ├── IssueAddMessage.cs
│   │   ├── IssueEditMessage.cs
│   │   ├── LogoutMessage.cs
│   │   ├── NotificationCountMessage.cs
│   │   ├── PullRequestEditMessage.cs
│   │   ├── SelectIssueLabelsMessage.cs
│   │   ├── SelectedAssignedToMessage.cs
│   │   ├── SelectedMilestoneMessage.cs
│   │   └── SourceEditMessage.cs
│   ├── PresentationValues.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Secrets.cs
│   ├── Services/
│   │   ├── AccountsService.cs
│   │   ├── ApplicationService.cs
│   │   ├── IAccountsService.cs
│   │   ├── IAlertDialogService.cs
│   │   ├── IApplicationService.cs
│   │   ├── IFeaturesService.cs
│   │   ├── IImgurService.cs
│   │   ├── IMarkdownService.cs
│   │   ├── IMessageService.cs
│   │   ├── INetworkActivityService.cs
│   │   ├── IPushNotificationsService.cs
│   │   ├── IViewModelTxService.cs
│   │   ├── ImgurService.cs
│   │   ├── LoginService.cs
│   │   ├── MessageService.cs
│   │   └── ViewModelTxService.cs
│   ├── Settings.cs
│   ├── Utils/
│   │   ├── CustomObservableCollection.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── Emojis.cs
│   │   ├── FilterGroup.cs
│   │   ├── GitHubAvatar.cs
│   │   ├── GitHubExtensions.cs
│   │   ├── GitHubList.cs
│   │   ├── OctokitClientFactory.cs
│   │   ├── OctokitNetworkClient.cs
│   │   ├── RepositoryIdentifier.cs
│   │   ├── ViewModelExtensions.cs
│   │   └── WeakReferenceExtensions.cs
│   ├── ViewModels/
│   │   ├── Accounts/
│   │   │   ├── AddAccountViewModel.cs
│   │   │   └── OAuthLoginViewModel.cs
│   │   ├── App/
│   │   │   ├── FeedbackComposerViewModel.cs
│   │   │   ├── FeedbackItemViewModel.cs
│   │   │   ├── FeedbackViewModel.cs
│   │   │   ├── MenuViewModel.cs
│   │   │   ├── StartupViewModel.cs
│   │   │   └── SupportViewModel.cs
│   │   ├── BaseViewModel.cs
│   │   ├── Changesets/
│   │   │   ├── ChangesetViewModel.cs
│   │   │   ├── ChangesetsViewModel.cs
│   │   │   └── CommitsViewModel.cs
│   │   ├── CollectionViewModel.cs
│   │   ├── Events/
│   │   │   ├── BaseEventsViewModel.cs
│   │   │   ├── NewsViewModel.cs
│   │   │   ├── OrganizationEventsViewModel.cs
│   │   │   ├── RepositoryEventsViewModel.cs
│   │   │   └── UserEventsViewModel.cs
│   │   ├── FilterGroup.cs
│   │   ├── FilterModel.cs
│   │   ├── FilterableCollectionViewModel.cs
│   │   ├── Gists/
│   │   │   ├── GistCreateViewModel.cs
│   │   │   ├── GistItemViewModel.cs
│   │   │   ├── GistViewModel.cs
│   │   │   └── GistsViewModel.cs
│   │   ├── ICanGoToViewModel.cs
│   │   ├── IFilterableViewModel.cs
│   │   ├── IListViewModel.cs
│   │   ├── ILoadableViewModel.cs
│   │   ├── IProvidesSearchKeyword.cs
│   │   ├── Issues/
│   │   │   ├── BaseIssuesViewModel.cs
│   │   │   ├── IssueAddViewModel.cs
│   │   │   ├── IssueAssignedToViewModel.cs
│   │   │   ├── IssueEditViewModel.cs
│   │   │   ├── IssueLabelsViewModel.cs
│   │   │   ├── IssueMilestonesViewModel.cs
│   │   │   ├── IssueModifyViewModel.cs
│   │   │   ├── IssueViewModel.cs
│   │   │   ├── IssuesViewModel.cs
│   │   │   └── MyIssuesViewModel.cs
│   │   ├── LoadableViewModel.cs
│   │   ├── MarkdownAccessoryViewModel.cs
│   │   ├── Notifications/
│   │   │   └── NotificationsViewModel.cs
│   │   ├── Organizations/
│   │   │   ├── OrganizationViewModel.cs
│   │   │   ├── OrganizationsViewModel.cs
│   │   │   └── TeamsViewModel.cs
│   │   ├── PullRequests/
│   │   │   ├── PullRequestCommitsViewModel.cs
│   │   │   ├── PullRequestFilesViewModel.cs
│   │   │   ├── PullRequestViewModel.cs
│   │   │   └── PullRequestsViewModel.cs
│   │   ├── Repositories/
│   │   │   ├── RepositoriesViewModel.cs
│   │   │   ├── RepositoryItemViewModel.cs
│   │   │   ├── RepositoryViewModel.cs
│   │   │   └── TrendingRepositoriesViewModel.cs
│   │   ├── Search/
│   │   │   ├── ExploreViewModel.cs
│   │   │   ├── RepositoryExploreViewModel.cs
│   │   │   └── UserExploreViewModel.cs
│   │   ├── Source/
│   │   │   └── EditSourceViewModel.cs
│   │   ├── Users/
│   │   │   ├── UserItemViewModel.cs
│   │   │   ├── UserViewModel.cs
│   │   │   └── UsersViewModel.cs
│   │   ├── ViewModelExtensions.cs
│   │   └── WebBrowserViewModel.cs
│   └── packages.config
├── CodeHub.iOS/
│   ├── AkavacheSqliteLinkerOverride.cs
│   ├── AppDelegate.cs
│   ├── CodeHub.iOS.csproj
│   ├── CodeHubIcon.psd
│   ├── DialogElements/
│   │   ├── BooleanElement.cs
│   │   ├── ChangesetElement.cs
│   │   ├── CommentElement.cs
│   │   ├── CommitElement.cs
│   │   ├── DummyInputElement.cs
│   │   ├── Element.cs
│   │   ├── EntryElement.cs
│   │   ├── ExpandingInputElement.cs
│   │   ├── HtmlElement.cs
│   │   ├── IElementSizing.cs
│   │   ├── IssueElement.cs
│   │   ├── LabelElement.cs
│   │   ├── LoadMoreElement.cs
│   │   ├── MenuElement.cs
│   │   ├── MilestoneElement.cs
│   │   ├── MultilinedElement.cs
│   │   ├── NewsFeedElement.cs
│   │   ├── OwnerDrawnElement.cs
│   │   ├── PaginateElement.cs
│   │   ├── PullRequestElement.cs
│   │   ├── RootElement.cs
│   │   ├── Section.cs
│   │   ├── SplitButtonElement.cs
│   │   ├── SplitViewElement.cs
│   │   ├── StringElement.cs
│   │   └── UserElement.cs
│   ├── Entitlements.plist
│   ├── Images/
│   │   └── Images.cs
│   ├── Info.plist
│   ├── Launch.storyboard
│   ├── LinkerPleaseInclude.cs
│   ├── OcticonExtensions.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Resources/
│   │   └── Images.xcassets/
│   │       ├── AppIcons.appiconset/
│   │       │   └── Contents.json
│   │       ├── Avatar.imageset/
│   │       │   └── Contents.json
│   │       └── UnknownUser.imageset/
│   │           └── Contents.json
│   ├── Services/
│   │   ├── AlertDialogService.cs
│   │   ├── FeaturesService.cs
│   │   ├── InAppPurchaseService.cs
│   │   ├── MarkdownService.cs
│   │   ├── NetworkActivityService.cs
│   │   └── PushNotificationsService.cs
│   ├── Setup.cs
│   ├── TableViewCells/
│   │   ├── CommitCellView.cs
│   │   ├── CommitCellView.designer.cs
│   │   ├── CommitCellView.xib
│   │   ├── FeedbackCellView.cs
│   │   ├── FeedbackCellView.designer.cs
│   │   ├── FeedbackCellView.xib
│   │   ├── GistCellView.cs
│   │   ├── GistCellView.designer.cs
│   │   ├── GistCellView.xib
│   │   ├── IssueCellView.cs
│   │   ├── IssueCellView.designer.cs
│   │   ├── IssueCellView.xib
│   │   ├── MilestoneTableViewCell.cs
│   │   ├── MultilinedCellView.cs
│   │   ├── MultilinedCellView.designer.cs
│   │   ├── MultilinedCellView.xib
│   │   ├── NewsCellView.cs
│   │   ├── NewsCellView.designer.cs
│   │   ├── NewsCellView.xib
│   │   ├── PullRequestCellView.cs
│   │   ├── PullRequestCellView.designer.cs
│   │   ├── PullRequestCellView.xib
│   │   ├── RepositoryCellView.cs
│   │   ├── RepositoryCellView.designer.cs
│   │   ├── RepositoryCellView.xib
│   │   └── UserTableViewCell.cs
│   ├── TableViewSources/
│   │   ├── DialogTableViewSource.cs
│   │   ├── FeedbackTableViewSource.cs
│   │   ├── GistTableViewSource.cs
│   │   ├── ReactiveTableViewSource.cs
│   │   ├── RepositoryTableViewSource.cs
│   │   └── UserTableViewSource.cs
│   ├── Theme.cs
│   ├── TouchViewPresenter.cs
│   ├── Transitions/
│   │   └── SlideDownTransition.cs
│   ├── UrlRouterProvider.cs
│   ├── Utilities/
│   │   ├── EasyLayout.cs
│   │   ├── Graphics.cs
│   │   ├── Hud.cs
│   │   ├── NetworkActivity.cs
│   │   ├── ReactiveCommandExtensions.cs
│   │   ├── ShaType.cs
│   │   ├── UIImageExtensions.cs
│   │   ├── UIImageViewExtensions.cs
│   │   ├── UIKitExtensions.cs
│   │   ├── UIWindowExtensions.cs
│   │   └── ViewControllerExtensions.cs
│   ├── ViewControllers/
│   │   ├── Accounts/
│   │   │   ├── AccountsViewController.cs
│   │   │   ├── AddAccountView.xib
│   │   │   ├── AddAccountViewController.cs
│   │   │   ├── AddAccountViewController.designer.cs
│   │   │   ├── NewAccountViewController.cs
│   │   │   └── OAuthLoginViewController.cs
│   │   ├── Application/
│   │   │   ├── EnterpriseSupportViewController.cs
│   │   │   ├── FeedbackComposerViewController.cs
│   │   │   ├── FeedbackViewController.cs
│   │   │   ├── MenuViewController.cs
│   │   │   ├── StartupViewController.cs
│   │   │   ├── SupportViewController.cs
│   │   │   └── UpgradeViewController.cs
│   │   ├── BaseDialogViewController.cs
│   │   ├── BaseViewController.cs
│   │   ├── BaseWebViewController.cs
│   │   ├── Composer.cs
│   │   ├── DialogViewController.cs
│   │   ├── Events/
│   │   │   ├── BaseEventsViewController.cs
│   │   │   ├── NewsViewController.cs
│   │   │   ├── OrganizationEventsViewController.cs
│   │   │   ├── RepositoryEventsViewController.cs
│   │   │   └── UserEventsViewController.cs
│   │   ├── FilterViewController.cs
│   │   ├── Filters/
│   │   │   ├── IssueMilestonesFilterViewController.cs
│   │   │   ├── IssuesFilterViewController.cs
│   │   │   └── MyIssuesFilterViewController.cs
│   │   ├── Gists/
│   │   │   ├── GistCreateViewController.cs
│   │   │   ├── GistEditViewController.cs
│   │   │   ├── GistFileModifyViewController.cs
│   │   │   ├── GistFileViewController.cs
│   │   │   ├── GistViewController.cs
│   │   │   └── GistsViewController.cs
│   │   ├── MarkdownComposerViewController.cs
│   │   ├── MessageComposerViewController.cs
│   │   ├── MultipleChoiceViewController.cs
│   │   ├── Organizations/
│   │   │   ├── OrganizationViewController.cs
│   │   │   ├── OrganizationsViewController.cs
│   │   │   └── TeamsViewController.cs
│   │   ├── PullRequests/
│   │   │   └── PullRequestDiffViewController.cs
│   │   ├── Repositories/
│   │   │   ├── LanguagesViewController.cs
│   │   │   ├── PrivateRepositoryViewController.cs
│   │   │   ├── PrivateRepositoryViewController.designer.cs
│   │   │   ├── PrivateRepositoryViewController.xib
│   │   │   ├── ReadmeViewController.cs
│   │   │   ├── RepositoriesViewController.cs
│   │   │   ├── RepositoryViewController.cs
│   │   │   └── TrendingRepositoriesViewController.cs
│   │   ├── Search/
│   │   │   ├── ExploreViewController.cs
│   │   │   ├── RepositoryExploreViewController.cs
│   │   │   └── UserExploreViewController.cs
│   │   ├── Settings/
│   │   │   ├── DefaultStartupViewController.cs
│   │   │   ├── SettingsViewController.cs
│   │   │   ├── SyntaxHighlightExample
│   │   │   └── SyntaxHighlighterViewController.cs
│   │   ├── Source/
│   │   │   ├── AddSourceViewController.cs
│   │   │   ├── BranchesAndTagsViewController.cs
│   │   │   ├── BranchesViewController.cs
│   │   │   ├── CommitDiffViewController.cs
│   │   │   ├── FileSourceViewController.cs
│   │   │   ├── SourceTreeViewController.cs
│   │   │   └── TagsViewController.cs
│   │   ├── TableViewController.cs
│   │   ├── ThemedNavigationController.cs
│   │   ├── Users/
│   │   │   ├── UserViewController.cs
│   │   │   └── UsersViewController.cs
│   │   ├── ViewModelCollectionDrivenDialogViewController.cs
│   │   ├── ViewModelDrivenDialogViewController.cs
│   │   ├── Walkthrough/
│   │   │   ├── AboutViewController.cs
│   │   │   ├── AboutViewController.designer.cs
│   │   │   ├── AboutViewController.xib
│   │   │   ├── CardPageViewController.cs
│   │   │   ├── CardPageViewController.designer.cs
│   │   │   ├── CardPageViewController.xib
│   │   │   ├── FeedbackViewController.cs
│   │   │   ├── FeedbackViewController.designer.cs
│   │   │   ├── FeedbackViewController.xib
│   │   │   ├── GoProViewController.cs
│   │   │   ├── GoProViewController.designer.cs
│   │   │   ├── GoProViewController.xib
│   │   │   ├── OrgViewController.cs
│   │   │   ├── OrgViewController.designer.cs
│   │   │   ├── OrgViewController.xib
│   │   │   ├── PromoteViewController.cs
│   │   │   ├── PromoteViewController.designer.cs
│   │   │   ├── PromoteViewController.xib
│   │   │   ├── WelcomePageViewController.cs
│   │   │   ├── WelcomeViewController.cs
│   │   │   ├── WelcomeViewController.designer.cs
│   │   │   └── WelcomeViewController.xib
│   │   └── WebBrowserViewController.cs
│   ├── Views/
│   │   ├── AddRemoveView.cs
│   │   ├── BlurredAlertView.cs
│   │   ├── ButtonAccessoryView.cs
│   │   ├── EmptyListView.cs
│   │   ├── ExtendedUITextView.cs
│   │   ├── ImageAndTitleHeaderView.cs
│   │   ├── Issues/
│   │   │   ├── BaseIssuesView.cs
│   │   │   ├── IssueAddView.cs
│   │   │   ├── IssueAssignedToView.cs
│   │   │   ├── IssueEditView.cs
│   │   │   ├── IssueLabelsView.cs
│   │   │   ├── IssueMilestonesView.cs
│   │   │   ├── IssueView.cs
│   │   │   ├── IssuesView.cs
│   │   │   └── MyIssuesView.cs
│   │   ├── LoadingIndicatorView.cs
│   │   ├── MarkdownAccessoryView.cs
│   │   ├── MenuSectionView.cs
│   │   ├── MilestoneView.cs
│   │   ├── NotificationsView.cs
│   │   ├── ProfileButton.cs
│   │   ├── ProgressBarView.cs
│   │   ├── PullRequests/
│   │   │   ├── PullRequestCommitsView.cs
│   │   │   ├── PullRequestFilesView.cs
│   │   │   ├── PullRequestView.cs
│   │   │   └── PullRequestsView.cs
│   │   ├── RetryListView.cs
│   │   ├── ScrollingToolbarView.cs
│   │   ├── SlideUpTitleView.cs
│   │   ├── Source/
│   │   │   ├── ChangesetView.cs
│   │   │   ├── ChangesetsView.cs
│   │   │   ├── CommitsView.cs
│   │   │   └── EditSourceView.cs
│   │   ├── SourceTitleView.cs
│   │   ├── TrendingTitleButton.cs
│   │   └── UILabelWithLinks.cs
│   ├── WebResources/
│   │   ├── highlight-LICENSE
│   │   ├── highlight-line-numbers-LICENSE
│   │   ├── highlight.pack.js
│   │   ├── marked.js
│   │   └── styles/
│   │       ├── agate.css
│   │       ├── androidstudio.css
│   │       ├── arduino-light.css
│   │       ├── arta.css
│   │       ├── ascetic.css
│   │       ├── atelier-cave-dark.css
│   │       ├── atelier-cave-light.css
│   │       ├── atelier-dune-dark.css
│   │       ├── atelier-dune-light.css
│   │       ├── atelier-estuary-dark.css
│   │       ├── atelier-estuary-light.css
│   │       ├── atelier-forest-dark.css
│   │       ├── atelier-forest-light.css
│   │       ├── atelier-heath-dark.css
│   │       ├── atelier-heath-light.css
│   │       ├── atelier-lakeside-dark.css
│   │       ├── atelier-lakeside-light.css
│   │       ├── atelier-plateau-dark.css
│   │       ├── atelier-plateau-light.css
│   │       ├── atelier-savanna-dark.css
│   │       ├── atelier-savanna-light.css
│   │       ├── atelier-seaside-dark.css
│   │       ├── atelier-seaside-light.css
│   │       ├── atelier-sulphurpool-dark.css
│   │       ├── atelier-sulphurpool-light.css
│   │       ├── atom-one-dark.css
│   │       ├── atom-one-light.css
│   │       ├── brown-paper.css
│   │       ├── codepen-embed.css
│   │       ├── color-brewer.css
│   │       ├── darcula.css
│   │       ├── dark.css
│   │       ├── darkula.css
│   │       ├── default.css
│   │       ├── docco.css
│   │       ├── dracula.css
│   │       ├── far.css
│   │       ├── foundation.css
│   │       ├── github-gist.css
│   │       ├── github.css
│   │       ├── googlecode.css
│   │       ├── grayscale.css
│   │       ├── gruvbox-dark.css
│   │       ├── gruvbox-light.css
│   │       ├── hopscotch.css
│   │       ├── hybrid.css
│   │       ├── idea.css
│   │       ├── ir-black.css
│   │       ├── kimbie.dark.css
│   │       ├── kimbie.light.css
│   │       ├── magula.css
│   │       ├── mono-blue.css
│   │       ├── monokai-sublime.css
│   │       ├── monokai.css
│   │       ├── obsidian.css
│   │       ├── ocean.css
│   │       ├── paraiso-dark.css
│   │       ├── paraiso-light.css
│   │       ├── pojoaque.css
│   │       ├── purebasic.css
│   │       ├── qtcreator_dark.css
│   │       ├── qtcreator_light.css
│   │       ├── railscasts.css
│   │       ├── rainbow.css
│   │       ├── routeros.css
│   │       ├── school-book.css
│   │       ├── solarized-dark.css
│   │       ├── solarized-light.css
│   │       ├── sunburst.css
│   │       ├── tomorrow-night-blue.css
│   │       ├── tomorrow-night-bright.css
│   │       ├── tomorrow-night-eighties.css
│   │       ├── tomorrow-night.css
│   │       ├── tomorrow.css
│   │       ├── vs.css
│   │       ├── vs2015.css
│   │       ├── xcode.css
│   │       ├── xt256.css
│   │       └── zenburn.css
│   ├── XCallback/
│   │   ├── XCallbackProvider.cs
│   │   └── XCallbackQuery.cs
│   ├── iTunesArtwork
│   ├── iTunesArtwork@2x
│   └── packages.config
├── CodeHub.iOS.sln
├── CodeHub.psd
├── PRIVATE-POLICY.md
└── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*/bin
*/obj
*.suo
*.userprefs
packages
.vs


================================================
FILE: CodeHub/CodeHub.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{B01CF3C6-51DF-4CAE-A07C-E4BC907833D7}</ProjectGuid>
    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <UseMSBuildEngine>true</UseMSBuildEngine>
    <OutputType>Library</OutputType>
    <RootNamespace>CodeHub</RootNamespace>
    <AssemblyName>CodeHub</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <TargetFrameworkProfile>Profile111</TargetFrameworkProfile>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="WebViews\UpgradeDetailsWebView.cs">
      <DependentUpon>UpgradeDetailsWebView.cshtml</DependentUpon>
    </Compile>
    <Compile Include="WebViews\UpgradeDetailsModel.cs" />
    <Compile Include="WebViews\SyntaxHighlighterModel.cs" />
    <Compile Include="WebViews\SyntaxHighlighterWebView.cs">
      <DependentUpon>SyntaxHighlighterWebView.cshtml</DependentUpon>
    </Compile>
    <Compile Include="WebViews\CommentsWebView.cs">
      <DependentUpon>CommentsWebView.cshtml</DependentUpon>
    </Compile>
    <Compile Include="WebViews\CommentsModel.cs" />
    <Compile Include="WebViews\MarkdownModel.cs" />
    <Compile Include="WebViews\MarkdownWebView.cs">
      <DependentUpon>MarkdownWebView.cshtml</DependentUpon>
    </Compile>
    <Compile Include="Octicons.cs" />
    <Compile Include="WebViews\DiffModel.cs" />
    <Compile Include="WebViews\DiffWebView.cs">
      <DependentUpon>DiffWebView.cshtml</DependentUpon>
    </Compile>
    <Compile Include="WebViews\DiffCommentModel.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="WebViews\" />
    <Folder Include="Resources\" />
  </ItemGroup>
  <ItemGroup>
    <None Include="WebViews\UpgradeDetailsWebView.cshtml">
      <Generator>RazorTemplatePreprocessor</Generator>
      <LastGenOutput>UpgradeDetailsWebView.cs</LastGenOutput>
    </None>
    <None Include="WebViews\SyntaxHighlighterWebView.cshtml">
      <Generator>RazorTemplatePreprocessor</Generator>
      <LastGenOutput>SyntaxHighlighterWebView.cs</LastGenOutput>
    </None>
    <None Include="WebViews\CommentsWebView.cshtml">
      <Generator>RazorTemplatePreprocessor</Generator>
      <LastGenOutput>CommentsWebView.cs</LastGenOutput>
    </None>
    <None Include="WebViews\MarkdownWebView.cshtml">
      <Generator>RazorTemplatePreprocessor</Generator>
      <LastGenOutput>MarkdownWebView.cs</LastGenOutput>
    </None>
    <None Include="packages.config" />
    <None Include="WebViews\DiffWebView.cshtml">
      <Generator>RazorTemplatePreprocessor</Generator>
      <LastGenOutput>DiffWebView.cs</LastGenOutput>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Humanizer">
      <HintPath>..\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <BundleResource Include="Resources\octicons.ttf" />
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
</Project>

================================================
FILE: CodeHub/Octicons.cs
================================================
namespace CodeHub
{
    public class Octicon
    {
        public char CharacterCode { get; private set; }

        public Octicon(char characterCode)
        {
            CharacterCode = characterCode;
        }

        public static implicit operator Octicon(char d)
        {
            return new Octicon(d);
        }

        public static Octicon Heart = (char)9829;
        public static Octicon Zap = (char)9889;
        public static Octicon LightBulb = (char)61440;
        public static Octicon Repo = (char)61441;
        public static Octicon RepoForked = (char)61442;
        public static Octicon RepoPush = (char)61445;
        public static Octicon RepoPull = (char)61446;
        public static Octicon Book = (char)61447;
        public static Octicon Octoface = (char)61448;
        public static Octicon GitPullRequest = (char)61449;
        public static Octicon MarkGithub = (char)61450;
        public static Octicon CloudDownload = (char)61451;
        public static Octicon CloudUpload = (char)61452;
        public static Octicon Keyboard = (char)61453;
        public static Octicon Gist = (char)61454;
        public static Octicon FileCode = (char)61456;
        public static Octicon FileText = (char)61457;
        public static Octicon FileMedia = (char)61458;
        public static Octicon FileZip = (char)61459;
        public static Octicon FilePdf = (char)61460;
        public static Octicon Tag = (char)61461;
        public static Octicon FileDirectory = (char)61462;
        public static Octicon FileSubmodule = (char)61463;
        public static Octicon Person = (char)61464;
        public static Octicon Jersey = (char)61465;
        public static Octicon GitCommit = (char)61471;
        public static Octicon GitBranch = (char)61472;
        public static Octicon GitMerge = (char)61475;
        public static Octicon Mirror = (char)61476;
        public static Octicon IssueOpened = (char)61478;
        public static Octicon IssueReopened = (char)61479;
        public static Octicon IssueClosed = (char)61480;
        public static Octicon Star = (char)61482;
        public static Octicon Comment = (char)61483;
        public static Octicon Question = (char)61484;
        public static Octicon Alert = (char)61485;
        public static Octicon Search = (char)61486;
        public static Octicon Gear = (char)61487;
        public static Octicon RadioTower = (char)61488;
        public static Octicon Tools = (char)61489;
        public static Octicon SignOut = (char)61490;
        public static Octicon Rocket = (char)61491;
        public static Octicon Rss = (char)61492;
        public static Octicon Clippy = (char)61493;
        public static Octicon SignIn = (char)61494;
        public static Octicon Organization = (char)61495;
        public static Octicon DeviceMobile = (char)61496;
        public static Octicon Unfold = (char)61497;
        public static Octicon Check = (char)61498;
        public static Octicon Mail = (char)61499;
        public static Octicon MailRead = (char)61500;
        public static Octicon ArrowUp = (char)61501;
        public static Octicon ArrowRight = (char)61502;
        public static Octicon ArrowDown = (char)61503;
        public static Octicon ArrowLeft = (char)61504;
        public static Octicon Pin = (char)61505;
        public static Octicon Gift = (char)61506;
        public static Octicon Graph = (char)61507;
        public static Octicon TriangleLeft = (char)61508;
        public static Octicon CreditCard = (char)61509;
        public static Octicon Clock = (char)61510;
        public static Octicon Ruby = (char)61511;
        public static Octicon Broadcast = (char)61512;
        public static Octicon Key = (char)61513;
        public static Octicon RepoForcePush = (char)61514;
        public static Octicon RepoClone = (char)61516;
        public static Octicon Diff = (char)61517;
        public static Octicon Eye = (char)61518;
        public static Octicon CommentDiscussion = (char)61519;
        public static Octicon MailReply = (char)61521;
        public static Octicon PrimitiveDot = (char)61522;
        public static Octicon PrimitiveSquare = (char)61523;
        public static Octicon DeviceCamera = (char)61526;
        public static Octicon DeviceCameraVideo = (char)61527;
        public static Octicon Pencil = (char)61528;
        public static Octicon Info = (char)61529;
        public static Octicon TriangleRight = (char)61530;
        public static Octicon TriangleDown = (char)61531;
        public static Octicon Link = (char)61532;
        public static Octicon Plus = (char)61533;
        public static Octicon ThreeBars = (char)61534;
        public static Octicon Code = (char)61535;
        public static Octicon Location = (char)61536;
        public static Octicon ListUnordered = (char)61537;
        public static Octicon ListOrdered = (char)61538;
        public static Octicon Quote = (char)61539;
        public static Octicon Versions = (char)61540;
        public static Octicon ColorMode = (char)61541;
        public static Octicon ScreenFull = (char)61542;
        public static Octicon ScreenNormal = (char)61543;
        public static Octicon Calendar = (char)61544;
        public static Octicon Beer = (char)61545;
        public static Octicon Lock = (char)61546;
        public static Octicon DiffAdded = (char)61547;
        public static Octicon DiffRemoved = (char)61548;
        public static Octicon DiffModified = (char)61549;
        public static Octicon DiffRenamed = (char)61550;
        public static Octicon HorizontalRule = (char)61552;
        public static Octicon ArrowSmallRight = (char)61553;
        public static Octicon JumpDown = (char)61554;
        public static Octicon JumpUp = (char)61555;
        public static Octicon MoveLeft = (char)61556;
        public static Octicon Milestone = (char)61557;
        public static Octicon Checklist = (char)61558;
        public static Octicon Megaphone = (char)61559;
        public static Octicon ChevronRight = (char)61560;
        public static Octicon Bookmark = (char)61563;
        public static Octicon Settings = (char)61564;
        public static Octicon Dashboard = (char)61565;
        public static Octicon History = (char)61566;
        public static Octicon LinkExternal = (char)61567;
        public static Octicon Mute = (char)61568;
        public static Octicon X = (char)61569;
        public static Octicon CircleSlash = (char)61572;
        public static Octicon Pulse = (char)61573;
        public static Octicon Sync = (char)61575;
        public static Octicon Telescope = (char)61576;
        public static Octicon Microscope = (char)61577;
        public static Octicon AlignmentAlign = (char)61578;
        public static Octicon AlignmentUnalign = (char)61579;
        public static Octicon GistSecret = (char)61580;
        public static Octicon Home = (char)61581;
        public static Octicon AlignmentAlignedTo = (char)61582;
        public static Octicon Stop = (char)61583;
        public static Octicon Bug = (char)61585;
        public static Octicon LogoGithub = (char)61586;
        public static Octicon FileBinary = (char)61588;
        public static Octicon Database = (char)61590;
        public static Octicon Server = (char)61591;
        public static Octicon DiffIgnored = (char)61593;
        public static Octicon Ellipsis = (char)61594;
        public static Octicon NoNewline = (char)61596;
        public static Octicon Hubot = (char)61597;
        public static Octicon Hourglass = (char)61598;
        public static Octicon ArrowSmallUp = (char)61599;
        public static Octicon ArrowSmallDown = (char)61600;
        public static Octicon ArrowSmallLeft = (char)61601;
        public static Octicon ChevronUp = (char)61602;
        public static Octicon ChevronDown = (char)61603;
        public static Octicon ChevronLeft = (char)61604;
        public static Octicon JumpLeft = (char)61605;
        public static Octicon JumpRight = (char)61606;
        public static Octicon MoveUp = (char)61607;
        public static Octicon MoveDown = (char)61608;
        public static Octicon MoveRight = (char)61609;
        public static Octicon TriangleUp = (char)61610;
        public static Octicon GitCompare = (char)61612;
        public static Octicon Podium = (char)61615;
        public static Octicon FileSymlinkFile = (char)61616;
        public static Octicon FileSymlinkDirectory = (char)61617;
        public static Octicon Squirrel = (char)61618;
        public static Octicon Globe = (char)61622;
        public static Octicon Unmute = (char)61626;
        public static Octicon PlaybackPause = (char)61627;
        public static Octicon PlaybackRewind = (char)61628;
        public static Octicon PlaybackFastForward = (char)61629;
        public static Octicon Mention = (char)61630;
        public static Octicon PlaybackPlay = (char)61631;
        public static Octicon Puzzle = (char)61632;
        public static Octicon Package = (char)61636;
        public static Octicon Browser = (char)61637;
        public static Octicon Split = (char)61638;
        public static Octicon Steps = (char)61639;
        public static Octicon Terminal = (char)61640;
        public static Octicon Markdown = (char)61641;
        public static Octicon Dash = (char)61642;
        public static Octicon Fold = (char)61644;
        public static Octicon Inbox = (char)61647;
        public static Octicon Trashcan = (char)61648;
        public static Octicon Paintcan = (char)61649;
        public static Octicon Flame = (char)61650;
        public static Octicon Briefcase = (char)61651;
        public static Octicon Plug = (char)61652;
        public static Octicon CircuitBoard = (char)61654;
        public static Octicon MortarBoard = (char)61655;
        public static Octicon Law = (char)61656;
        public static Octicon DeviceDesktop = (char)62076;
    }
}



================================================
FILE: CodeHub/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;

// Information about this assembly is defined by the following attributes. 
// Change them to the values specific to your project.

[assembly: AssemblyTitle("CodeHub")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("(c) Dillon Buchanan")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.

[assembly: AssemblyVersion("1.0.*")]

// The following attributes are used to specify the signing key for the assembly, 
// if desired. See the Mono documentation for more information about signing.

//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]


================================================
FILE: CodeHub/WebViews/CommentsModel.cs
================================================
using System.Collections.Generic;
using System;
using System.Linq;
using Humanizer;

namespace CodeHub.WebViews
{
    public class Comment
    {
        public string AvatarUrl { get; }

        public string Name { get; }

        public DateTimeOffset Date { get; }

        public string DateString => Date.Humanize();

        public string Body { get; }

        public Comment(string avatar, string name, string body, DateTimeOffset date)
        {
            AvatarUrl = avatar;
            Name = name;
            Body = body;
            Date = date;
        }
    }

    public class CommentsModel
    {
        public IList<Comment> Comments { get; }

        public int FontSize { get; }

        public CommentsModel(IEnumerable<Comment> comments, int fontSize)
        {
            Comments = (comments ?? Enumerable.Empty<Comment>()).ToList();
            FontSize = fontSize;
        }
    }
}



================================================
FILE: CodeHub/WebViews/CommentsWebView.cs
================================================
#pragma warning disable 1591
// ------------------------------------------------------------------------------
//  <autogenerated>
//      This code was generated by a tool.
//      Mono Runtime Version: 4.0.30319.42000
// 
//      Changes to this file may cause incorrect behavior and will be lost if 
//      the code is regenerated.
//  </autogenerated>
// ------------------------------------------------------------------------------

namespace CodeHub.WebViews
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "2.6.0.0")]
public partial class CommentsWebView : CommentsWebViewBase
{

#line hidden

#line 1 "CommentsWebView.cshtml"
public CommentsModel Model { get; set; }

#line default
#line hidden


public override void Execute()
{
WriteLiteral("<html><head>\n<meta");

WriteLiteral(" name=\"viewport\"");

WriteLiteral(" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable" +
"=0\"");

WriteLiteral("/>\n<style>\n* {\n-webkit-touch-callout: none;\n-webkit-user-select: none;\n\n}\n\nhtml {" +
"\n    -webkit-text-size-adjust: none;\n}\n\nbody{\n    font-family: \"Helvetica Neue\"," +
" Helvetica;\n    font-size: ");


#line 17 "CommentsWebView.cshtml"
           Write(Model.FontSize);


#line default
#line hidden
WriteLiteral(@"px;
    margin: 0px;
    word-wrap: break-word;
}

a {
    color: #406fb9;
    text-decoration: none;
}

#main > .comment:first-child {
border-top: none;
}

#main > .comment {
    border-top: 1px solid #c8c8c8;
    padding: 8px 0 0 0;
}

#main > .comment > img {
    position: absolute;
    border-radius: 16px;
    margin-left: 8px;
    margin-top: 1px;
    margin-bottom: 8px;
    width: 32px;
    height: 32px;
}

#main > .comment > div {
margin-left: 48px;
margin-right: 8px;
}

#main > .comment > div > h1 {
font-size: ");


#line 52 "CommentsWebView.cshtml"
       Write(Model.FontSize);


#line default
#line hidden
WriteLiteral("px;\nmargin: 0;\ncolor: #406fb9;\nwhite-space: nowrap;\noverflow: hidden;\n}\n\n#main > " +
".comment > div > h2 {\nfont-size: ");


#line 60 "CommentsWebView.cshtml"
       Write(Model.FontSize - 2);


#line default
#line hidden
WriteLiteral("px;\nmargin: 0 0 4px 0;\nfont-weight: normal;\ncolor: #404040;\nwhite-space: nowrap;\n" +
"overflow: hidden;\n}\n\n#main > .comment > div > div {\nmargin: 0;\nword-wrap: break-" +
"word;\n}\n\n#main > .comment > div > .mark {\n    margin-top: 8px;\n    margin-bottom" +
": 8px;\n    margin-right: 8px;\n}\n\n#main > .comment > div > div img {\nmax-width: 1" +
"00%;\n}\n\n#main { width: 100%; }\n\nimg { max-width: 100%; } \np { margin: 10px 0; wh" +
"ite-space: pre-wrap; } \npre, li, ul { word-wrap: break-word; } \n\n.mark h1, .mark" +
" h2, .mark h3, .mark h4, .mark h5, .mark h6 {\nmargin: 1em 0 15px;\npadding: 0;\nfo" +
"nt-weight: bold;\nline-height: 1.7;\ncursor: text;\nposition: relative;\n}\n\nul, ol {" +
"\npadding: 0;\nmargin-top: 0;\nmargin-bottom: 0;\npadding-left: 20px;\n}\n\npre {\nbackg" +
"round-color: #f8f8f8;\nborder: 1px solid #ddd;\nline-height: 19px;\noverflow: auto;" +
"\npadding: 6px 10px;\nborder-radius: 3px;\nword-wrap: normal;\n}\ndl dt {\nfont-weight" +
": bold;\nfont-style: italic;\npadding: 0;\nmargin-top: 15px;\n}\nblockquote {\nborder-" +
"left: 4px solid #DDD;\npadding: 0 15px;\ncolor: #777;\n}\ntable {\nwidth: 100%;\noverf" +
"low: auto;\ndisplay: block;\n}\ntable tr {\nborder-top: 1px solid #ccc;\nbackground-c" +
"olor: #fff;\n}\ntable th {\nfont-weight: bold;\n}\ntable th, table td {\nborder: 1px s" +
"olid #d9d9e0;\nborder: 0.5px solid #d9d9d9;\npadding: 4px 11px;\n}\ntable tr:nth-chi" +
"ld(2n) {\nbackground-color: #f8f8f8;\n}\n.mark h2 {\nfont-size: 1.2em;\nborder-bottom" +
": 1px solid #eee;\n}\n.mark h1 {\nfont-size: 1.6em;\nborder-bottom: 1px solid #ddd;\n" +
"}\n\n.mark .label {\ndisplay: inline;\npadding: .2em .6em .2em;\nfont-size: 85%;\nfont" +
"-weight: 700;\nline-height: 1;\ncolor: #fff;\ntext-align: center;\nwhite-space: nowr" +
"ap;\nvertical-align: baseline;\nborder-radius: .25em;\n}\n.label-danger {\nbackground" +
"-color: #d9534f;\n}\n.label-success {\nbackground-color: #5cb85c;\n}\n.label-info {\nb" +
"ackground-color: #6e5494;\n}\n.label-default {\nbackground-color: #999;\n}\nul.task-l" +
"ist > li.task-list-item {\n  list-style-type: none;\n}\n.task-list-item-checkbox {\n" +
"  margin-left: -20px;\n  vertical-align: middle;\n}\n</style>\n<script>\nfunction siz" +
"e() { return document.body.scrollHeight; }\nfunction rs() { document.location.hre" +
"f = \'app://resize\'; }; window.onsize = rs;\nvar h = 0; setInterval(function() { i" +
"f (size() != h) { h = size(); rs(); } }, 300);\n</script>\n</head>\n<body>\n    <div" +
"");

WriteLiteral(" id=\"main\"");

WriteLiteral(">\n");


#line 194 "CommentsWebView.cshtml"
        

#line default
#line hidden

#line 194 "CommentsWebView.cshtml"
         foreach (var comment in Model.Comments)
        {


#line default
#line hidden
WriteLiteral("            <div");

WriteLiteral(" class=\"comment\"");

WriteLiteral(">\n                <img");

WriteAttribute ("src", " src=\"", "\""

#line 197 "CommentsWebView.cshtml"
, Tuple.Create<string,object,bool> ("", comment.AvatarUrl

#line default
#line hidden
, false)
);
WriteLiteral(">\n                <div>\n                    <h1>");


#line 199 "CommentsWebView.cshtml"
                   Write(comment.Name);


#line default
#line hidden
WriteLiteral("</h1>\n                    <h2>");


#line 200 "CommentsWebView.cshtml"
                   Write(comment.DateString);


#line default
#line hidden
WriteLiteral("</h2>\n                    <div");

WriteLiteral(" class=\"mark\"");

WriteLiteral(">");


#line 201 "CommentsWebView.cshtml"
                                        WriteLiteral(comment.Body);

#line default
#line hidden
WriteLiteral("</div>\n                </div>\n            </div>\n");


#line 204 "CommentsWebView.cshtml"
        }


#line default
#line hidden
WriteLiteral("    </div>\n</body>\n</html");

}
}

// NOTE: this is the default generated helper class. You may choose to extract it to a separate file 
// in order to customize it or share it between multiple templates, and specify the template's base 
// class via the @inherits directive.
public abstract class CommentsWebViewBase
{

		// This field is OPTIONAL, but used by the default implementation of Generate, Write, WriteAttribute and WriteLiteral
		//
		System.IO.TextWriter __razor_writer;

		// This method is OPTIONAL
		//
		/// <summary>Executes the template and returns the output as a string.</summary>
		/// <returns>The template output.</returns>
		public string GenerateString ()
		{
			using (var sw = new System.IO.StringWriter ()) {
				Generate (sw);
				return sw.ToString ();
			}
		}

		// This method is OPTIONAL, you may choose to implement Write and WriteLiteral without use of __razor_writer
		// and provide another means of invoking Execute.
		//
		/// <summary>Executes the template, writing to the provided text writer.</summary>
		/// <param name="writer">The TextWriter to which to write the template output.</param>
		public void Generate (System.IO.TextWriter writer)
		{
			__razor_writer = writer;
			Execute ();
			__razor_writer = null;
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the template output without HTML escaping it.</summary>
		/// <param name="value">The literal value.</param>
		protected void WriteLiteral (string value)
		{
			__razor_writer.Write (value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the TextWriter without HTML escaping it.</summary>
		/// <param name="writer">The TextWriter to which to write the literal.</param>
		/// <param name="value">The literal value.</param>
		protected static void WriteLiteralTo (System.IO.TextWriter writer, string value)
		{
			writer.Write (value);
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a value to the template output, HTML escaping it if necessary.</summary>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected void Write (object value)
		{
			WriteTo (__razor_writer, value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes an object value to the TextWriter, HTML escaping it if necessary.</summary>
		/// <param name="writer">The TextWriter to which to write the value.</param>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected static void WriteTo (System.IO.TextWriter writer, object value)
		{
			if (value == null)
				return;

			var write = value as Action<System.IO.TextWriter>;
			if (write != null) {
				write (writer);
				return;
			}

			//NOTE: a more sophisticated implementation would write safe and pre-escaped values directly to the
			//instead of double-escaping. See System.Web.IHtmlString in ASP.NET 4.0 for an example of this.
			writer.Write(System.Net.WebUtility.HtmlEncode (value.ToString ()));
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to the template output.
		/// </summary>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		protected void WriteAttribute (string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			WriteAttributeTo (__razor_writer, name, prefix, suffix, values);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to a TextWriter.
		/// </summary>
		/// <param name="writer">The TextWriter to which to write the attribute.</param>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		///<remarks>Used by Razor helpers to write attributes.</remarks>
		protected static void WriteAttributeTo (System.IO.TextWriter writer, string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			// this is based on System.Web.WebPages.WebPageExecutingBase
			// Copyright (c) Microsoft Open Technologies, Inc.
			// Licensed under the Apache License, Version 2.0
			if (values.Length == 0) {
				// Explicitly empty attribute, so write the prefix and suffix
				writer.Write (prefix);
				writer.Write (suffix);
				return;
			}

			bool first = true;
			bool wroteSomething = false;

			for (int i = 0; i < values.Length; i++) {
				Tuple<string,object,bool> attrVal = values [i];
				string attPrefix = attrVal.Item1;
				object value = attrVal.Item2;
				bool isLiteral = attrVal.Item3;

				if (value == null) {
					// Nothing to write
					continue;
				}

				// The special cases here are that the value we're writing might already be a string, or that the 
				// value might be a bool. If the value is the bool 'true' we want to write the attribute name instead
				// of the string 'true'. If the value is the bool 'false' we don't want to write anything.
				//
				// Otherwise the value is another object (perhaps an IHtmlString), and we'll ask it to format itself.
				string stringValue;
				bool? boolValue = value as bool?;
				if (boolValue == true) {
					stringValue = name;
				} else if (boolValue == false) {
					continue;
				} else {
					stringValue = value as string;
				}

				if (first) {
					writer.Write (prefix);
					first = false;
				} else {
					writer.Write (attPrefix);
				}

				if (isLiteral) {
					writer.Write (stringValue ?? value);
				} else {
					WriteTo (writer, stringValue ?? value);
				}
				wroteSomething = true;
			}
			if (wroteSomething) {
				writer.Write (suffix);
			}
		}
		// This method is REQUIRED. The generated Razor subclass will override it with the generated code.
		//
		///<summary>Executes the template, writing output to the Write and WriteLiteral methods.</summary>.
		///<remarks>Not intended to be called directly. Call the Generate method instead.</remarks>
		public abstract void Execute ();

}
}
#pragma warning restore 1591


================================================
FILE: CodeHub/WebViews/CommentsWebView.cshtml
================================================
@model CommentsModel
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<style>
* {
-webkit-touch-callout: none;
-webkit-user-select: none;

}

html {
    -webkit-text-size-adjust: none;
}

body{
    font-family: "Helvetica Neue", Helvetica;
    font-size: @(Model.FontSize)px;
    margin: 0px;
    word-wrap: break-word;
}

a {
    color: #406fb9;
    text-decoration: none;
}

#main > .comment:first-child {
border-top: none;
}

#main > .comment {
    border-top: 1px solid #c8c8c8;
    padding: 8px 0 0 0;
}

#main > .comment > img {
    position: absolute;
    border-radius: 16px;
    margin-left: 8px;
    margin-top: 1px;
    margin-bottom: 8px;
    width: 32px;
    height: 32px;
}

#main > .comment > div {
margin-left: 48px;
margin-right: 8px;
}

#main > .comment > div > h1 {
font-size: @(Model.FontSize)px;
margin: 0;
color: #406fb9;
white-space: nowrap;
overflow: hidden;
}

#main > .comment > div > h2 {
font-size: @(Model.FontSize - 2)px;
margin: 0 0 4px 0;
font-weight: normal;
color: #404040;
white-space: nowrap;
overflow: hidden;
}

#main > .comment > div > div {
margin: 0;
word-wrap: break-word;
}

#main > .comment > div > .mark {
    margin-top: 8px;
    margin-bottom: 8px;
    margin-right: 8px;
}

#main > .comment > div > div img {
max-width: 100%;
}

#main { width: 100%; }

img { max-width: 100%; } 
p { margin: 10px 0; white-space: pre-wrap; } 
pre, li, ul { word-wrap: break-word; } 

.mark h1, .mark h2, .mark h3, .mark h4, .mark h5, .mark h6 {
margin: 1em 0 15px;
padding: 0;
font-weight: bold;
line-height: 1.7;
cursor: text;
position: relative;
}

ul, ol {
padding: 0;
margin-top: 0;
margin-bottom: 0;
padding-left: 20px;
}

pre {
background-color: #f8f8f8;
border: 1px solid #ddd;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
word-wrap: normal;
}
dl dt {
font-weight: bold;
font-style: italic;
padding: 0;
margin-top: 15px;
}
blockquote {
border-left: 4px solid #DDD;
padding: 0 15px;
color: #777;
}
table {
width: 100%;
overflow: auto;
display: block;
}
table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}
table th {
font-weight: bold;
}
table th, table td {
border: 1px solid #d9d9e0;
border: 0.5px solid #d9d9d9;
padding: 4px 11px;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.mark h2 {
font-size: 1.2em;
border-bottom: 1px solid #eee;
}
.mark h1 {
font-size: 1.6em;
border-bottom: 1px solid #ddd;
}

.mark .label {
display: inline;
padding: .2em .6em .2em;
font-size: 85%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
.label-danger {
background-color: #d9534f;
}
.label-success {
background-color: #5cb85c;
}
.label-info {
background-color: #6e5494;
}
.label-default {
background-color: #999;
}
ul.task-list > li.task-list-item {
  list-style-type: none;
}
.task-list-item-checkbox {
  margin-left: -20px;
  vertical-align: middle;
}
</style>
<script>
function size() { return document.body.scrollHeight; }
function rs() { document.location.href = 'app://resize'; }; window.onsize = rs;
var h = 0; setInterval(function() { if (size() != h) { h = size(); rs(); } }, 300);
</script>
</head>
<body>
    <div id="main">
        @foreach (var comment in Model.Comments)
        {
            <div class="comment">
                <img src="@comment.AvatarUrl">
                <div>
                    <h1>@comment.Name</h1>
                    <h2>@comment.DateString</h2>
                    <div class="mark">@{WriteLiteral(comment.Body);}</div>
                </div>
            </div>
        }
    </div>
</body>
</html

================================================
FILE: CodeHub/WebViews/DiffCommentModel.cs
================================================
namespace CodeHub.WebViews
{
    public class DiffCommentModel
    {
        public int Id;
        public int? GroupId;
        public string Username;
        public string AvatarUrl;
        public int? LineTo;
        public int? LineFrom;
        public string Body;
        public string Date;
    }
}


================================================
FILE: CodeHub/WebViews/DiffModel.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace CodeHub.WebViews
{
    public class DiffModel
    {
        static Regex ContextRegex = new Regex("^@@ -(\\d+).+\\+(\\d+)");

        public List<Context> Chunks { get; }

        public List<DiffCommentModel> FileComments { get; }

        public int FontSize { get; }

        public DiffModel(
            IEnumerable<string> patchLines,
            IEnumerable<DiffCommentModel> comments,
            int fontSize)
        {
            FontSize = fontSize;

            var diffComments = comments.GroupBy(x => x.LineFrom).ToDictionary(x => x.Key ?? -1, x => x.ToList());
            FileComments = diffComments.ContainsKey(-1) ? diffComments[-1] : new List<DiffCommentModel>();
            Chunks = ParsePatchLines(patchLines, diffComments).ToList();
        }

        static IEnumerable<Context> ParsePatchLines(IEnumerable<string> patchLines, Dictionary<int, List<DiffCommentModel>> comments)
        {
            int baseLine = 0;
            int newLine = 0;
            string contextLine = null;
            LinkedList<Line> lines = null;

            foreach (var patchLine in patchLines.Select((line, idx) => new { line, idx }))
            {
                var line = patchLine.line;
                var idx = patchLine.idx;

                if (line.StartsWith("@@", StringComparison.Ordinal))
                {
                    if (lines != null)
                        yield return new Context(contextLine, lines);

                    lines = new LinkedList<Line>();
                    var match = ContextRegex.Match(line);
                    int.TryParse(match.Groups[1].Value, out baseLine);
                    int.TryParse(match.Groups[2].Value, out newLine);
                    contextLine = line;
                    continue;
                }

                if (lines == null)
                    continue;


                comments.TryGetValue(idx, out List<DiffCommentModel> lineComments);
            
                if (line.StartsWith("+", StringComparison.Ordinal))
                {
                    lines.AddLast(new Line(baseLine, newLine, LineEquality.Insert, line.Substring(1), idx, lineComments));
                    newLine++;
                }
                else if (line.StartsWith("-", StringComparison.Ordinal))
                {
                    lines.AddLast(new Line(baseLine, newLine, LineEquality.Delete, line.Substring(1), idx, lineComments));
                    baseLine++;
                }
                else if (line.StartsWith("\\", StringComparison.Ordinal))
                {
                    continue;
                }
                else
                {
                    lines.AddLast(new Line(baseLine, newLine, LineEquality.Equal, line.Substring(1), idx, lineComments));
                    baseLine++;
                    newLine++;
                }
            }

            if (lines != null)
                yield return new Context(contextLine, lines);
        }

        public class Context
        {
            public string Content { get; }
            public List<Line> Lines { get; }

            public Context(string content, IEnumerable<Line> lines)
            {
                Content = content;
                Lines = lines.ToList();
            }
        }

        public class Line
        {
            public int? BaseLine { get; }
            public int? NewLine { get; }
            public LineEquality LineEquality { get; }
            public string Content { get; }
            public List<KeyValuePair<int, List<DiffCommentModel>>> CommentSets { get; }
            public int Index { get; }

            public Line(int? baseLine, int? newLine, LineEquality lineEquality, string content, int index, IEnumerable<DiffCommentModel> comments)
            {
                BaseLine = baseLine;
                NewLine = newLine;
                LineEquality = lineEquality;
                Content = content;
                Index = index;

                CommentSets = (comments ?? Enumerable.Empty<DiffCommentModel>())
                    .GroupBy(x => x.GroupId ?? index)
                    .ToDictionary(x => x.Key, x => x.ToList())
                    .ToList();
            }
        }

        public enum LineEquality
        {
            Equal,
            Insert,
            Delete
        }
    }
}


================================================
FILE: CodeHub/WebViews/DiffWebView.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace CodeHub.WebViews
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "2.6.0.0")]
public partial class DiffWebView : DiffWebViewBase
{

#line hidden

#line 1 "DiffWebView.cshtml"
public DiffModel Model { get; set; }

#line default
#line hidden


public override void Execute()
{
WriteLiteral("<!DOCTYPE html>\n<html>\n  <head>\n    <title></title>\n    <meta");

WriteLiteral(" charset=\"utf-8\"");

WriteLiteral(">\n    <meta");

WriteLiteral(" name=\"viewport\"");

WriteLiteral(" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable" +
"=0\"");

WriteLiteral(@"/>
    <style>
      head, body {
        margin: 0;
        -webkit-text-size-adjust: none;
        -moz-text-size-adjust: none;
      }

      table {
        width: 100%;
        border-collapse: collapse;
        font-family: Menlo,Consolas,monospace;
        font-size: ");


#line 19 "DiffWebView.cshtml"
               Write(Model.FontSize);


#line default
#line hidden
WriteLiteral("px;\n      }\n\n      td {\n        height: 20px;\n        line-height: 20px;\n      }\n" +
"\n      .content {\n        white-space: nowrap;\n        padding: 0 10px;\n        " +
"border-left: 1px solid #eee;\n      }\n\n      .code-line {\n        display: inline" +
";\n        background: 0 0;\n        padding: 0;\n        word-wrap: normal;\n      " +
"  white-space: pre;\n      }\n\n      .line-prefix {\n        -webkit-touch-callout:" +
" none;\n        -webkit-user-select: none;\n        -moz-user-select: none;\n      " +
"  -ms-user-select: none;\n        user-select: none;\n\n        display: inline;\n  " +
"      background: 0 0;\n        padding: 0;\n        word-wrap: normal;\n        wh" +
"ite-space: pre;\n      }\n\n      tr.insert > td {\n        background-color: #dfd;\n" +
"        border-color: #b4e2b4;\n      }\n\n      tr.delete > td {\n        backgroun" +
"d-color: #fee8e9;\n        border-color: #e9aeae;\n      }\n\n      tr.info > td {\n " +
"       background-color: #f8fafd;\n        color: rgba(0,0,0,.3);\n        border-" +
"color: #d5e4f2;\n      }\n\n      .line-number {\n        -webkit-touch-callout: non" +
"e;\n        -webkit-user-select: none;\n        -moz-user-select: none;\n        -m" +
"s-user-select: none;\n        user-select: none;\n        width: 40px;\n        col" +
"or: rgba(0,0,0,.3);\n        text-align: right;\n        cursor: pointer;\n        " +
"padding: 0 10px 0 0;\n      }\n\n      .comment > td {\n        padding: 5px;\n      " +
"  border-top: 1px solid #d5e4f2;\n        border-bottom: 1px solid #d5e4f2;\n     " +
" }\n\n      .comment-inner {\n        border: 1px solid #d5e4f2;\n        border-rad" +
"ius: 2px;\n      }\n\n      .reply-line {\n        border-top: 1px solid #d5e4f2;\n  " +
"      padding: 0;\n      }\n\n      .reply-line button {\n        width: 100%;\n     " +
"   background: #f6f8fa;\n        height: 32px;\n        border: none;\n        font" +
"-weight: 700;\n      }\n\n      .reply-line button:active {\n        background: #e6" +
"e8eb;\n        border: 1px solid #c4c4c4;\n      }\n\n      img.avatar {\n        mar" +
"gin-top: 4px;\n        border-radius: 2px;\n        float: left;\n      }\n\n      .c" +
"omment-content {\n        margin-left: 44px;\n      }\n\n      .comment-line {\n     " +
"   padding: 8px 8px\n      }\n\n      .comment-content h4 {\n        display: inline" +
" !important;\n        margin-top: 0;\n        margin-bottom: 0;\n        font-weigh" +
"t: 400;\n      }\n\n      .text-gray {\n        color: #586069 !important\n      }\n\n " +
"     .comment-body {\n        width: 100%;\n        padding: 0;\n        overflow: " +
"visible;\n      }\n      .comment-body > :first-child {\n        margin-top: 0 !imp" +
"ortant;\n      }\n\t\t\t.comment-body > :last-child {\n  \t\t\tmargin-bottom: 0 !importan" +
"t;\n\t\t\t}\n      .comment-body h1,\n      .comment-body h2,\n      .comment-body h3,\n" +
"      .comment-body h4,\n      .comment-body h5,\n      .comment-body h6 {\n       " +
" margin: 1em 0 15px;\n        padding: 0;\n        font-weight: bold;\n        line" +
"-height: 1.7;\n        cursor: text;\n        position: relative;\n      }\n      .c" +
"omment-body h1 {\n        font-size: 1.8em;\n        border-bottom: 1px solid #ddd" +
";\n      }\n      .comment-body p,\n      .comment-body blockquote,\n      .comment-" +
"body ul,\n      .comment-body ol,\n      .comment-body dl,\n      .comment-body tab" +
"le,\n      .comment-body pre {\n        margin: 15px 0;\n      }\n      .comment-bod" +
"y h2 {\n        font-size: 1.4em;\n        border-bottom: 1px solid #eee;\n      }\n" +
"      .comment-body ul,\n      .comment-body ol {\n        padding-left: 20px;\n   " +
"   }\n      .comment-body a {\n        color: #4183c4;\n        text-decoration: no" +
"ne;\n        text-decoration: none;\n      }\n      .comment-body .highlight pre,\n " +
"     .comment-body pre {\n        background-color: #f8f8f8;\n        border: 1px " +
"solid #ddd;\n        line-height: 19px;\n        overflow: auto;\n        padding: " +
"6px 10px;\n        border-radius: 3px;\n      }\n      .comment-body pre {\n        " +
"word-wrap: normal;\n      }\n      .comment-body dl {\n        padding: 0;\n      }\n" +
"      .comment-body dl dt {\n        font-weight: bold;\n        font-style: itali" +
"c;\n        padding: 0;\n        margin-top: 15px;\n      }\n      .comment-body dl " +
"dd {\n        margin-bottom: 15px;\n        padding: 0 15px;\n      }\n      .commen" +
"t-body table {\n        width: 100%;\n        overflow: auto;\n        display: blo" +
"ck;\n      }\n      .comment-body table tr {\n        border-top: 1px solid #ccc;\n " +
"       background-color: #fff;\n      }\n      .comment-body table tr:nth-child(2n" +
") {\n        background-color: #f8f8f8;\n      }\n      .comment-body table th,\n   " +
"   .comment-body table td {\n        border: 1px solid #ddd;\n        padding: 6px" +
" 13px;\n      }\n      .comment-body table th {\n        font-weight: bold;\n      }" +
"\n      .comment-body img {\n        max-width: 100%;\n        -moz-box-sizing: bor" +
"der-box;\n        box-sizing: border-box;\n      }\n      .comment-body ul.task-lis" +
"t > li.task-list-item {\n        list-style-type: none;\n      }\n      .comment-bo" +
"dy .task-list-item-checkbox {\n        margin-left: -20px;\n        vertical-align" +
": middle;\n      }\n\n    </style>\n\t<script>\n    function invokeNative(functionName" +
", args) {\n      try {\n        var iframe = document.createElement(\'IFRAME\');\n   " +
"     iframe.setAttribute(\'src\', \'app://\' + functionName + \'#\' + JSON.stringify(a" +
"rgs));\n        document.body.appendChild(iframe);\n        iframe.parentNode.remo" +
"veChild(iframe);\n        iframe = null;  \n      } catch (err) {\n          alert(" +
"err.message);\n      }\n    }\n    function lineClick(fileLine, patchLine) {\n  \t\tin" +
"vokeNative(\"comment\", { fileLine, patchLine });\n  \t}\n  \tfunction replyTo(id) {\n " +
" \t\tinvokeNative(\"reply-to\", { id });\n  \t}\n\t</script>\n  </head>\n  <body>\n    <tab" +
"le>\n      <tbody>\t\n");


#line 270 "DiffWebView.cshtml"
        

#line default
#line hidden

#line 270 "DiffWebView.cshtml"
         foreach (var chunk in Model.Chunks)
    		{


#line default
#line hidden
WriteLiteral("\t        <tr");

WriteLiteral(" class=\"info\"");

WriteLiteral(">\n            <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">...</td>\n            <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">...</td>\n            <td");

WriteLiteral(" class=\"content\"");

WriteLiteral(">");


#line 275 "DiffWebView.cshtml"
                           Write(chunk.Content);


#line default
#line hidden
WriteLiteral("</td>\n          </tr>\n");


#line 277 "DiffWebView.cshtml"

    		foreach (var line in chunk.Lines)
  			{
  				if (line.LineEquality == DiffModel.LineEquality.Equal)
  				{


#line default
#line hidden
WriteLiteral("            <tr");

WriteAttribute ("onclick", " onclick=\"", "\""
, Tuple.Create<string,object,bool> ("", "lineClick(", true)

#line 282 "DiffWebView.cshtml"
, Tuple.Create<string,object,bool> ("", line.Index

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ",", true)

#line 282 "DiffWebView.cshtml"
        , Tuple.Create<string,object,bool> (" ", line.NewLine

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ")", true)
);
WriteLiteral(">\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">");


#line 283 "DiffWebView.cshtml"
                                 Write(line.BaseLine);


#line default
#line hidden
WriteLiteral("</td>\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">");


#line 284 "DiffWebView.cshtml"
                                 Write(line.NewLine);


#line default
#line hidden
WriteLiteral("</td>\n              <td");

WriteLiteral(" class=\"content\"");

WriteLiteral(">\n                <span");

WriteLiteral(" class=\"line-prefix\"");

WriteLiteral(">&nbsp;</span>\n                <span");

WriteLiteral(" class=\"code-line\"");

WriteLiteral(">");


#line 287 "DiffWebView.cshtml"
                                   Write(line.Content);


#line default
#line hidden
WriteLiteral("</span>\n              </td>\n            </tr>\n");


#line 290 "DiffWebView.cshtml"
  				}
  				else if (line.LineEquality == DiffModel.LineEquality.Insert)
          {


#line default
#line hidden
WriteLiteral("            <tr");

WriteLiteral(" class=\"insert\"");

WriteAttribute ("onclick", " onclick=\"", "\""
, Tuple.Create<string,object,bool> ("", "lineClick(", true)

#line 293 "DiffWebView.cshtml"
           , Tuple.Create<string,object,bool> ("", line.Index

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ",", true)

#line 293 "DiffWebView.cshtml"
                       , Tuple.Create<string,object,bool> (" ", line.NewLine

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ")", true)
);
WriteLiteral(">\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral("></td>\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">");


#line 295 "DiffWebView.cshtml"
                                 Write(line.NewLine);


#line default
#line hidden
WriteLiteral("</td>\n              <td");

WriteLiteral(" class=\"content\"");

WriteLiteral(">\n                <span");

WriteLiteral(" class=\"line-prefix\"");

WriteLiteral(">+</span>\n                <span");

WriteLiteral(" class=\"code-line\"");

WriteLiteral(">");


#line 298 "DiffWebView.cshtml"
                                   Write(line.Content);


#line default
#line hidden
WriteLiteral("</span>\n              </td>\n            </tr>\n");


#line 301 "DiffWebView.cshtml"
          }
  				else if (line.LineEquality == DiffModel.LineEquality.Delete)
          {


#line default
#line hidden
WriteLiteral("            <tr");

WriteLiteral(" class=\"delete\"");

WriteAttribute ("onclick", " onclick=\"", "\""
, Tuple.Create<string,object,bool> ("", "lineClick(", true)

#line 304 "DiffWebView.cshtml"
           , Tuple.Create<string,object,bool> ("", line.Index

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ",", true)

#line 304 "DiffWebView.cshtml"
                       , Tuple.Create<string,object,bool> (" ", line.BaseLine

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ")", true)
);
WriteLiteral(">\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral(">");


#line 305 "DiffWebView.cshtml"
                                 Write(line.BaseLine);


#line default
#line hidden
WriteLiteral("</td>\n              <td");

WriteLiteral(" class=\"line-number\"");

WriteLiteral("></td>\n              <td");

WriteLiteral(" class=\"content\"");

WriteLiteral(">\n                <span");

WriteLiteral(" class=\"line-prefix\"");

WriteLiteral(">-</span>\n                <span");

WriteLiteral(" class=\"code-line\"");

WriteLiteral(">");


#line 309 "DiffWebView.cshtml"
                                   Write(line.Content);


#line default
#line hidden
WriteLiteral("</span>\n              </td>\n            </tr>\n");


#line 312 "DiffWebView.cshtml"
          }

  				foreach (var commentSet in line.CommentSets)
  				{


#line default
#line hidden
WriteLiteral("  \t\t      <tr");

WriteLiteral(" class=\"comment\"");

WriteLiteral(">\n              <td");

WriteLiteral(" colspan=\"3\"");

WriteLiteral(">\n                <div");

WriteLiteral(" class=\"comment-inner\"");

WriteLiteral(">\n");


#line 319 "DiffWebView.cshtml"
                  

#line default
#line hidden

#line 319 "DiffWebView.cshtml"
                   foreach (var comment in commentSet.Value)
                  {


#line default
#line hidden
WriteLiteral("                    <div");

WriteLiteral(" class=\"comment-line\"");

WriteLiteral(">\n                      <img");

WriteAttribute ("src", " src=\"", "\""

#line 322 "DiffWebView.cshtml"
, Tuple.Create<string,object,bool> ("", comment.AvatarUrl

#line default
#line hidden
, false)
);
WriteLiteral(" class=\"avatar\"");

WriteLiteral(" width=\"28\"");

WriteLiteral(" height=\"28\"");

WriteLiteral(" />\n                      <div");

WriteLiteral(" class=\"comment-content\"");

WriteLiteral(">\n                        <h4><strong>");


#line 324 "DiffWebView.cshtml"
                               Write(comment.Username);


#line default
#line hidden
WriteLiteral("</strong> <span");

WriteLiteral(" class=\"text-gray\"");

WriteLiteral(">");


#line 324 "DiffWebView.cshtml"
                                                                                  Write(comment.Date);


#line default
#line hidden
WriteLiteral("</span></h4>\n                        <div");

WriteLiteral(" class=\"comment-body\"");

WriteLiteral(">\n");


#line 326 "DiffWebView.cshtml"
          								

#line default
#line hidden

#line 326 "DiffWebView.cshtml"
                                          WriteLiteral(comment.Body);

#line default
#line hidden
WriteLiteral("\n                        </div>\n                      </div>\n                    " +
"</div>\n");


#line 330 "DiffWebView.cshtml"
  				        }


#line default
#line hidden
WriteLiteral("                  <div");

WriteLiteral(" class=\"reply-line\"");

WriteLiteral(">\n                    <button");

WriteAttribute ("onclick", " onclick=\"", "\""
, Tuple.Create<string,object,bool> ("", "replyTo(", true)

#line 332 "DiffWebView.cshtml"
      , Tuple.Create<string,object,bool> ("", commentSet.Key

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ")", true)
);
WriteLiteral(">Reply</button>\n                  </div>\n                </div>\n              </t" +
"d>\n            </tr>\n");


#line 337 "DiffWebView.cshtml"
  				}
  			}
  		}


#line default
#line hidden
WriteLiteral("      </tbody>\n    </table>\n  </body>\n</html>");

}
}

// NOTE: this is the default generated helper class. You may choose to extract it to a separate file 
// in order to customize it or share it between multiple templates, and specify the template's base 
// class via the @inherits directive.
public abstract class DiffWebViewBase
{

		// This field is OPTIONAL, but used by the default implementation of Generate, Write, WriteAttribute and WriteLiteral
		//
		System.IO.TextWriter __razor_writer;

		// This method is OPTIONAL
		//
		/// <summary>Executes the template and returns the output as a string.</summary>
		/// <returns>The template output.</returns>
		public string GenerateString ()
		{
			using (var sw = new System.IO.StringWriter ()) {
				Generate (sw);
				return sw.ToString ();
			}
		}

		// This method is OPTIONAL, you may choose to implement Write and WriteLiteral without use of __razor_writer
		// and provide another means of invoking Execute.
		//
		/// <summary>Executes the template, writing to the provided text writer.</summary>
		/// <param name="writer">The TextWriter to which to write the template output.</param>
		public void Generate (System.IO.TextWriter writer)
		{
			__razor_writer = writer;
			Execute ();
			__razor_writer = null;
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the template output without HTML escaping it.</summary>
		/// <param name="value">The literal value.</param>
		protected void WriteLiteral (string value)
		{
			__razor_writer.Write (value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the TextWriter without HTML escaping it.</summary>
		/// <param name="writer">The TextWriter to which to write the literal.</param>
		/// <param name="value">The literal value.</param>
		protected static void WriteLiteralTo (System.IO.TextWriter writer, string value)
		{
			writer.Write (value);
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a value to the template output, HTML escaping it if necessary.</summary>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected void Write (object value)
		{
			WriteTo (__razor_writer, value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes an object value to the TextWriter, HTML escaping it if necessary.</summary>
		/// <param name="writer">The TextWriter to which to write the value.</param>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected static void WriteTo (System.IO.TextWriter writer, object value)
		{
			if (value == null)
				return;

			var write = value as Action<System.IO.TextWriter>;
			if (write != null) {
				write (writer);
				return;
			}

			//NOTE: a more sophisticated implementation would write safe and pre-escaped values directly to the
			//instead of double-escaping. See System.Web.IHtmlString in ASP.NET 4.0 for an example of this.
			writer.Write(System.Net.WebUtility.HtmlEncode (value.ToString ()));
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to the template output.
		/// </summary>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		protected void WriteAttribute (string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			WriteAttributeTo (__razor_writer, name, prefix, suffix, values);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to a TextWriter.
		/// </summary>
		/// <param name="writer">The TextWriter to which to write the attribute.</param>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		///<remarks>Used by Razor helpers to write attributes.</remarks>
		protected static void WriteAttributeTo (System.IO.TextWriter writer, string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			// this is based on System.Web.WebPages.WebPageExecutingBase
			// Copyright (c) Microsoft Open Technologies, Inc.
			// Licensed under the Apache License, Version 2.0
			if (values.Length == 0) {
				// Explicitly empty attribute, so write the prefix and suffix
				writer.Write (prefix);
				writer.Write (suffix);
				return;
			}

			bool first = true;
			bool wroteSomething = false;

			for (int i = 0; i < values.Length; i++) {
				Tuple<string,object,bool> attrVal = values [i];
				string attPrefix = attrVal.Item1;
				object value = attrVal.Item2;
				bool isLiteral = attrVal.Item3;

				if (value == null) {
					// Nothing to write
					continue;
				}

				// The special cases here are that the value we're writing might already be a string, or that the 
				// value might be a bool. If the value is the bool 'true' we want to write the attribute name instead
				// of the string 'true'. If the value is the bool 'false' we don't want to write anything.
				//
				// Otherwise the value is another object (perhaps an IHtmlString), and we'll ask it to format itself.
				string stringValue;
				bool? boolValue = value as bool?;
				if (boolValue == true) {
					stringValue = name;
				} else if (boolValue == false) {
					continue;
				} else {
					stringValue = value as string;
				}

				if (first) {
					writer.Write (prefix);
					first = false;
				} else {
					writer.Write (attPrefix);
				}

				if (isLiteral) {
					writer.Write (stringValue ?? value);
				} else {
					WriteTo (writer, stringValue ?? value);
				}
				wroteSomething = true;
			}
			if (wroteSomething) {
				writer.Write (suffix);
			}
		}
		// This method is REQUIRED. The generated Razor subclass will override it with the generated code.
		//
		///<summary>Executes the template, writing output to the Write and WriteLiteral methods.</summary>.
		///<remarks>Not intended to be called directly. Call the Generate method instead.</remarks>
		public abstract void Execute ();

}
}
#pragma warning restore 1591


================================================
FILE: CodeHub/WebViews/DiffWebView.cshtml
================================================
@model DiffModel
<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
    <style>
      head, body {
        margin: 0;
        -webkit-text-size-adjust: none;
        -moz-text-size-adjust: none;
      }

      table {
        width: 100%;
        border-collapse: collapse;
        font-family: Menlo,Consolas,monospace;
        font-size: @(Model.FontSize)px;
      }

      td {
        height: 20px;
        line-height: 20px;
      }

      .content {
        white-space: nowrap;
        padding: 0 10px;
        border-left: 1px solid #eee;
      }

      .code-line {
        display: inline;
        background: 0 0;
        padding: 0;
        word-wrap: normal;
        white-space: pre;
      }

      .line-prefix {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;

        display: inline;
        background: 0 0;
        padding: 0;
        word-wrap: normal;
        white-space: pre;
      }

      tr.insert > td {
        background-color: #dfd;
        border-color: #b4e2b4;
      }

      tr.delete > td {
        background-color: #fee8e9;
        border-color: #e9aeae;
      }

      tr.info > td {
        background-color: #f8fafd;
        color: rgba(0,0,0,.3);
        border-color: #d5e4f2;
      }

      .line-number {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        width: 40px;
        color: rgba(0,0,0,.3);
        text-align: right;
        cursor: pointer;
        padding: 0 10px 0 0;
      }

      .comment > td {
        padding: 5px;
        border-top: 1px solid #d5e4f2;
        border-bottom: 1px solid #d5e4f2;
      }

      .comment-inner {
        border: 1px solid #d5e4f2;
        border-radius: 2px;
      }

      .reply-line {
        border-top: 1px solid #d5e4f2;
        padding: 0;
      }

      .reply-line button {
        width: 100%;
        background: #f6f8fa;
        height: 32px;
        border: none;
        font-weight: 700;
      }

      .reply-line button:active {
        background: #e6e8eb;
        border: 1px solid #c4c4c4;
      }

      img.avatar {
        margin-top: 4px;
        border-radius: 2px;
        float: left;
      }

      .comment-content {
        margin-left: 44px;
      }

      .comment-line {
        padding: 8px 8px
      }

      .comment-content h4 {
        display: inline !important;
        margin-top: 0;
        margin-bottom: 0;
        font-weight: 400;
      }

      .text-gray {
        color: #586069 !important
      }

      .comment-body {
        width: 100%;
        padding: 0;
        overflow: visible;
      }
      .comment-body > :first-child {
        margin-top: 0 !important;
      }
			.comment-body > :last-child {
  			margin-bottom: 0 !important;
			}
      .comment-body h1,
      .comment-body h2,
      .comment-body h3,
      .comment-body h4,
      .comment-body h5,
      .comment-body h6 {
        margin: 1em 0 15px;
        padding: 0;
        font-weight: bold;
        line-height: 1.7;
        cursor: text;
        position: relative;
      }
      .comment-body h1 {
        font-size: 1.8em;
        border-bottom: 1px solid #ddd;
      }
      .comment-body p,
      .comment-body blockquote,
      .comment-body ul,
      .comment-body ol,
      .comment-body dl,
      .comment-body table,
      .comment-body pre {
        margin: 15px 0;
      }
      .comment-body h2 {
        font-size: 1.4em;
        border-bottom: 1px solid #eee;
      }
      .comment-body ul,
      .comment-body ol {
        padding-left: 20px;
      }
      .comment-body a {
        color: #4183c4;
        text-decoration: none;
        text-decoration: none;
      }
      .comment-body .highlight pre,
      .comment-body pre {
        background-color: #f8f8f8;
        border: 1px solid #ddd;
        line-height: 19px;
        overflow: auto;
        padding: 6px 10px;
        border-radius: 3px;
      }
      .comment-body pre {
        word-wrap: normal;
      }
      .comment-body dl {
        padding: 0;
      }
      .comment-body dl dt {
        font-weight: bold;
        font-style: italic;
        padding: 0;
        margin-top: 15px;
      }
      .comment-body dl dd {
        margin-bottom: 15px;
        padding: 0 15px;
      }
      .comment-body table {
        width: 100%;
        overflow: auto;
        display: block;
      }
      .comment-body table tr {
        border-top: 1px solid #ccc;
        background-color: #fff;
      }
      .comment-body table tr:nth-child(2n) {
        background-color: #f8f8f8;
      }
      .comment-body table th,
      .comment-body table td {
        border: 1px solid #ddd;
        padding: 6px 13px;
      }
      .comment-body table th {
        font-weight: bold;
      }
      .comment-body img {
        max-width: 100%;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }
      .comment-body ul.task-list > li.task-list-item {
        list-style-type: none;
      }
      .comment-body .task-list-item-checkbox {
        margin-left: -20px;
        vertical-align: middle;
      }

    </style>
	<script>
    function invokeNative(functionName, args) {
      try {
        var iframe = document.createElement('IFRAME');
        iframe.setAttribute('src', 'app://' + functionName + '#' + JSON.stringify(args));
        document.body.appendChild(iframe);
        iframe.parentNode.removeChild(iframe);
        iframe = null;  
      } catch (err) {
          alert(err.message);
      }
    }
    function lineClick(fileLine, patchLine) {
  		invokeNative("comment", { fileLine, patchLine });
  	}
  	function replyTo(id) {
  		invokeNative("reply-to", { id });
  	}
	</script>
  </head>
  <body>
    <table>
      <tbody>	
        @foreach (var chunk in Model.Chunks)
    		{
	        <tr class="info">
            <td class="line-number">...</td>
            <td class="line-number">...</td>
            <td class="content">@chunk.Content</td>
          </tr>

    		foreach (var line in chunk.Lines)
  			{
  				if (line.LineEquality == DiffModel.LineEquality.Equal)
  				{
            <tr onclick="lineClick(@line.Index, @line.NewLine)">
              <td class="line-number">@line.BaseLine</td>
              <td class="line-number">@line.NewLine</td>
              <td class="content">
                <span class="line-prefix">&nbsp;</span>
                <span class="code-line">@line.Content</span>
              </td>
            </tr>
  				}
  				else if (line.LineEquality == DiffModel.LineEquality.Insert)
          {
            <tr class="insert" onclick="lineClick(@line.Index, @line.NewLine)">
              <td class="line-number"></td>
              <td class="line-number">@line.NewLine</td>
              <td class="content">
                <span class="line-prefix">+</span>
                <span class="code-line">@line.Content</span>
              </td>
            </tr>
          }
  				else if (line.LineEquality == DiffModel.LineEquality.Delete)
          {
            <tr class="delete" onclick="lineClick(@line.Index, @line.BaseLine)">
              <td class="line-number">@line.BaseLine</td>
              <td class="line-number"></td>
              <td class="content">
                <span class="line-prefix">-</span>
                <span class="code-line">@line.Content</span>
              </td>
            </tr>
          }

  				foreach (var commentSet in line.CommentSets)
  				{
  		      <tr class="comment">
              <td colspan="3">
                <div class="comment-inner">
                  @foreach (var comment in commentSet.Value)
                  {
                    <div class="comment-line">
                      <img src="@comment.AvatarUrl" class="avatar" width="28" height="28" />
                      <div class="comment-content">
                        <h4><strong>@comment.Username</strong> <span class="text-gray">@comment.Date</span></h4>
                        <div class="comment-body">
          								@{WriteLiteral(comment.Body);}
                        </div>
                      </div>
                    </div>
  				        }
                  <div class="reply-line">
                    <button onclick="replyTo(@commentSet.Key)">Reply</button>
                  </div>
                </div>
              </td>
            </tr>
  				}
  			}
  		}
      </tbody>
    </table>
  </body>
</html>

================================================
FILE: CodeHub/WebViews/MarkdownModel.cs
================================================
namespace CodeHub.WebViews
{
    public class MarkdownModel
    {
        public string Body { get; }

        public int FontSize { get; }

        public bool ContinuousResize { get; }

        public MarkdownModel(string body, int fontSize, bool continuousResize = false)
        {
            Body = body;
            FontSize = fontSize;
            ContinuousResize = continuousResize;
        }
    }
}



================================================
FILE: CodeHub/WebViews/MarkdownWebView.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace CodeHub.WebViews
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "2.6.0.0")]
public partial class MarkdownWebView : MarkdownWebViewBase
{

#line hidden

#line 1 "MarkdownWebView.cshtml"
public MarkdownModel Model { get; set; }

#line default
#line hidden


public override void Execute()
{
WriteLiteral("<html><head>\n<meta");

WriteLiteral(" name=\"viewport\"");

WriteLiteral(" content=\"width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable" +
"=0\"");

WriteLiteral("/>\n<style>\n* {\n    box-sizing: border-box;\n}\n\nhtml {\n    -webkit-text-size-adjust" +
": none;\n}\n\nbody {\n    color: #333;\n    font-family: Helvetica, Arial, sans-serif" +
";\n    line-height: 1.42;\n    font-size: ");


#line 17 "MarkdownWebView.cshtml"
           Write(Model.FontSize);


#line default
#line hidden
WriteLiteral(@"px;
    line-height: 1.7;
    word-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
margin: 1em 0 15px;
padding: 0;
font-weight: bold;
line-height: 1.7;
cursor: text;
position: relative;
}
h1 {
font-size: 1.8em;
border-bottom: 1px solid #ddd;
}
p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}
h2 {
font-size: 1.4em;
border-bottom: 1px solid #eee;
}
ul, ol {
padding-left: 20px;
}
a {
color: #4183c4;
text-decoration: none;
text-decoration: none;
}
.highlight pre, pre {
background-color: #f8f8f8;
border: 1px solid #ddd;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}
pre {
word-wrap: normal;
}
dl {
padding: 0;
}
dl dt {
font-weight: bold;
font-style: italic;
padding: 0;
margin-top: 15px;
}
dl dd {
margin-bottom: 15px;
padding: 0 15px;
}
table {
width: 100%;
overflow: auto;
display: block;
}
table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
table th, table td {
border: 1px solid #ddd;
padding: 6px 13px;
}
table th {
font-weight: bold;
}
img {
max-width: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.task-list > li.task-list-item {
  list-style-type: none;
}
.task-list-item-checkbox {
  margin-left: -20px;
  vertical-align: middle;
}
</style>
");


#line 104 "MarkdownWebView.cshtml"
 if (Model.ContinuousResize) {


#line default
#line hidden
WriteLiteral(@"    <script>
    function size() { return document.body.scrollHeight; }
    function rs() { document.location.href = 'app://resize'; }; window.onsize = rs;
    var h = 0; setInterval(function() { if (size() != h) { h = size(); rs(); } }, 300);
    </script>
");


#line 110 "MarkdownWebView.cshtml"
}


#line default
#line hidden
WriteLiteral("<title>Readme</title></head>\n<body>");


#line 112 "MarkdownWebView.cshtml"
        WriteLiteral(Model.Body);

#line default
#line hidden
WriteLiteral("</body>\n</html>");

}
}

// NOTE: this is the default generated helper class. You may choose to extract it to a separate file 
// in order to customize it or share it between multiple templates, and specify the template's base 
// class via the @inherits directive.
public abstract class MarkdownWebViewBase
{

		// This field is OPTIONAL, but used by the default implementation of Generate, Write, WriteAttribute and WriteLiteral
		//
		System.IO.TextWriter __razor_writer;

		// This method is OPTIONAL
		//
		/// <summary>Executes the template and returns the output as a string.</summary>
		/// <returns>The template output.</returns>
		public string GenerateString ()
		{
			using (var sw = new System.IO.StringWriter ()) {
				Generate (sw);
				return sw.ToString ();
			}
		}

		// This method is OPTIONAL, you may choose to implement Write and WriteLiteral without use of __razor_writer
		// and provide another means of invoking Execute.
		//
		/// <summary>Executes the template, writing to the provided text writer.</summary>
		/// <param name="writer">The TextWriter to which to write the template output.</param>
		public void Generate (System.IO.TextWriter writer)
		{
			__razor_writer = writer;
			Execute ();
			__razor_writer = null;
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the template output without HTML escaping it.</summary>
		/// <param name="value">The literal value.</param>
		protected void WriteLiteral (string value)
		{
			__razor_writer.Write (value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the TextWriter without HTML escaping it.</summary>
		/// <param name="writer">The TextWriter to which to write the literal.</param>
		/// <param name="value">The literal value.</param>
		protected static void WriteLiteralTo (System.IO.TextWriter writer, string value)
		{
			writer.Write (value);
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a value to the template output, HTML escaping it if necessary.</summary>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected void Write (object value)
		{
			WriteTo (__razor_writer, value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes an object value to the TextWriter, HTML escaping it if necessary.</summary>
		/// <param name="writer">The TextWriter to which to write the value.</param>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected static void WriteTo (System.IO.TextWriter writer, object value)
		{
			if (value == null)
				return;

			var write = value as Action<System.IO.TextWriter>;
			if (write != null) {
				write (writer);
				return;
			}

			//NOTE: a more sophisticated implementation would write safe and pre-escaped values directly to the
			//instead of double-escaping. See System.Web.IHtmlString in ASP.NET 4.0 for an example of this.
			writer.Write(System.Net.WebUtility.HtmlEncode (value.ToString ()));
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to the template output.
		/// </summary>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		protected void WriteAttribute (string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			WriteAttributeTo (__razor_writer, name, prefix, suffix, values);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to a TextWriter.
		/// </summary>
		/// <param name="writer">The TextWriter to which to write the attribute.</param>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		///<remarks>Used by Razor helpers to write attributes.</remarks>
		protected static void WriteAttributeTo (System.IO.TextWriter writer, string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			// this is based on System.Web.WebPages.WebPageExecutingBase
			// Copyright (c) Microsoft Open Technologies, Inc.
			// Licensed under the Apache License, Version 2.0
			if (values.Length == 0) {
				// Explicitly empty attribute, so write the prefix and suffix
				writer.Write (prefix);
				writer.Write (suffix);
				return;
			}

			bool first = true;
			bool wroteSomething = false;

			for (int i = 0; i < values.Length; i++) {
				Tuple<string,object,bool> attrVal = values [i];
				string attPrefix = attrVal.Item1;
				object value = attrVal.Item2;
				bool isLiteral = attrVal.Item3;

				if (value == null) {
					// Nothing to write
					continue;
				}

				// The special cases here are that the value we're writing might already be a string, or that the 
				// value might be a bool. If the value is the bool 'true' we want to write the attribute name instead
				// of the string 'true'. If the value is the bool 'false' we don't want to write anything.
				//
				// Otherwise the value is another object (perhaps an IHtmlString), and we'll ask it to format itself.
				string stringValue;
				bool? boolValue = value as bool?;
				if (boolValue == true) {
					stringValue = name;
				} else if (boolValue == false) {
					continue;
				} else {
					stringValue = value as string;
				}

				if (first) {
					writer.Write (prefix);
					first = false;
				} else {
					writer.Write (attPrefix);
				}

				if (isLiteral) {
					writer.Write (stringValue ?? value);
				} else {
					WriteTo (writer, stringValue ?? value);
				}
				wroteSomething = true;
			}
			if (wroteSomething) {
				writer.Write (suffix);
			}
		}
		// This method is REQUIRED. The generated Razor subclass will override it with the generated code.
		//
		///<summary>Executes the template, writing output to the Write and WriteLiteral methods.</summary>.
		///<remarks>Not intended to be called directly. Call the Generate method instead.</remarks>
		public abstract void Execute ();

}
}
#pragma warning restore 1591


================================================
FILE: CodeHub/WebViews/MarkdownWebView.cshtml
================================================
@model MarkdownModel
<html><head>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0"/>
<style>
* {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: none;
}

body {
    color: #333;
    font-family: Helvetica, Arial, sans-serif;
    line-height: 1.42;
    font-size: @(Model.FontSize)px;
    line-height: 1.7;
    word-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
margin: 1em 0 15px;
padding: 0;
font-weight: bold;
line-height: 1.7;
cursor: text;
position: relative;
}
h1 {
font-size: 1.8em;
border-bottom: 1px solid #ddd;
}
p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}
h2 {
font-size: 1.4em;
border-bottom: 1px solid #eee;
}
ul, ol {
padding-left: 20px;
}
a {
color: #4183c4;
text-decoration: none;
text-decoration: none;
}
.highlight pre, pre {
background-color: #f8f8f8;
border: 1px solid #ddd;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}
pre {
word-wrap: normal;
}
dl {
padding: 0;
}
dl dt {
font-weight: bold;
font-style: italic;
padding: 0;
margin-top: 15px;
}
dl dd {
margin-bottom: 15px;
padding: 0 15px;
}
table {
width: 100%;
overflow: auto;
display: block;
}
table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
table th, table td {
border: 1px solid #ddd;
padding: 6px 13px;
}
table th {
font-weight: bold;
}
img {
max-width: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ul.task-list > li.task-list-item {
  list-style-type: none;
}
.task-list-item-checkbox {
  margin-left: -20px;
  vertical-align: middle;
}
</style>
@if (Model.ContinuousResize) {
    <script>
    function size() { return document.body.scrollHeight; }
    function rs() { document.location.href = 'app://resize'; }; window.onsize = rs;
    var h = 0; setInterval(function() { if (size() != h) { h = size(); rs(); } }, 300);
    </script>
}
<title>Readme</title></head>
<body>@{WriteLiteral(Model.Body);}</body>
</html>

================================================
FILE: CodeHub/WebViews/SyntaxHighlighterModel.cs
================================================
namespace CodeHub.WebViews
{
    public class SyntaxHighlighterModel
    {
        public string Content { get; }
        public string Theme { get; }
        public string Language { get; }
        public int FontSize { get; }
        public string Viewport { get; }

        public SyntaxHighlighterModel(string content, string theme, int fontSize, bool shouldZoom, bool lockWidth = false, string file = null)
        {
            Content = content;
            Theme = theme;
            FontSize = fontSize;

            var scale = shouldZoom ? 1.0m : 0.4m;
            var width = lockWidth ? "width=device-width" : string.Empty;
            Viewport = $"minimum-scale={scale} maximum-scale=4.0 {width}";

            if (file != null)
                Language = CalculateLanguage(System.IO.Path.GetExtension(file));
        }

        private static string CalculateLanguage(string extension)
        {
            if (extension != null)
            {
                switch (extension.ToLower().Trim('.', ' '))
                {
                    case "rb":
                    case "erb":
                        return "ruby";
                    case "go":
                        return "go";
                    case "cs":
                        return "cs";
                    case "fs":
                        return "fsharp";
                    case "py":
                        return "python";
                    case "js":
                        return "javascript";
                    case "css":
                        return "css";
                }
            }

            return string.Empty;
        }
    }
}



================================================
FILE: CodeHub/WebViews/SyntaxHighlighterWebView.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace CodeHub.WebViews
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "2.6.0.0")]
public partial class SyntaxHighlighterWebView : SyntaxHighlighterWebViewBase
{

#line hidden

#line 1 "SyntaxHighlighterWebView.cshtml"
public SyntaxHighlighterModel Model { get; set; }

#line default
#line hidden


public override void Execute()
{
WriteLiteral("<!DOCTYPE html>\n<html>\n<head>\n<meta");

WriteLiteral(" charset=\'utf-8\'");

WriteLiteral(">\n<meta");

WriteLiteral(" name=\"viewport\"");

WriteAttribute ("content", " content=\"", "\""

#line 6 "SyntaxHighlighterWebView.cshtml"
, Tuple.Create<string,object,bool> (" ", Model.Viewport

#line default
#line hidden
, false)
);
WriteLiteral(">\n<link");

WriteLiteral(" rel=\"stylesheet\"");

WriteAttribute ("href", " href=\"", "\""
, Tuple.Create<string,object,bool> ("", "WebResources/styles/", true)

#line 7 "SyntaxHighlighterWebView.cshtml"
           , Tuple.Create<string,object,bool> ("", Model.Theme

#line default
#line hidden
, false)
, Tuple.Create<string,object,bool> ("", ".css", true)
);
WriteLiteral(" />\n<script");

WriteLiteral(" src=\"WebResources/highlight.pack.js\"");

WriteLiteral("></script>\n<script");

WriteLiteral(" src=\"WebResources/highlight-line-numbers.min.js\"");

WriteLiteral(@"></script>
<script>
  hljs.initHighlightingOnLoad();
  hljs.initLineNumbersOnLoad();

  window.onload = function() {
    var elem = document.querySelector('.hljs');
    var style = getComputedStyle(elem);
    document.body.style.backgroundColor = style.backgroundColor;
  }
</script>
<style>
html {
    height: 100%;
    width: 100%;
}
body { 
    margin: 0; 
    min-height: 100%; 
    min-width: 100%;
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    font-size: ");


#line 31 "SyntaxHighlighterWebView.cshtml"
           Write(Model.FontSize);


#line default
#line hidden
WriteLiteral(@"px;
}

body > pre { 
    margin: 0em; 
    min-width: 100%; 
    min-height: 100%; 
    overflow: none;
}

body > pre * {
    overflow: none;
}

.hljs { 
    width: 100%;
    min-width: 100%;
    min-height: 100%; 
    box-sizing: border-box; 
    overflow: none;
}

code {
  display: block;
  width: 100%;
  min-width: 100%;
}

/* for block of numbers */
td.hljs-ln-numbers {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;

  text-align: center;
  color: #ccc;
  border-right: 1px solid #CCC;
  vertical-align: top;
  padding-right: 5px;

  /* your custom style here */
}

/* for block of code */
td.hljs-ln-code {
  padding-left: 10px;
}
</style>
</head>
<body>
    <pre><code");

WriteLiteral(" id=\"code\"");

WriteAttribute ("class", " class=\"", "\""

#line 84 "SyntaxHighlighterWebView.cshtml"
, Tuple.Create<string,object,bool> ("", Model.Language

#line default
#line hidden
, false)
);
WriteLiteral(">");


#line 84 "SyntaxHighlighterWebView.cshtml"
                                            Write(Model.Content);


#line default
#line hidden
WriteLiteral("</code></pre>\n</body>\n</html> ");

}
}

// NOTE: this is the default generated helper class. You may choose to extract it to a separate file 
// in order to customize it or share it between multiple templates, and specify the template's base 
// class via the @inherits directive.
public abstract class SyntaxHighlighterWebViewBase
{

		// This field is OPTIONAL, but used by the default implementation of Generate, Write, WriteAttribute and WriteLiteral
		//
		System.IO.TextWriter __razor_writer;

		// This method is OPTIONAL
		//
		/// <summary>Executes the template and returns the output as a string.</summary>
		/// <returns>The template output.</returns>
		public string GenerateString ()
		{
			using (var sw = new System.IO.StringWriter ()) {
				Generate (sw);
				return sw.ToString ();
			}
		}

		// This method is OPTIONAL, you may choose to implement Write and WriteLiteral without use of __razor_writer
		// and provide another means of invoking Execute.
		//
		/// <summary>Executes the template, writing to the provided text writer.</summary>
		/// <param name="writer">The TextWriter to which to write the template output.</param>
		public void Generate (System.IO.TextWriter writer)
		{
			__razor_writer = writer;
			Execute ();
			__razor_writer = null;
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the template output without HTML escaping it.</summary>
		/// <param name="value">The literal value.</param>
		protected void WriteLiteral (string value)
		{
			__razor_writer.Write (value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the TextWriter without HTML escaping it.</summary>
		/// <param name="writer">The TextWriter to which to write the literal.</param>
		/// <param name="value">The literal value.</param>
		protected static void WriteLiteralTo (System.IO.TextWriter writer, string value)
		{
			writer.Write (value);
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a value to the template output, HTML escaping it if necessary.</summary>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected void Write (object value)
		{
			WriteTo (__razor_writer, value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes an object value to the TextWriter, HTML escaping it if necessary.</summary>
		/// <param name="writer">The TextWriter to which to write the value.</param>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected static void WriteTo (System.IO.TextWriter writer, object value)
		{
			if (value == null)
				return;

			var write = value as Action<System.IO.TextWriter>;
			if (write != null) {
				write (writer);
				return;
			}

			//NOTE: a more sophisticated implementation would write safe and pre-escaped values directly to the
			//instead of double-escaping. See System.Web.IHtmlString in ASP.NET 4.0 for an example of this.
			writer.Write(System.Net.WebUtility.HtmlEncode (value.ToString ()));
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to the template output.
		/// </summary>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		protected void WriteAttribute (string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			WriteAttributeTo (__razor_writer, name, prefix, suffix, values);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to a TextWriter.
		/// </summary>
		/// <param name="writer">The TextWriter to which to write the attribute.</param>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		///<remarks>Used by Razor helpers to write attributes.</remarks>
		protected static void WriteAttributeTo (System.IO.TextWriter writer, string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			// this is based on System.Web.WebPages.WebPageExecutingBase
			// Copyright (c) Microsoft Open Technologies, Inc.
			// Licensed under the Apache License, Version 2.0
			if (values.Length == 0) {
				// Explicitly empty attribute, so write the prefix and suffix
				writer.Write (prefix);
				writer.Write (suffix);
				return;
			}

			bool first = true;
			bool wroteSomething = false;

			for (int i = 0; i < values.Length; i++) {
				Tuple<string,object,bool> attrVal = values [i];
				string attPrefix = attrVal.Item1;
				object value = attrVal.Item2;
				bool isLiteral = attrVal.Item3;

				if (value == null) {
					// Nothing to write
					continue;
				}

				// The special cases here are that the value we're writing might already be a string, or that the 
				// value might be a bool. If the value is the bool 'true' we want to write the attribute name instead
				// of the string 'true'. If the value is the bool 'false' we don't want to write anything.
				//
				// Otherwise the value is another object (perhaps an IHtmlString), and we'll ask it to format itself.
				string stringValue;
				bool? boolValue = value as bool?;
				if (boolValue == true) {
					stringValue = name;
				} else if (boolValue == false) {
					continue;
				} else {
					stringValue = value as string;
				}

				if (first) {
					writer.Write (prefix);
					first = false;
				} else {
					writer.Write (attPrefix);
				}

				if (isLiteral) {
					writer.Write (stringValue ?? value);
				} else {
					WriteTo (writer, stringValue ?? value);
				}
				wroteSomething = true;
			}
			if (wroteSomething) {
				writer.Write (suffix);
			}
		}
		// This method is REQUIRED. The generated Razor subclass will override it with the generated code.
		//
		///<summary>Executes the template, writing output to the Write and WriteLiteral methods.</summary>.
		///<remarks>Not intended to be called directly. Call the Generate method instead.</remarks>
		public abstract void Execute ();

}
}
#pragma warning restore 1591


================================================
FILE: CodeHub/WebViews/SyntaxHighlighterWebView.cshtml
================================================
@model SyntaxHighlighterModel
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name="viewport" content=" @(Model.Viewport)">
<link rel="stylesheet" href="WebResources/styles/@(Model.Theme).css" />
<script src="WebResources/highlight.pack.js"></script>
<script src="WebResources/highlight-line-numbers.min.js"></script>
<script>
  hljs.initHighlightingOnLoad();
  hljs.initLineNumbersOnLoad();

  window.onload = function() {
    var elem = document.querySelector('.hljs');
    var style = getComputedStyle(elem);
    document.body.style.backgroundColor = style.backgroundColor;
  }
</script>
<style>
html {
    height: 100%;
    width: 100%;
}
body { 
    margin: 0; 
    min-height: 100%; 
    min-width: 100%;
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    font-size: @(Model.FontSize)px;
}

body > pre { 
    margin: 0em; 
    min-width: 100%; 
    min-height: 100%; 
    overflow: none;
}

body > pre * {
    overflow: none;
}

.hljs { 
    width: 100%;
    min-width: 100%;
    min-height: 100%; 
    box-sizing: border-box; 
    overflow: none;
}

code {
  display: block;
  width: 100%;
  min-width: 100%;
}

/* for block of numbers */
td.hljs-ln-numbers {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;

  text-align: center;
  color: #ccc;
  border-right: 1px solid #CCC;
  vertical-align: top;
  padding-right: 5px;

  /* your custom style here */
}

/* for block of code */
td.hljs-ln-code {
  padding-left: 10px;
}
</style>
</head>
<body>
    <pre><code id="code" class="@Model.Language">@Model.Content</code></pre>
</body>
</html> 

================================================
FILE: CodeHub/WebViews/UpgradeDetailsModel.cs
================================================
namespace CodeHub.WebViews
{
    public class UpgradeDetailsModel
    {
        public string Price { get; }

        public bool IsPurchased { get; }

        public UpgradeDetailsModel(string price, bool isPurchased)
        {
            Price = price;
            IsPurchased = isPurchased;
        }
    }
}



================================================
FILE: CodeHub/WebViews/UpgradeDetailsWebView.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace CodeHub.WebViews
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "2.6.0.0")]
public partial class UpgradeDetailsWebView : UpgradeDetailsWebViewBase
{

#line hidden

#line 1 "UpgradeDetailsWebView.cshtml"
public UpgradeDetailsModel Model { get; set; }

#line default
#line hidden


public override void Execute()
{
WriteLiteral("<html><head>\n<meta");

WriteLiteral(" name=\"viewport\"");

WriteLiteral(" content=\"width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable" +
"=0\"");

WriteLiteral("/>\n<style>\n* {\n    box-sizing: border-box;\n}\nhtml {\n    -webkit-text-size-adjust:" +
" none;\n}\nbody {\n    color: #333;\n    font-family: Helvetica, Arial, sans-serif;\n" +
"    line-height: 1.42;\n    font-size: 16px;\n    line-height: 1.7;\n    word-wrap:" +
" break-word;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    margin: 1em 0 15px;\n    padding: 0;\n" +
"    font-weight: bold;\n    line-height: 1.7;\n    cursor: text;\n    position: rel" +
"ative;\n}\nh1 {\n    font-size: 1.8em;\n    border-bottom: 1px solid #ddd;\n}\np,\nbloc" +
"kquote,\nul,\nol,\ndl,\ntable,\npre {\n    margin: 15px 0;\n}\nh2 {\n    font-size: 1.4em" +
";\n    border-bottom: 1px solid #eee;\n}\nul,\nol {\n    padding-left: 20px;\n}\na {\n  " +
"  color: #4183c4;\n    text-decoration: none;\n    text-decoration: none;\n}\n.highl" +
"ight pre,\npre {\n    background-color: #f8f8f8;\n    border: 1px solid #ddd;\n    l" +
"ine-height: 19px;\n    overflow: auto;\n    padding: 6px 10px;\n    border-radius: " +
"3px;\n}\npre {\n    word-wrap: normal;\n}\ndl {\n    padding: 0;\n}\ndl dt {\n    font-we" +
"ight: bold;\n    font-style: italic;\n    padding: 0;\n    margin-top: 15px;\n}\ndl d" +
"d {\n    margin-bottom: 15px;\n    padding: 0 15px;\n}\ntable {\n    width: 100%;\n   " +
" overflow: auto;\n    display: block;\n}\ntable tr {\n    border-top: 1px solid #ccc" +
";\n    background-color: #fff;\n}\ntable tr:nth-child(2n) {\n    background-color: #" +
"f8f8f8;\n}\ntable th,\ntable td {\n    border: 1px solid #ddd;\n    padding: 6px 13px" +
";\n}\ntable th {\n    font-weight: bold;\n}\nimg {\n    max-width: 100%;\n    -moz-box-" +
"sizing: border-box;\n    box-sizing: border-box;\n}\nul.task-list > li.task-list-it" +
"em {\n    list-style-type: none;\n}\n.task-list-item-checkbox {\n    margin-left: -2" +
"0px;\n    vertical-align: middle;\n}\n.btn {\n    margin-top: 1.50em;\n    margin-bot" +
"tom: 1em;\n    padding: 1em 2em;\n    text-align: center;\n    display: inline-bloc" +
"k;\n    border-radius: 15px;\n    border: none;\n    transform: translateY(1px);\n  " +
"  color: #fff;\n}\n#buy {\n    background-color: #2ecc71;\n    box-shadow: 0 3px #27" +
"ae60;\n}\n#purchased {\n    background-color: #34495e;\n    box-shadow: 0 3px #2c3e5" +
"0;\n}\n");

WriteLiteral(@"@media (max-width: 640px) {
    .btn,
    #restore {
        display: block;
    }
    #restore {
        text-align: center;
    }
}
</style>
    <title>Pro Version</title>
</head>
<body>
    <p>
        <b>CodeHub Pro</b> gives you access the all the great features below:
    </p>

    <ul>
        <li><a");

WriteLiteral(" href=\"#private\"");

WriteLiteral(">Private Repositories</a></li>\n        <li><a");

WriteLiteral(" href=\"#enterprise\"");

WriteLiteral(">Enterprise Support</a></li>\n        <li><a");

WriteLiteral(" href=\"#push\"");

WriteLiteral(">Push Notifications</a></li>\n    </ul>\n\n    <p>\n        Before you buy please tak" +
"e a look at the detailed description for each feature below. \n        If you\'re " +
"unsure about any aspect of the Pro version, please feel free to \n        <a");

WriteLiteral(" href=\"mailto:codehubapp@gmail.com?Subject=CodeHub%20Pro%20Question\"");

WriteLiteral(" target=\"_blank\"");

WriteLiteral(">contact me</a>!\n    </p>\n\n");


#line 163 "UpgradeDetailsWebView.cshtml"
    

#line default
#line hidden

#line 163 "UpgradeDetailsWebView.cshtml"
     if (Model.IsPurchased)
    {


#line default
#line hidden
WriteLiteral("        <p>\n            <a");

WriteLiteral(" id=\"purchased\"");

WriteLiteral(" class=\"btn\"");

WriteLiteral(">Pro Already Enabled!</a>\n        </p>\n");


#line 168 "UpgradeDetailsWebView.cshtml"
    }
    else
    {
        if (Model.Price != null)
        {


#line default
#line hidden
WriteLiteral("            <p>\n                <a");

WriteLiteral(" id=\"buy\"");

WriteLiteral(" href=\"app://buy\"");

WriteLiteral(" class=\"btn\"");

WriteLiteral(">Purchase CodeHub Pro for ");


#line 174 "UpgradeDetailsWebView.cshtml"
                                                                             Write(Model.Price);


#line default
#line hidden
WriteLiteral("</a>\n            </p>\n");

WriteLiteral("            <p");

WriteLiteral(" id=\"restore\"");

WriteLiteral(">\n                <a");

WriteLiteral(" href=\"app://restore\"");

WriteLiteral(">Click here</a> to restore a previous purchase.\n            </p>\n");


#line 179 "UpgradeDetailsWebView.cshtml"
        }
    }


#line default
#line hidden
WriteLiteral("\n    <h2>Feature Details</h2>\n    <p>Below are the features that are available wh" +
"en purchasing CodeHub Pro.</p>\n\n    <h3");

WriteLiteral(" id=\"private\"");

WriteLiteral(@">Private Repositories</h3>
    <p>
        While CodeHub is free for all public projects, private repositories are only available with CodeHub Pro.
        The Pro edition allows access to all your private repositories and any private repositories any of your organizations have.
        Access to your private repositories is completely unrestricted. With CodeHub Pro, anything you are able to do with your open source repositories
        you are also capable of doing with your private repositories. Even more, access to private repositories, with CodeHub Pro, is applied to
        all your CodeHub accounts.
    </p>

    <h3");

WriteLiteral(" id=\"enterprise\"");

WriteLiteral(@">Enterprise Support</h3>
    <p>
        With CodeHub Pro, access to GitHub Enterprise instances becomes available for use. 
        Enterprise support allows for unlimited accounts, in CodeHub, accessing unlimited Enterprise instances - there are no restrictions!
        You can authenticate with your GitHub Enterprise instance in two ways: Basic Auth, or OAuth token. Unlike authentication
        with GitHub.com, there is no avilable web application flow, which means that you will be prompted for your credentials in a view that
        is native to CodeHub, not GitHub. This method, also known as Basic Auth, is safe. The username and password pair is <b>NOT</b> saved on the device
        nor is it ever sent anywhere but GitHub. Even more, the username and password is exchanged for an OAuth token on GitHub so you may revoke access
        at any time.
    </p>

    <p>
        If you feel unsafe authenticating with a username and password pair, you may choose to generate your own OAuth token on your enterprise instance and
        use it in CodeHub directly. This completely removes the need to type in your username and password within CodeHub. 
    </p>

    <h3");

WriteLiteral(" id=\"push\"");

WriteLiteral(">Push Notifications</h3>\n    <p><b>Note: Push Notifications are only available fo" +
"r GitHub.com accounts. Details below</b></p>\n\n    <img");

WriteLiteral(" width=\"400\"");

WriteLiteral(" src=\"http://codehub-app.com/assets/push-notification.png\"");

WriteLiteral(@" />

    <p>
        Push notifications allow you to take your typical GitHub notifications and push them directly to your mobile device.
        Users receive notifications for conversations in repositories they watch including:
    </p>

    <ul>
        <li>Issues and their comments</li>
        <li>Pull Requests and their comments</li>
        <li>Comments on any commits</li>
    </ul>

    <p>Notifications are also sent for conversations in unwatched repositories when the user is involved including:</p>

    <ul>
        <li>Mentions</li>
        <li>Issue assignments</li>
        <li>Commits the user authors or commits</li>
        <li>Any discussion in which the user actively participates</li>
    </ul>

    <p>
        Notifications are generated via a service owned and operated by Dillon Buchanan, creator of CodeHub. 
        These notifications are harvested from GitHub.com using a OAuth identification token generated just for 
        querying notifications on behalf of the user. This service, aptly called CodeHub-Push, is also open source and 
        <a");

WriteLiteral(" href=\"https://github.com/CodeHubApp/CodeHub-Push\"");

WriteLiteral(@">available for viewing on GitHub.</a>
    </p>
    <p>
        As mentioned above, push notifications are only available for GitHub.com accounts. Push notifications for 
        GitHub enterprise accounts are not available. This limitation is due to the fact that the notification service, 
        <a");

WriteLiteral(" href=\"https://github.com/CodeHubApp/CodeHub-Push\"");

WriteLiteral(@">CodeHub-Push</a>, cannot retrieve information from a enterprise
        instance. External access to a enterprise instance is almost always impossible due to network limitations as well as
        permission. For this reason, push notifications are unavailable for enterprise users - sorry.
    </p>
        
</body>
</html>");

}
}

// NOTE: this is the default generated helper class. You may choose to extract it to a separate file 
// in order to customize it or share it between multiple templates, and specify the template's base 
// class via the @inherits directive.
public abstract class UpgradeDetailsWebViewBase
{

		// This field is OPTIONAL, but used by the default implementation of Generate, Write, WriteAttribute and WriteLiteral
		//
		System.IO.TextWriter __razor_writer;

		// This method is OPTIONAL
		//
		/// <summary>Executes the template and returns the output as a string.</summary>
		/// <returns>The template output.</returns>
		public string GenerateString ()
		{
			using (var sw = new System.IO.StringWriter ()) {
				Generate (sw);
				return sw.ToString ();
			}
		}

		// This method is OPTIONAL, you may choose to implement Write and WriteLiteral without use of __razor_writer
		// and provide another means of invoking Execute.
		//
		/// <summary>Executes the template, writing to the provided text writer.</summary>
		/// <param name="writer">The TextWriter to which to write the template output.</param>
		public void Generate (System.IO.TextWriter writer)
		{
			__razor_writer = writer;
			Execute ();
			__razor_writer = null;
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the template output without HTML escaping it.</summary>
		/// <param name="value">The literal value.</param>
		protected void WriteLiteral (string value)
		{
			__razor_writer.Write (value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes a literal value to the TextWriter without HTML escaping it.</summary>
		/// <param name="writer">The TextWriter to which to write the literal.</param>
		/// <param name="value">The literal value.</param>
		protected static void WriteLiteralTo (System.IO.TextWriter writer, string value)
		{
			writer.Write (value);
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>Writes a value to the template output, HTML escaping it if necessary.</summary>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected void Write (object value)
		{
			WriteTo (__razor_writer, value);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>Writes an object value to the TextWriter, HTML escaping it if necessary.</summary>
		/// <param name="writer">The TextWriter to which to write the value.</param>
		/// <param name="value">The value.</param>
		/// <remarks>The value may be a Action<System.IO.TextWriter>, as returned by Razor helpers.</remarks>
		protected static void WriteTo (System.IO.TextWriter writer, object value)
		{
			if (value == null)
				return;

			var write = value as Action<System.IO.TextWriter>;
			if (write != null) {
				write (writer);
				return;
			}

			//NOTE: a more sophisticated implementation would write safe and pre-escaped values directly to the
			//instead of double-escaping. See System.Web.IHtmlString in ASP.NET 4.0 for an example of this.
			writer.Write(System.Net.WebUtility.HtmlEncode (value.ToString ()));
		}

		// This method is REQUIRED, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to the template output.
		/// </summary>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		protected void WriteAttribute (string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			WriteAttributeTo (__razor_writer, name, prefix, suffix, values);
		}

		// This method is REQUIRED if the template contains any Razor helpers, but you may choose to implement it differently
		//
		/// <summary>
		/// Conditionally writes an attribute to a TextWriter.
		/// </summary>
		/// <param name="writer">The TextWriter to which to write the attribute.</param>
		/// <param name="name">The name of the attribute.</param>
		/// <param name="prefix">The prefix of the attribute.</param>
		/// <param name="suffix">The suffix of the attribute.</param>
		/// <param name="values">Attribute values, each specifying a prefix, value and whether it's a literal.</param>
		///<remarks>Used by Razor helpers to write attributes.</remarks>
		protected static void WriteAttributeTo (System.IO.TextWriter writer, string name, string prefix, string suffix, params Tuple<string,object,bool>[] values)
		{
			// this is based on System.Web.WebPages.WebPageExecutingBase
			// Copyright (c) Microsoft Open Technologies, Inc.
			// Licensed under the Apache License, Version 2.0
			if (values.Length == 0) {
				// Explicitly empty attribute, so write the prefix and suffix
				writer.Write (prefix);
				writer.Write (suffix);
				return;
			}

			bool first = true;
			bool wroteSomething = false;

			for (int i = 0; i < values.Length; i++) {
				Tuple<string,object,bool> attrVal = values [i];
				string attPrefix = attrVal.Item1;
				object value = attrVal.Item2;
				bool isLiteral = attrVal.Item3;

				if (value == null) {
					// Nothing to write
					continue;
				}

				// The special cases here are that the value we're writing might already be a string, or that the 
				// value might be a bool. If the value is the bool 'true' we want to write the attribute name instead
				// of the string 'true'. If the value is the bool 'false' we don't want to write anything.
				//
				// Otherwise the value is another object (perhaps an IHtmlString), and we'll ask it to format itself.
				string stringValue;
				bool? boolValue = value as bool?;
				if (boolValue == true) {
					stringValue = name;
				} else if (boolValue == false) {
					continue;
				} else {
					stringValue = value as string;
				}

				if (first) {
					writer.Write (prefix);
					first = false;
				} else {
					writer.Write (attPrefix);
				}

				if (isLiteral) {
					writer.Write (stringValue ?? value);
				} else {
					WriteTo (writer, stringValue ?? value);
				}
				wroteSomething = true;
			}
			if (wroteSomething) {
				writer.Write (suffix);
			}
		}
		// This method is REQUIRED. The generated Razor subclass will override it with the generated code.
		//
		///<summary>Executes the template, writing output to the Write and WriteLiteral methods.</summary>.
		///<remarks>Not intended to be called directly. Call the Generate method instead.</remarks>
		public abstract void Execute ();

}
}
#pragma warning restore 1591


================================================
FILE: CodeHub/WebViews/UpgradeDetailsWebView.cshtml
================================================
@model UpgradeDetailsModel
<html><head>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0"/>
<style>
* {
    box-sizing: border-box;
}
html {
    -webkit-text-size-adjust: none;
}
body {
    color: #333;
    font-family: Helvetica, Arial, sans-serif;
    line-height: 1.42;
    font-size: 16px;
    line-height: 1.7;
    word-wrap: break-word;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 1em 0 15px;
    padding: 0;
    font-weight: bold;
    line-height: 1.7;
    cursor: text;
    position: relative;
}
h1 {
    font-size: 1.8em;
    border-bottom: 1px solid #ddd;
}
p,
blockquote,
ul,
ol,
dl,
table,
pre {
    margin: 15px 0;
}
h2 {
    font-size: 1.4em;
    border-bottom: 1px solid #eee;
}
ul,
ol {
    padding-left: 20px;
}
a {
    color: #4183c4;
    text-decoration: none;
    text-decoration: none;
}
.highlight pre,
pre {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    line-height: 19px;
    overflow: auto;
    padding: 6px 10px;
    border-radius: 3px;
}
pre {
    word-wrap: normal;
}
dl {
    padding: 0;
}
dl dt {
    font-weight: bold;
    font-style: italic;
    padding: 0;
    margin-top: 15px;
}
dl dd {
    margin-bottom: 15px;
    padding: 0 15px;
}
table {
    width: 100%;
    overflow: auto;
    display: block;
}
table tr {
    border-top: 1px solid #ccc;
    background-color: #fff;
}
table tr:nth-child(2n) {
    background-color: #f8f8f8;
}
table th,
table td {
    border: 1px solid #ddd;
    padding: 6px 13px;
}
table th {
    font-weight: bold;
}
img {
    max-width: 100%;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
ul.task-list > li.task-list-item {
    list-style-type: none;
}
.task-list-item-checkbox {
    margin-left: -20px;
    vertical-align: middle;
}
.btn {
    margin-top: 1.50em;
    margin-bottom: 1em;
    padding: 1em 2em;
    text-align: center;
    display: inline-block;
    border-radius: 15px;
    border: none;
    transform: translateY(1px);
    color: #fff;
}
#buy {
    background-color: #2ecc71;
    box-shadow: 0 3px #27ae60;
}
#purchased {
    background-color: #34495e;
    box-shadow: 0 3px #2c3e50;
}
@@media (max-width: 640px) {
    .btn,
    #restore {
        display: block;
    }
    #restore {
        text-align: center;
    }
}
</style>
    <title>Pro Version</title>
</head>
<body>
    <p>
        <b>CodeHub Pro</b> gives you access the all the great features below:
    </p>

    <ul>
        <li><a href="#private">Private Repositories</a></li>
        <li><a href="#enterprise">Enterprise Support</a></li>
        <li><a href="#push">Push Notifications</a></li>
    </ul>

    <p>
        Before you buy please take a look at the detailed description for each feature below. 
        If you're unsure about any aspect of the Pro version, please feel free to 
        <a href="mailto:codehubapp@gmail.com?Subject=CodeHub%20Pro%20Question" target="_blank">contact me</a>!
    </p>

    @if (Model.IsPurchased)
    {
        <p>
            <a id="purchased" class="btn">Pro Already Enabled!</a>
        </p>
    }
    else
    {
        if (Model.Price != null)
        {
            <p>
                <a id="buy" href="app://buy" class="btn">Purchase CodeHub Pro for @Model.Price</a>
            </p>
            <p id="restore">
                <a href="app://restore">Click here</a> to restore a previous purchase.
            </p>
        }
    }

    <h2>Feature Details</h2>
    <p>Below are the features that are available when purchasing CodeHub Pro.</p>

    <h3 id="private">Private Repositories</h3>
    <p>
        While CodeHub is free for all public projects, private repositories are only available with CodeHub Pro.
        The Pro edition allows access to all your private repositories and any private repositories any of your organizations have.
        Access to your private repositories is completely unrestricted. With CodeHub Pro, anything you are able to do with your open source repositories
        you are also capable of doing with your private repositories. Even more, access to private repositories, with CodeHub Pro, is applied to
        all your CodeHub accounts.
    </p>

    <h3 id="enterprise">Enterprise Support</h3>
    <p>
        With CodeHub Pro, access to GitHub Enterprise instances becomes available for use. 
        Enterprise support allows for unlimited accounts, in CodeHub, accessing unlimited Enterprise instances - there are no restrictions!
        You can authenticate with your GitHub Enterprise instance in two ways: Basic Auth, or OAuth token. Unlike authentication
        with GitHub.com, there is no avilable web application flow, which means that you will be prompted for your credentials in a view that
        is native to CodeHub, not GitHub. This method, also known as Basic Auth, is safe. The username and password pair is <b>NOT</b> saved on the device
        nor is it ever sent anywhere but GitHub. Even more, the username and password is exchanged for an OAuth token on GitHub so you may revoke access
        at any time.
    </p>

    <p>
        If you feel unsafe authenticating with a username and password pair, you may choose to generate your own OAuth token on your enterprise instance and
        use it in CodeHub directly. This completely removes the need to type in your username and password within CodeHub. 
    </p>

    <h3 id="push">Push Notifications</h3>
    <p><b>Note: Push Notifications are only available for GitHub.com accounts. Details below</b></p>

    <img width="400" src="http://codehub-app.com/assets/push-notification.png" />

    <p>
        Push notifications allow you to take your typical GitHub notifications and push them directly to your mobile device.
        Users receive notifications for conversations in repositories they watch including:
    </p>

    <ul>
        <li>Issues and their comments</li>
        <li>Pull Requests and their comments</li>
        <li>Comments on any commits</li>
    </ul>

    <p>Notifications are also sent for conversations in unwatched repositories when the user is involved including:</p>

    <ul>
        <li>Mentions</li>
        <li>Issue assignments</li>
        <li>Commits the user authors or commits</li>
        <li>Any discussion in which the user actively participates</li>
    </ul>

    <p>
        Notifications are generated via a service owned and operated by Dillon Buchanan, creator of CodeHub. 
        These notifications are harvested from GitHub.com using a OAuth identification token generated just for 
        querying notifications on behalf of the user. This service, aptly called CodeHub-Push, is also open source and 
        <a href="https://github.com/CodeHubApp/CodeHub-Push">available for viewing on GitHub.</a>
    </p>
    <p>
        As mentioned above, push notifications are only available for GitHub.com accounts. Push notifications for 
        GitHub enterprise accounts are not available. This limitation is due to the fact that the notification service, 
        <a href="https://github.com/CodeHubApp/CodeHub-Push">CodeHub-Push</a>, cannot retrieve information from a enterprise
        instance. External access to a enterprise instance is almost always impossible due to network limitations as well as
        permission. For this reason, push notifications are unavailable for enterprise users - sorry.
    </p>
        
</body>
</html>

================================================
FILE: CodeHub/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Humanizer.Core" version="2.2.0" targetFramework="portable45-net45+win8+wpa81" />
</packages>

================================================
FILE: CodeHub.Core/App.cs
================================================
using System.Net;
using MvvmCross.Core.ViewModels;

namespace CodeHub.Core
{
    /// <summary>
    /// Define the App type.
    /// </summary>
    public class App : MvxApplication
    {
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        public override void Initialize()
        {
            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
        }
    }
}

================================================
FILE: CodeHub.Core/CodeHub.Core.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{B7970173-9022-466B-B57A-7AB1E1F3145F}</ProjectGuid>
    <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <RootNamespace>CodeHub.Core</RootNamespace>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
    <AssemblyName>CodeHub.Core</AssemblyName>
    <TargetFrameworkIdentifier>Xamarin.iOS</TargetFrameworkIdentifier>
    <TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\iPhone\Debug</OutputPath>
    <DefineConstants>DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <ConsolePause>false</ConsolePause>
    <MtouchDebug>true</MtouchDebug>
    <CodesignKey>iPhone Developer</CodesignKey>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhone\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <ConsolePause>false</ConsolePause>
    <CodesignKey>iPhone Developer</CodesignKey>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="App.cs" />
    <Compile Include="Filters\IssuesFilterModel.cs" />
    <Compile Include="Filters\MyIssuesFilterModel.cs" />
    <Compile Include="Filters\NotificationsFilterModel.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Services\ApplicationService.cs" />
    <Compile Include="Services\IApplicationService.cs" />
    <Compile Include="ViewModels\Accounts\AddAccountViewModel.cs" />
    <Compile Include="ViewModels\Events\OrganizationEventsViewModel.cs" />
    <Compile Include="ViewModels\Events\UserEventsViewModel.cs" />
    <Compile Include="ViewModels\App\MenuViewModel.cs" />
    <Compile Include="ViewModels\ViewModelExtensions.cs" />
    <Compile Include="ViewModels\Events\BaseEventsViewModel.cs" />
    <Compile Include="ViewModels\Gists\GistsViewModel.cs" />
    <Compile Include="ViewModels\Gists\GistViewModel.cs" />
    <Compile Include="ViewModels\Issues\IssueMilestonesViewModel.cs" />
    <Compile Include="ViewModels\Issues\IssuesViewModel.cs" />
    <Compile Include="ViewModels\Issues\IssueViewModel.cs" />
    <Compile Include="ViewModels\Issues\MyIssuesViewModel.cs" />
    <Compile Include="ViewModels\Events\NewsViewModel.cs" />
    <Compile Include="ViewModels\Organizations\OrganizationsViewModel.cs" />
    <Compile Include="ViewModels\Organizations\OrganizationViewModel.cs" />
    <Compile Include="ViewModels\PullRequests\PullRequestCommitsViewModel.cs" />
    <Compile Include="ViewModels\PullRequests\PullRequestFilesViewModel.cs" />
    <Compile Include="ViewModels\PullRequests\PullRequestsViewModel.cs" />
    <Compile Include="ViewModels\PullRequests\PullRequestViewModel.cs" />
    <Compile Include="ViewModels\Repositories\RepositoriesViewModel.cs" />
    <Compile Include="ViewModels\Events\RepositoryEventsViewModel.cs" />
    <Compile Include="ViewModels\Repositories\RepositoryViewModel.cs" />
    <Compile Include="Utils\ViewModelExtensions.cs" />
    <Compile Include="ViewModels\App\StartupViewModel.cs" />
    <Compile Include="ViewModels\Issues\BaseIssuesViewModel.cs" />
    <Compile Include="Filters\BaseIssuesFilterModel.cs" />
    <Compile Include="ViewModels\Issues\IssueEditViewModel.cs" />
    <Compile Include="ViewModels\Issues\IssueAddViewModel.cs" />
    <Compile Include="Messages\SelectIssueLabelsMessage.cs" />
    <Compile Include="Messages\SelectedMilestoneMessage.cs" />
    <Compile Include="Messages\SelectedAssignedToMessage.cs" />
    <Compile Include="ViewModels\Issues\IssueAssignedToViewModel.cs" />
    <Compile Include="Messages\IssueAddMessage.cs" />
    <Compile Include="ViewModels\Issues\IssueModifyViewModel.cs" />
    <Compile Include="Messages\IssueEditMessage.cs" />
    <Compile Include="ViewModels\Accounts\OAuthLoginViewModel.cs" />
    <Compile Include="Messages\NotificationCountMessage.cs" />
    <Compile Include="Services\IPushNotificationsService.cs" />
    <Compile Include="ViewModels\Source\EditSourceViewModel.cs" />
    <Compile Include="Messages\SourceEditMessage.cs" />
    <Compile Include="Services\IMarkdownService.cs" />
    <Compile Include="Services\IFeaturesService.cs" />
    <Compile Include="ViewModels\Gists\GistCreateViewModel.cs" />
    <Compile Include="Messages\GistAddMessage.cs" />
    <Compile Include="ViewModels\Changesets\ChangesetsViewModel.cs" />
    <Compile Include="ViewModels\Changesets\ChangesetViewModel.cs" />
    <Compile Include="ViewModels\Changesets\CommitsViewModel.cs" />
    <Compile Include="ViewModels\Notifications\NotificationsViewModel.cs" />
    <Compile Include="ViewModels\LoadableViewModel.cs" />
    <Compile Include="Messages\PullRequestEditMessage.cs" />
    <Compile Include="Services\AccountsService.cs" />
    <Compile Include="Services\IAccountsService.cs" />
    <Compile Include="Services\IAlertDialogService.cs" />
    <Compile Include="Services\IViewModelTxService.cs" />
    <Compile Include="Services\ViewModelTxService.cs" />
    <Compile Include="Utils\CustomObservableCollection.cs" />
    <Compile Include="Utils\DateTimeExtensions.cs" />
    <Compile Include="Utils\FilterGroup.cs" />
    <Compile Include="Utils\RepositoryIdentifier.cs" />
    <Compile Include="ViewModels\BaseViewModel.cs" />
    <Compile Include="ViewModels\CollectionViewModel.cs" />
    <Compile Include="ViewModels\FilterableCollectionViewModel.cs" />
    <Compile Include="ViewModels\FilterGroup.cs" />
    <Compile Include="ViewModels\FilterModel.cs" />
    <Compile Include="ViewModels\IFilterableViewModel.cs" />
    <Compile Include="ViewModels\WebBrowserViewModel.cs" />
    <Compile Include="PresentationValues.cs" />
    <Compile Include="Utils\GitHubAvatar.cs" />
    <Compile Include="Utils\GitHubExtensions.cs" />
    <Compile Include="Utils\WeakReferenceExtensions.cs" />
    <Compile Include="Data\Language.cs" />
    <Compile Include="Data\LanguageRepository.cs" />
    <Compile Include="Data\TrendingRepository.cs" />
    <Compile Include="Messages\LogoutMessage.cs" />
    <Compile Include="Extensions\ObservableExtensions.cs" />
    <Compile Include="Extensions\TaskExtensions.cs" />
    <Compile Include="Extensions\StringExtensions.cs" />
    <Compile Include="Extensions\ReactiveListExtensions.cs" />
    <Compile Include="ViewModels\Organizations\TeamsViewModel.cs" />
    <Compile Include="Secrets.cs" />
    <Compile Include="Extensions\CommandExtensions.cs" />
    <Compile Include="ViewModels\Users\UserViewModel.cs" />
    <Compile Include="Data\Account.cs" />
    <Compile Include="Settings.cs" />
    <Compile Include="Services\IMessageService.cs" />
    <Compile Include="Services\MessageService.cs" />
    <Compile Include="ViewModels\Repositories\RepositoryItemViewModel.cs" />
    <Compile Include="Utils\Emojis.cs" />
    <Compile Include="ViewModels\ICanGoToViewModel.cs" />
    <Compile Include="Utils\OctokitClientFactory.cs" />
    <Compile Include="Utils\OctokitNetworkClient.cs" />
    <Compile Include="Services\INetworkActivityService.cs" />
    <Compile Include="ViewModels\Search\RepositoryExploreViewModel.cs" />
    <Compile Include="ViewModels\Repositories\TrendingRepositoriesViewModel.cs" />
    <Compile Include="ViewModels\Users\UsersViewModel.cs" />
    <Compile Include="ViewModels\Users\UserItemViewModel.cs" />
    <Compile Include="ViewModels\Gists\GistItemViewModel.cs" />
    <Compile Include="ViewModels\Issues\IssueLabelsViewModel.cs" />
    <Compile Include="Extensions\ExceptionExtensions.cs" />
    <Compile Include="Services\LoginService.cs" />
    <Compile Include="ViewModels\App\SupportViewModel.cs" />
    <Compile Include="ViewModels\App\FeedbackItemViewModel.cs" />
    <Compile Include="ViewModels\App\FeedbackViewModel.cs" />
    <Compile Include="ViewModels\IProvidesSearchKeyword.cs" />
    <Compile Include="ViewModels\ILoadableViewModel.cs" />
    <Compile Include="Extensions\GitHubClientExtensions.cs" />
    <Compile Include="Utils\GitHubList.cs" />
    <Compile Include="ViewModels\IListViewModel.cs" />
    <Compile Include="ViewModels\App\FeedbackComposerViewModel.cs" />
    <Compile Include="ViewModels\MarkdownAccessoryViewModel.cs" />
    <Compile Include="Services\IImgurService.cs" />
    <Compile Include="Services\ImgurService.cs" />
    <Compile Include="Data\ImgurResponse.cs" />
    <Compile Include="ViewModels\Search\UserExploreViewModel.cs" />
    <Compile Include="ViewModels\Search\ExploreViewModel.cs" />
    <Compile Include="Interactions.cs" />
  </ItemGroup>
  <ItemGroup />
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Windows" />
    <Reference Include="System.Core" />
    <Reference Include="System.Net.Http" />
    <Reference Include="Xamarin.iOS" />
    <Reference Include="System.Reactive.Interfaces">
      <HintPath>..\packages\Rx-Interfaces.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.Interfaces.dll</HintPath>
    </Reference>
    <Reference Include="System.Reactive.Core">
      <HintPath>..\packages\Rx-Core.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.Core.dll</HintPath>
    </Reference>
    <Reference Include="System.Reactive.Linq">
      <HintPath>..\packages\Rx-Linq.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.Linq.dll</HintPath>
    </Reference>
    <Reference Include="System.Reactive.PlatformServices">
      <HintPath>..\packages\Rx-PlatformServices.2.2.5\lib\portable-windows8+net45+wp8\System.Reactive.PlatformServices.dll</HintPath>
    </Reference>
    <Reference Include="Splat">
      <HintPath>..\packages\Splat.1.6.2\lib\Xamarin.iOS10\Splat.dll</HintPath>
    </Reference>
    <Reference Include="GitHubSharp">
      <HintPath>..\packages\GitHubClient.1.0.15\lib\portable45-net45+win8+wpa81\GitHubSharp.dll</HintPath>
    </Reference>
    <Reference Include="PCLStorage">
      <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-Xamarin.iOS+Xamarin.Mac\PCLStorage.dll</HintPath>
    </Reference>
    <Reference Include="PCLStorage.Abstractions">
      <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Akavache">
      <HintPath>..\packages\akavache.core.5.0.0\lib\Xamarin.iOS10\Akavache.dll</HintPath>
    </Reference>
    <Reference Include="Akavache.Sqlite3">
      <HintPath>..\packages\akavache.sqlite3.5.0.0\lib\Portable-Net45+Win8+WP8+Wpa81\Akavache.Sqlite3.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Platform">
      <HintPath>..\packages\MvvmCross.Platform.4.4.0\lib\Xamarin.iOS10\MvvmCross.Platform.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Platform.iOS">
      <HintPath>..\packages\MvvmCross.Platform.4.4.0\lib\Xamarin.iOS10\MvvmCross.Platform.iOS.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Core">
      <HintPath>..\packages\MvvmCross.Core.4.4.0\lib\Xamarin.iOS10\MvvmCross.Core.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.iOS">
      <HintPath>..\packages\MvvmCross.Core.4.4.0\lib\Xamarin.iOS10\MvvmCross.iOS.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Binding">
      <HintPath>..\packages\MvvmCross.Binding.4.4.0\lib\Xamarin.iOS10\MvvmCross.Binding.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Binding.iOS">
      <HintPath>..\packages\MvvmCross.Binding.4.4.0\lib\Xamarin.iOS10\MvvmCross.Binding.iOS.dll</HintPath>
    </Reference>
    <Reference Include="MvvmCross.Localization">
      <HintPath>..\packages\MvvmCross.Binding.4.4.0\lib\Xamarin.iOS10\MvvmCross.Localization.dll</HintPath>
    </Reference>
    <Reference Include="System.Net.Http.Extensions">
      <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Extensions.dll</HintPath>
    </Reference>
    <Reference Include="System.Net.Http.Primitives">
      <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Primitives.dll</HintPath>
    </Reference>
    <Reference Include="Humanizer">
      <HintPath>..\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll</HintPath>
    </Reference>
    <Reference Include="ReactiveUI">
      <HintPath>..\packages\reactiveui-core.7.4.0\lib\Xamarin.iOS10\ReactiveUI.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="SQLitePCLRaw.core">
      <HintPath>..\packages\SQLitePCLRaw.core.1.1.9\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath>
    </Reference>
    <Reference Include="SQLitePCLRaw.lib.e_sqlite3">
      <HintPath>..\packages\SQLitePCLRaw.lib.e_sqlite3.ios_unified.static.1.1.9\lib\Xamarin.iOS10\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
    </Reference>
    <Reference Include="SQLitePCLRaw.provider.internal">
      <HintPath>..\packages\SQLitePCLRaw.provider.internal.ios_unified.1.1.9\lib\Xamarin.iOS10\SQLitePCLRaw.provider.internal.dll</HintPath>
    </Reference>
    <Reference Include="SQLitePCLRaw.batteries_e_sqlite3">
      <HintPath>..\packages\SQLitePCLRaw.bundle_e_sqlite3.1.1.9\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_e_sqlite3.dll</HintPath>
    </Reference>
    <Reference Include="SQLitePCLRaw.batteries_v2">
      <HintPath>..\packages\SQLitePCLRaw.bundle_e_sqlite3.1.1.9\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_v2.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Settings.Abstractions">
      <HintPath>..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Settings">
      <HintPath>..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.dll</HintPath>
    </Reference>
    <Reference Include="Octokit">
      <HintPath>..\packages\Octokit.0.29.0\lib\netstandard1.1\Octokit.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Permissions.Abstractions">
      <HintPath>..\packages\Plugin.Permissions.2.2.1\lib\Xamarin.iOS10\Plugin.Permissions.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Permissions">
      <HintPath>..\packages\Plugin.Permissions.2.2.1\lib\Xamarin.iOS10\Plugin.Permissions.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Media.Abstractions">
      <HintPath>..\packages\Xam.Plugin.Media.3.1.3\lib\Xamarin.iOS10\Plugin.Media.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Plugin.Media">
      <HintPath>..\packages\Xam.Plugin.Media.3.1.3\lib\Xamarin.iOS10\Plugin.Media.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup />
  <ItemGroup>
    <Folder Include="ViewModels\Changesets\" />
    <Folder Include="ViewModels\Notifications\" />
    <Folder Include="Extensions\" />
    <Folder Include="ViewModels\Search\" />
  </ItemGroup>
  <ItemGroup>
    <None Include="packages.config" />
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
  <Import Project="..\packages\SQLitePCL.raw_basic.0.8.6\build\Xamarin.iOS10\SQLitePCL.raw_basic.targets" Condition="Exists('..\packages\SQLitePCL.raw_basic.0.8.6\build\Xamarin.iOS10\SQLitePCL.raw_basic.targets')" />
  <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
  <Import Project="..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets')" />
</Project>

================================================
FILE: CodeHub.Core/Data/Account.cs
================================================
using System.Collections.Generic;
using Newtonsoft.Json;

namespace CodeHub.Core.Data
{
    public class Account
    {
        public string Id => Username + Domain;

        public string OAuth { get; set; }

        public string Password { get; set; }

        public string Domain { get; set; }

        public string WebDomain { get; set; }

        public bool IsEnterprise { get; set; }

        public bool ShowOrganizationsInEvents { get; set; } = true;

        public bool ExpandOrganizations { get; set; } = true;

        public bool ShowRepositoryDescriptionInList { get; set; } = true;

        public bool? IsPushNotificationsEnabled { get; set; }

        public string Username { get; set; }

        public string AvatarUrl { get; set; }

        public string DefaultStartupView { get; set; }

        public string CodeEditTheme { get; set; } = "idea";

        private List<PinnedRepository> _pinnedRepositories = new List<PinnedRepository>();
        public List<PinnedRepository> PinnedRepositories
        {
            get { return _pinnedRepositories ?? new List<PinnedRepository>(); }
            set { _pinnedRepositories = value ?? new List<PinnedRepository>(); }
        }

        private Dictionary<string, Filter> _filters = new Dictionary<string, Filter>();
        public Dictionary<string, Filter> Filters
        {
            get { return _filters ?? new Dictionary<string, Filter>(); }
            set { _filters = value ?? new Dictionary<string, Filter>(); }
        }
    }

    public static class AccountExtensions
    {
        public static T GetFilter<T>(this Account account, string key) where T : class, new()
        {
            Filter filter = null;
            if (account.Filters?.TryGetValue(key, out filter) == false)
                return default(T);
            return filter?.GetData<T>() ?? new T();
        }

        public static void SetFilter(this Account account, string key, object filter)
        {
            var f = new Filter();
            f.SetData(filter);
            if (account.Filters == null)
                account.Filters = new Dictionary<string, Filter>();
            account.Filters[key] = f;
        }
    }

    public class PinnedRepository
    {
        public string Owner { get; set; }

        public string Slug { get; set; }

        public string Name { get; set; }

        public string ImageUri { get; set; }
    }

    public class Filter
    {
        public string RawData { get; set; }
    }

    public static class FilterExtensions
    {
        public static T GetData<T>(this Filter filter) where T : new()
        {
            try
            {
                return JsonConvert.DeserializeObject<T>(filter.RawData);
            }
            catch
            {
                return default(T);
            }
        }

        public static void SetData(this Filter filter, object o)
        {
            filter.RawData = JsonConvert.SerializeObject(o);
        }
    }
}



================================================
FILE: CodeHub.Core/Data/ImgurResponse.cs
================================================
namespace CodeHub.Core.Data
{
    public class ImgurResponse
    {
        public ImgurDataModel Data { get; set; }

        public bool Success { get; set; }

        public class ImgurDataModel
        {
            public string Link { get; set; }
        }
    }
}



================================================
FILE: CodeHub.Core/Data/Language.cs
================================================
using System.Diagnostics;

namespace CodeHub.Core.Data
{
    [DebuggerDisplay("{Name}")]
    public class Language
    {
        public Language() { }

        public Language(string name, string slug)
        {
            Name = name;
            Slug = slug;
        }

        public string Name { get; set; }

        public string Slug { get; set; }

        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;
            if (ReferenceEquals(this, obj))
                return true;
            if (obj.GetType() != typeof(Language))
                return false;
            var other = (Language)obj;
            return Name == other.Name && Slug == other.Slug;
        }

        public override int GetHashCode()
        {
            unchecked
            {
                return (Name != null ? Name.GetHashCode() : 0) ^ (Slug != null ? Slug.GetHashCode() : 0);
            }
        }
    }
}



================================================
FILE: CodeHub.Core/Data/LanguageRepository.cs
================================================
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Net.Http;
using GitHubSharp;

namespace CodeHub.Core.Data
{
    public class LanguageRepository
    {
        public static Language DefaultLanguage = new Language("All Languages", null);
        private const string LanguagesUrl = "http://trending.codehub-app.com/v2/languages";

        public async Task<List<Language>> GetLanguages()
        {
            var client = new HttpClient();
            var serializer = new SimpleJsonSerializer();
            var msg = await client.GetAsync(LanguagesUrl).ConfigureAwait(false);
            var content = await msg.Content.ReadAsStringAsync().ConfigureAwait(false);
            return serializer.Deserialize<List<Language>>(content);
        }
    }
}



================================================
FILE: CodeHub.Core/Data/TrendingRepository.cs
================================================
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Net.Http;

namespace CodeHub.Core.Data
{
    public interface ITrendingRepository
    {
        Task<IList<Octokit.Repository>> GetTrendingRepositories(string since, string language = null);
    }

    public class TrendingRepository : ITrendingRepository
    {
        private const string TrendingUrl = "http://trending.codehub-app.com/v2/trending";

        public async Task<IList<Octokit.Repository>> GetTrendingRepositories(string since, string language = null)
        {
            var query = "?since=" + Uri.EscapeDataString(since);
            if (!string.IsNullOrEmpty(language))
                query += string.Format("&language={0}", Uri.EscapeDataString(language));

            var client = new HttpClient();
            var serializer = new Octokit.Internal.SimpleJsonSerializer();
            var msg = await client.GetAsync(TrendingUrl + query).ConfigureAwait(false);
            var content = await msg.Content.ReadAsStringAsync().ConfigureAwait(false);
            return serializer.Deserialize<List<Octokit.Repository>>(content);
        }
    }
}



================================================
FILE: CodeHub.Core/Extensions/CommandExtensions.cs
================================================
using System;
using System.Reactive.Linq;

// ReSharper disable once CheckNamespace
namespace ReactiveUI
{
    public static class ReactiveCommandExtensions
    {
        public static IDisposable ExecuteNow<TParam, TResult>(
            this ReactiveCommand<TParam, TResult> cmd, TParam param = default(TParam))
            => cmd.CanExecute.Take(1).Where(x => x).Select(_ => param).InvokeReactiveCommand(cmd);

        public static IDisposable InvokeReactiveCommand<TParam, TResult>(
            this IObservable<TParam> obs, ReactiveCommand<TParam, TResult> cmd)
            => obs.InvokeCommand(cmd);

        public static IDisposable InvokeReactiveCommand<TParam, TResult>(
            this IObservable<TParam> obs, CombinedReactiveCommand<TParam, TResult> cmd)
            => obs.InvokeCommand(cmd);
    }
}

================================================
FILE: CodeHub.Core/Extensions/ExceptionExtensions.cs
================================================
namespace System
{
    public static class ExceptionExtensions
    {
        public static Exception GetInnerException(this Exception This)
        {
            var ex = This;
            while (ex.InnerException != null)
                ex = ex.InnerException;
            return ex;
        }
    }
}


================================================
FILE: CodeHub.Core/Extensions/GitHubClientExtensions.cs
================================================
using System;
using System.Collections.Generic;
using CodeHub.Core.Utils;

namespace Octokit
{
    public static class GitHubClientExtensions
    {
        public static GitHubList<T> RetrieveList<T>(
            this GitHubClient client,
            Uri uri,
            IDictionary<string, string> parameters = null)
        {
            return new GitHubList<T>(client, uri, parameters);
        }
    }
}


================================================
FILE: CodeHub.Core/Extensions/ObservableExtensions.cs
================================================
// Analysis disable once CheckNamespace
namespace System
{
    using System;
    using System.Windows.Input;
    using System.Reactive.Disposables;
    using System.Reactive.Linq;

    public static class ObservableExtensions
    {
        public static IDisposable BindCommand<T>(this IObservable<T> @this, ICommand command)
        {
            return command == null ? Disposable.Empty : @this.Where(x => command.CanExecute(x)).Subscribe(x => command.Execute(x));
        }

        public static IDisposable SubscribeError<T>(this IObservable<T> @this, Action<Exception> onError)
        {
            return @this.Subscribe(_ => { }, onError);
        }
    }
}


================================================
FILE: CodeHub.Core/Extensions/ReactiveListExtensions.cs
================================================
using System.Collections.Generic;

// ReSharper disable once CheckNamespace
namespace ReactiveUI
{
    public static class ReactiveListExtensions
    {
        public static void Reset<T>(this IReactiveList<T> @this, IEnumerable<T> items)
        {
            using (@this.SuppressChangeNotifications())
            {
                @this.Clear();
                @this.AddRange(items);
            }
        }
    }
}

================================================
FILE: CodeHub.Core/Extensions/StringExtensions.cs
================================================
// Analysis disable once CheckNamespace
namespace System
{
    public static class StringExtensions
    {
        public static bool ContainsKeyword(this string @this, string keyword)
        {
            if (string.IsNullOrEmpty(keyword))
                return true;
            if (string.IsNullOrEmpty(@this))
                return false;
            return @this.IndexOf(keyword, StringComparison.OrdinalIgnoreCase) >= 0;
        }
    }
}



================================================
FILE: CodeHub.Core/Extensions/TaskExtensions.cs
================================================
using System;
using System.Threading.Tasks;
using System.Reactive.Threading.Tasks;
using System.Reactive.Linq;
using ReactiveUI;

// Analysis disable once CheckNamespace
public static class TaskExtensions
{
    public static Task<T> WithTimeout<T>(this Task<T> task, TimeSpan timeout)
    {
        return task.ToObservable().Timeout(timeout).ToTask();
    }

    public static Task WithTimeout(this Task task, TimeSpan timeout)
    {
        return task.ToObservable().Timeout(timeout).ToTask();
    }

    public static IDisposable ToBackground<T>(this Task<T> task, Action<T> action)
    {
        return task.ToObservable()
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(action, HandleError);
    }

    public static IDisposable ToBackground<T>(this Task<T> task)
    {
        return task.ToObservable()
            .Subscribe(a => {}, HandleError);
    }

    public static IDisposable ToBackground(this Task task)
    {
        return task.ToObservable()
            .Subscribe(a => {}, HandleError);
    }

    public static IDisposable ToBackground(this Task task, Action action)
    {
        return task.ToObservable()
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(_ => action(), HandleError);
    }

    private static void HandleError(Exception e)
    {
        System.Diagnostics.Debug.WriteLine("Unable to process background task: " + e.Message);
    }
}




================================================
FILE: CodeHub.Core/Filters/BaseIssuesFilterModel.cs
================================================
using CodeHub.Core.ViewModels;

namespace CodeHub.Core.Filters
{
    public abstract class BaseIssuesFilterModel<T> : FilterModel<T>
    {
        public bool Ascending { get; set; }

        public Sort SortType { get; set; }

        protected BaseIssuesFilterModel()
        {
            SortType = Sort.None;
            Ascending = false;
        }

        public enum Sort
        {
            None,
            Created,
            Updated,
            Comments
        }
    }
}



================================================
FILE: CodeHub.Core/Filters/IssuesFilterModel.cs
================================================
using System;

namespace CodeHub.Core.Filters
{
    public class IssuesFilterModel : BaseIssuesFilterModel<IssuesFilterModel>
    {
        public string Labels { get; set; }

        public bool Open { get; set; }

        public DateTime? Since { get; set; }

        public string Mentioned { get; set; }

        public string Creator { get; set; }

        public string Assignee { get; set; }

        public MilestoneKeyValue Milestone { get; set; }

        public class MilestoneKeyValue
        {
            public string Name { get; set; }
            public bool IsMilestone { get; set; }
            public string Value { get; set; }
        }

        public IssuesFilterModel()
        {
            Ascending = false;
            Open = true;
        }

        /// <summary>
        /// Predefined 'Open' filter
        /// </summary>
        public static IssuesFilterModel CreateOpenFilter()
        {
            return new IssuesFilterModel { Open = true };
        }

        /// <summary>
        /// Predefined 'Closed' filter
        /// </summary>
        public static IssuesFilterModel CreateClosedFilter()
        {
            return new IssuesFilterModel { Open = false };
        }

        /// <summary>
        /// Predefined 'Mine' filter
        /// </summary>
        /// <returns>The mine filter.</returns>
        /// <param name="username">Username.</param>
        public static IssuesFilterModel CreateMineFilter(string username)
        {
            return new IssuesFilterModel { Assignee = username, Open = true };
        }

        public override IssuesFilterModel Clone()
        {
            return (IssuesFilterModel)this.MemberwiseClone();
        }

        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;
            if (ReferenceEquals(this, obj))
                return true;
            if (obj.GetType() != typeof(IssuesFilterModel))
                return false;
            var other = (IssuesFilterModel)obj;
            return Ascending == other.Ascending && Labels == other.Labels && Open == other.Open && Since == other.Since && SortType == other.SortType && Mentioned == other.Mentioned && Creator == other.Creator && Assignee == other.Assignee && Milestone == other.Milestone;
        }

        public override int GetHashCode()
        {
            unchecked
            {
                return Ascending.GetHashCode() ^ (Labels != null ? Labels.GetHashCode() : 0) ^ Open.GetHashCode() ^ Since.GetHashCode() ^ SortType.GetHashCode() ^ (Mentioned != null ? Mentioned.GetHashCode() : 0) ^ (Creator != null ? Creator.GetHashCode() : 0) ^ (Assignee != null ? Assignee.GetHashCode() : 0) ^ (Milestone != null ? Milestone.GetHashCode() : 0);
            }
        }
    }
}



================================================
FILE: CodeHub.Core/Filters/MyIssuesFilterModel.cs
================================================
using System;
using System.ComponentModel;

namespace CodeHub.Core.Filters
{
    public class MyIssuesFilterModel : BaseIssuesFilterModel<MyIssuesFilterModel>
    {
        public string Labels { get; set; }

        public Filter FilterType { get; set; }

        public bool Open { get; set; }

        public DateTime? Since { get; set; }

        public MyIssuesFilterModel()
        {
            Open = true;
            FilterType = Filter.All;
        }

        /// <summary>
        /// Predefined 'Open' filter
        /// </summary>
        public static MyIssuesFilterModel CreateOpenFilter()
        {
            return new MyIssuesFilterModel { FilterType = Filter.All, Open = true };
        }

        /// <summary>
        /// Predefined 'Closed' filter
        /// </summary>
        public static MyIssuesFilterModel CreateClosedFilter()
        {
            return new MyIssuesFilterModel { FilterType = Filter.All, Open = false };
        }

        public override MyIssuesFilterModel Clone()
        {
            return (MyIssuesFilterModel)this.MemberwiseClone();
        }

        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;
            if (ReferenceEquals(this, obj))
                return true;
            if (obj.GetType() != typeof(MyIssuesFilterModel))
                return false;
            var other = (MyIssuesFilterModel)obj;
            return Ascending == other.Ascending && Labels == other.Labels && FilterType == other.FilterType && Open == other.Open && Since == other.Since && SortType == other.SortType;
        }

        public override int GetHashCode()
        {
            unchecked
            {
                return Ascending.GetHashCode() ^ (Labels != null ? Labels.GetHashCode() : 0) ^ FilterType.GetHashCode() ^ Open.GetHashCode() ^ Since.GetHashCode() ^ SortType.GetHashCode();
            }
        }
        
        public enum Filter
        {
            [Description("Assigned To You")]
            Assigned,
            [Description("Created By You")]
            Created,
            [Description("Mentioning You")]
            Mentioned,
            [Description("Issues Subscribed To")]
            Subscribed,
            All
        }
    }
}



================================================
FILE: CodeHub.Core/Filters/NotificationsFilterModel.cs
================================================
using CodeHub.Core.ViewModels;

namespace CodeHub.Core.Filters
{
    public class NotificationsFilterModel : FilterModel<NotificationsFilterModel>
    {
        public bool All { get; set; }

        public bool Participating { get; set; }

        public NotificationsFilterModel()
        {
            All = false;
            Participating = false;
        }

        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;
            if (ReferenceEquals(this, obj))
                return true;
            if (obj.GetType() != typeof(NotificationsFilterModel))
                return false;
            var other = (NotificationsFilterModel)obj;
            return All == other.All && Participating == other.Participating;
        }
        

        public override int GetHashCode()
        {
            unchecked
            {
                return All.GetHashCode() ^ Participating.GetHashCode();
            }
        }

        public override NotificationsFilterModel Clone()
        {
            return (NotificationsFilterModel)this.MemberwiseClone();
        }

        public static NotificationsFilterModel CreateUnreadFilter()
        {
            return new NotificationsFilterModel { All = false, Participating = false };
        }

        public static NotificationsFilterModel CreateParticipatingFilter()
        {
            return new NotificationsFilterModel { All = false, Participating = true };
        }

        public static NotificationsFilterModel CreateAllFilter()
        {
            return new NotificationsFilterModel { All = true, Participating = false };
        }
    }
}



================================================
FILE: CodeHub.Core/Interactions.cs
================================================
using System;
using System.Reactive;
using System.Threading.Tasks;
using ReactiveUI;

namespace CodeHub.Core
{
    public class UserError
    {
        public string Title { get; }
        public string Message { get; }

        public UserError(string message, Exception exception = null)
            : this("Error", message, exception)
        {
        }
        
        public UserError(string title, string message, Exception exception = null)
        {
            Title = title;
            Message = exception == null ? message : $"{message} {ExceptionMessage(exception)}";
        }

        private static string ExceptionMessage(Exception exception)
        {
            if (exception is TaskCanceledException)
                return "The request timed out waiting for the server to respond.";
            else
                return exception?.Message;
        }
    }

    public static class Interactions
    {
        public static readonly Interaction<UserError, Unit> Errors = new Interaction<UserError, Unit>();
    }
}


================================================
FILE: CodeHub.Core/Messages/GistAddMessage.cs
================================================
namespace CodeHub.Core.Messages
{
    public class GistAddMessage
    {
        public Octokit.Gist Gist { get; }

        public GistAddMessage(Octokit.Gist gist)
        {
            Gist = gist;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/IssueAddMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class IssueAddMessage
    {
        public IssueModel Issue { get; }

        public IssueAddMessage(IssueModel issue)
        {
            Issue = issue;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/IssueEditMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class IssueEditMessage
    {
        public IssueModel Issue { get; }

        public IssueEditMessage(IssueModel issue)
        {
            Issue = issue;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/LogoutMessage.cs
================================================
namespace CodeHub.Core.Messages
{
    public class LogoutMessage
    {
    }
}



================================================
FILE: CodeHub.Core/Messages/NotificationCountMessage.cs
================================================
namespace CodeHub.Core.Messages
{
    public class NotificationCountMessage
    {
        public int Count { get; }

        public NotificationCountMessage(int count)
        {
            Count = count;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/PullRequestEditMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class PullRequestEditMessage
    {
        public PullRequestModel PullRequest { get; }

        public PullRequestEditMessage(PullRequestModel pullRequest)
        {
            PullRequest = pullRequest;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/SelectIssueLabelsMessage.cs
================================================
using System.Collections.Generic;
using System.Linq;
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class SelectIssueLabelsMessage
    {
        public LabelModel[] Labels { get; }

        public SelectIssueLabelsMessage(IEnumerable<LabelModel> labels)
        {
            Labels = labels.ToArray();
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/SelectedAssignedToMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class SelectedAssignedToMessage
    {
        public BasicUserModel User { get; }

        public SelectedAssignedToMessage(BasicUserModel user)
        {
            User = user;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/SelectedMilestoneMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class SelectedMilestoneMessage
    {
        public MilestoneModel Milestone { get; }

        public SelectedMilestoneMessage(MilestoneModel milestone)
        {
            Milestone = milestone;
        }
    }
}



================================================
FILE: CodeHub.Core/Messages/SourceEditMessage.cs
================================================
using GitHubSharp.Models;

namespace CodeHub.Core.Messages
{
    public class SourceEditMessage
    {
        public string OldSha;
        public string Data;
        public ContentUpdateModel Update;
    }
}



================================================
FILE: CodeHub.Core/PresentationValues.cs
================================================
namespace CodeHub.Core
{
    public class PresentationValues
    {
        /// <summary>
        /// Some sort of presentation value to indicate the view that we're switching to belongs at the root of the slideout
        /// </summary>
        public const string SlideoutRootPresentation = "__Slideout_Root_Presentation__";
    }
}


================================================
FILE: CodeHub.Core/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CodeHub.Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CodeHub.Core")]
[assembly: AssemblyCopyright("Copyright ©  2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("71b12732-c50c-4058-91d9-0be37f71af21")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


================================================
FILE: CodeHub.Core/Secrets.cs
================================================
using System;

namespace CodeHub.Core
{
    public static class Secrets
    {
        public static string GithubOAuthId
        {
            get { throw new InvalidOperationException("You must get your own Key"); }
        }

        public static string GithubOAuthSecret
        {
            get { throw new InvalidOperationException("You must get your own Secret"); }
        }

        public static string ErrorReportingKey
        {
            get { throw new InvalidOperationException("You must have a valid error reporting key"); }
        }
    }
}

================================================
FILE: CodeHub.Core/Services/AccountsService.cs
================================================
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;
using System.Threading.Tasks;
using Akavache;
using CodeHub.Core.Data;

namespace CodeHub.Core.Services
{
    public class AccountsService : IAccountsService
    {
        public Task<Account> GetActiveAccount() 
            => Get(Settings.DefaultAccount);

        public Task SetActiveAccount(Account account)
        {
            Settings.DefaultAccount = account == null ? null : GetKey(account);
            return Task.FromResult(false);
        }

        public Task<IEnumerable<Account>> GetAccounts()
            => BlobCache.UserAccount.GetAllObjects<Account>()
                        .Select(x => x.OrderBy(y => y.Username).AsEnumerable())
                        .ToTask();

        public Task Save(Account account)
            => BlobCache.UserAccount.InsertObject(GetKey(account), account).ToTask();

        public Task Remove(Account account)
            => BlobCache.UserAccount.Invalidate(GetKey(account)).ToTask();

        public Task<Account> Get(string domain, string username) => Get(GetKey(username, domain));

        public Task<Account> Get(string key)
            => BlobCache.UserAccount.GetObject<Account>(key)
                        .Catch(Observable.Return<Account>(null))
                        .ToTask();

        private string GetKey(Account account) 
            => GetKey(account.Username, account.Domain);

        private string GetKey(string username, string domain) 
            => "account_" + username + domain;
    }
}


================================================
FILE: CodeHub.Core/Services/ApplicationService.cs
================================================
using CodeHub.Core.Data;
using GitHubSharp;
using System;
using System.Threading.Tasks;
using CodeHub.Core.Utilities;

namespace CodeHub.Core.Services
{
    public class ApplicationService : IApplicationService
    {
        private readonly IAccountsService _accountsService;

        public Client Client { get; private set; }

        public Octokit.GitHubClient GitHubClient { get; private set; }

        public Account Account { get; private set; }

        public Action ActivationAction { get; set; }

        public ApplicationService(IAccountsService accountsService)
        {
            _accountsService = accountsService;
        }

        public void DeactivateUser()
        {
            _accountsService.SetActiveAccount(null).Wait();
            Account = null;
            Client = null;
        }

        public void SetUserActivationAction(Action action)
        {
            if (Account != null)
                action();
            else
                ActivationAction = action;
        }

        public Task UpdateActiveAccount() => _accountsService.Save(Account);

        public async Task LoginAccount(Account account)
        {
            var domain = account.Domain ?? Client.DefaultApi;
            Client client = null;
            Octokit.Credentials credentials = null;

            if (!string.IsNullOrEmpty(account.OAuth))
            {
                client = Client.BasicOAuth(account.OAuth, domain);
                credentials = new Octokit.Credentials(account.OAuth);
            }
            else if (account.IsEnterprise || !string.IsNullOrEmpty(account.Password))
            {
                client = Client.Basic(account.Username, account.Password, domain);
                credentials = new Octokit.Credentials(account.Username, account.Password);
            }

            var octoClient = OctokitClientFactory.Create(new Uri(domain), credentials);
            var user = await octoClient.User.Current();
            account.Username = user.Login;
            account.AvatarUrl = user.AvatarUrl;
            client.Username = user.Login;

            await _accountsService.Save(account);
            await _accountsService.SetActiveAccount(account);

            Account = account;
            Client = client;
            GitHubClient = octoClient;
        }
    }
}


================================================
FILE: CodeHub.Core/Services/IAccountsService.cs
================================================
using System.Collections.Generic;
using System.Threading.Tasks;
using CodeHub.Core.Data;

namespace CodeHub.Core.Services
{
    public interface IAccountsService
    {
        Task<Account> GetActiveAccount();

        Task SetActiveAccount(Account account);

        Task<IEnumerable<Account>> GetAccounts();

        Task Save(Account account);

        Task Remove(Account account);

        Task<Account> Get(string domain, string username);
    }
}

================================================
FILE: CodeHub.Core/Services/IAlertDialogService.cs
================================================
using System;
using System.Threading.Tasks;
using System.Reactive.Disposables;
using ReactiveUI;

namespace CodeHub.Core.Services
{
    public interface IAlertDialogService
    {
        Task<bool> PromptYesNo(string title, string message);

        Task Alert(string title, string message);

        Task<string> PromptTextBox(string title, string message, string defaultValue, string okTitle);

        void Show(string text);

        void Hide();
    }

    public static class AlertDialogServiceExtensions
    {
        public static IDisposable Activate(this IAlertDialogService @this, string text)
        {
            @this.Show(text);
            return Disposable.Create(@this.Hide);
        }

        public static IDisposable Activate(this IAlertDialogService @this, IObservable<bool> observable, string text)
        {
            return observable.Subscribe(x =>
            {
                if (x)
                    @this.Show(text);
                else
                    @this.Hide();
            });
        }

        public static IDisposable Activate(this IAlertDialogService @this, ReactiveCommand command, string text)
        {
            return command.IsExecuting.Subscribe(x =>
            {
                if (x)
                    @this.Show(text);
                else
                    @this.Hide();
            });
        }

        public static IDisposable AlertExecuting(this ReactiveCommand @this, IAlertDialogService dialogFactory, string text)
        {
            return @this.IsExecuting.Subscribe(x =>
            {
                if (x)
                    dialogFactory.Show(text);
                else
                    dialogFactory.Hide();
            });
        }
    }
}



================================================
FILE: CodeHub.Core/Services/IApplicationService.cs
================================================
using System;
using System.Threading.Tasks;
using CodeHub.Core.Data;

namespace CodeHub.Core.Services
{
    public interface IApplicationService
    {
        GitHubSharp.Client Client { get; }

        Octokit.GitHubClient GitHubClient { get; }
 
        Account Account { get; }

        Task UpdateActiveAccount();

        void DeactivateUser();

        void SetUserActivationAction(Action action);

        Action ActivationAction { get; set; }

        Task LoginAccount(Account account);
    }
}

================================================
FILE: CodeHub.Core/Services/IFeaturesService.cs
================================================
using System.Threading.Tasks;

namespace CodeHub.Core.Services
{
    public interface IFeaturesService
    {
        bool IsProEnabled { get; }

        void ActivateProDirect();

        Task ActivatePro();

        Task RestorePro();
    }
}



================================================
FILE: CodeHub.Core/Services/IImgurService.cs
================================================
using System.Threading.Tasks;
using CodeHub.Core.Data;

namespace CodeHub.Core.Services
{
    public interface IImgurService
    {
        Task<ImgurResponse> SendImage(byte[] data);
    }
}



================================================
FILE: CodeHub.Core/Services/IMarkdownService.cs
================================================
using System.Threading.Tasks;

namespace CodeHub.Core.Services
{
    public interface IMarkdownService
    {
        Task<string> Convert(string s);
    }
}



================================================
FILE: CodeHub.Core/Services/IMessageService.cs
================================================
using System;
using System.Collections.Generic;

namespace CodeHub.Core.Services
{
    public interface IMessageService
    {
        void Send<T>(T message);

        IDisposable Listen<T>(Action<T> action);
    }
}

================================================
FILE: CodeHub.Core/Services/INetworkActivityService.cs
================================================
using System;
using System.Reactive.Disposables;

namespace CodeHub.Core.Services
{
    public interface INetworkActivityService
    {
        void PushNetworkActive();

        void PopNetworkActive();
    }

    public static class NetworkActivityServiceExtensions
    {
        public static IDisposable ActivateNetwork(this INetworkActivityService @this)
        {
            @this.PushNetworkActive();
            return Disposable.Create(@this.PopNetworkActive);
        }
    }
}


================================================
FILE: CodeHub.Core/Services/IPushNotificationsService.cs
================================================
using System.Threading.Tasks;

namespace CodeHub.Core.Services
{
    public interface IPushNotificationsService
    {
        Task Register();

        Task Deregister();
    }
}



================================================
FILE: CodeHub.Core/Services/IViewModelTxService.cs
================================================
namespace CodeHub.Core.Services
{
    public interface IViewModelTxService
    {
        void Add(object obj);

        object Get();
    }
}



================================================
FILE: CodeHub.Core/Services/ImgurService.cs
================================================
using System;
using System.Threading.Tasks;
using System.Net.Http;
using Newtonsoft.Json;
using CodeHub.Core.Data;

namespace CodeHub.Core.Services
{
    public class ImgurService : IImgurService
    {
        private const string AuthorizationClientId = "4d2779fd2cc56cb";
        private const string ImgurPostUrl = "https://api.imgur.com/3/image";

        public async Task<ImgurResponse> SendImage(byte[] data)
        {
            var client = new HttpClient();
            client.Timeout = new TimeSpan(0, 0, 30);
            client.DefaultRequestHeaders.Add("Authorization", "Client-ID " + AuthorizationClientId);
            var body = JsonConvert.SerializeObject(new { image = Convert.ToBase64String(data) });
            var content = new StringContent(body, System.Text.Encoding.UTF8, "application/json");
            var response = await client.PostAsync(ImgurPostUrl, content).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                throw new InvalidOperationException("Unable to post to Imgur! " + response.ReasonPhrase);
            var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
            return JsonConvert.DeserializeObject<ImgurResponse>(responseBody);
        }
    }
}



================================================
FILE: CodeHub.Core/Services/LoginService.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using CodeHub.Core.Data;
using CodeHub.Core.Utilities;

namespace CodeHub.Core.Services
{
    public interface ILoginService
    {
        Task LoginWithToken(string clientId, string clientSecret, string code, string redirect, string requestDomain, string apiDomain);

        Task LoginWithToken(string apiDomain, string webDomain, string token, bool enterprise);

        Task LoginWithBasic(string domain, string user, string pass, string twoFactor = null);
    }

    public class LoginService : ILoginService
    {
        private static readonly string[] Scopes = { "user", "repo", "notifications", "gist" };

        private readonly IApplicationService _applicationService;
        private readonly IAccountsService _accountsService;

        public LoginService(
            IAccountsService accountsService,
            IApplicationService applicationService)
        {
            _accountsService = accountsService;
            _applicationService = applicationService;
        }

        public async Task LoginWithToken(string clientId, string clientSecret, string code, string redirect, string requestDomain, string apiDomain)
        {
            var oauthRequest = new Octokit.OauthTokenRequest(clientId, clientSecret, code)
            {
                RedirectUri = new Uri(redirect)
            };

            var client = new Octokit.GitHubClient(OctokitClientFactory.UserAgent);
            var token = await client.Oauth.CreateAccessToken(oauthRequest);

            var credentials = new Octokit.Credentials(token.AccessToken);
            client = OctokitClientFactory.Create(new Uri(apiDomain), credentials);

            var user = await client.User.Current();
            var account = await _accountsService.Get(apiDomain, user.Login);

            account = account ?? new Account { Username = user.Login };
            account.OAuth = token.AccessToken;
            account.AvatarUrl = user.AvatarUrl;
            account.Domain = apiDomain;
            account.WebDomain = requestDomain;

            await _accountsService.Save(account);
            await _applicationService.LoginAccount(account);
        }

        public async Task LoginWithToken(string apiDomain, string webDomain, string token, bool enterprise)
        {
            if (string.IsNullOrEmpty(token))
                throw new ArgumentException("Token is invalid");
            if (apiDomain != null && !Uri.IsWellFormedUriString(apiDomain, UriKind.Absolute))
                throw new ArgumentException("API Domain is invalid");
            if (webDomain != null && !Uri.IsWellFormedUriString(webDomain, UriKind.Absolute))
                throw new ArgumentException("Web Domain is invalid");

            var credentials = new Octokit.Credentials(token);
            var client = OctokitClientFactory.Create(new Uri(apiDomain), credentials);
            var userInfo = await client.User.Current();

            var scopes = await GetScopes(apiDomain, userInfo.Login, token);
            CheckScopes(scopes);

            var account = (await _accountsService.Get(apiDomain, userInfo.Login)) ?? new Account();
            account.Username = userInfo.Login;
            account.Domain = apiDomain;
            account.WebDomain = webDomain;
            account.IsEnterprise = enterprise;
            account.OAuth = token;
            account.AvatarUrl = userInfo.AvatarUrl;

            await _accountsService.Save(account);
            await _applicationService.LoginAccount(account);
        }

        public async Task LoginWithBasic(string domain, string user, string pass, string twoFactor = null)
        {
            if (string.IsNullOrEmpty(user))
                throw new ArgumentException("Username is invalid");
            if (string.IsNullOrEmpty(pass))
                throw new ArgumentException("Password is invalid");
            if (domain == null || !Uri.IsWellFormedUriString(domain, UriKind.Absolute))
                throw new ArgumentException("Domain is invalid");

            var newAuthorization = new Octokit.NewAuthorization(
                $"CodeHub: {user}", Scopes, Guid.NewGuid().ToString());

            var credentials = new Octokit.Credentials(user, pass);
            var client = OctokitClientFactory.Create(new Uri(domain), credentials);

            var authorization = await (twoFactor == null
                                ? client.Authorization.Create(newAuthorization)
                                : client.Authorization.Create(newAuthorization, twoFactor));

            var existingAccount = await _accountsService.Get(domain, user);
            var account = existingAccount ?? new Account
            {
                Username = user,
                IsEnterprise = true,
                WebDomain = domain,
                Domain = domain
            };

            account.OAuth = authorization.Token;

            await _applicationService.LoginAccount(account);
        }

        private static async Task<List<string>> GetScopes(string domain, string username, string token)
        {
            var client = new HttpClient();
            var authToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", username, token)));
            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authToken);
            domain = (domain.EndsWith("/", StringComparison.Ordinal) ? domain : domain + "/") + "user";
            var response = await client.GetAsync(domain);

            if (!response.Headers.TryGetValues("X-OAuth-Scopes", out IEnumerable<string> scopes))
                return new List<string>();

            var values = scopes.FirstOrDefault() ?? string.Empty;
            return values.Split(',').Select(x => x.Trim()).ToList();
        }

        private static void CheckScopes(IEnumerable<string> scopes)
        {
            var missing = OctokitClientFactory.Scopes.Except(scopes).ToList();
            if (missing.Any())
                throw new InvalidOperationException("Missing scopes! You are missing access to the following " +
                    "scopes that are necessary for CodeHub to operate correctly: " + string.Join(", ", missing));
        }
    }
}


================================================
FILE: CodeHub.Core/Services/MessageService.cs
================================================
using System;
using System.Collections.Generic;

namespace CodeHub.Core.Services
{
    public class MessageService : IMessageService
    {
        private readonly IList<Tuple<Type, WeakReference>> _subscriptions = new List<Tuple<Type, WeakReference>>();

        public IDisposable Listen<T>(Action<T> action)
        {
            var obj = Tuple.Create(typeof(T), new WeakReference(action));
            lock (_subscriptions)
                _subscriptions.Add(obj);
            return new Reference(action, () => _subscriptions.Remove(obj));
        }

        public void Send<T>(T message)
        {
            lock (_subscriptions)
            {
                var shouldRemove = new LinkedList<Tuple<Type, WeakReference>>();

                foreach (var sub in _subscriptions)
                {
                    if (!sub.Item2.IsAlive)
                        shouldRemove.AddLast(sub);

                    if (sub.Item1 == typeof(T))
                    {
                        var handle = sub.Item2.Target;
                        if (handle != null)
                        {
                            ((Action<T>)handle).Invoke(message);
                        }
                    }
                }

                foreach (var r in shouldRemove)
                    _subscriptions.Remove(r);
            }
        }

        private class Reference : IDisposable
        {
            private readonly Action _removal;
            private readonly object _handle;

            public Reference(object handle, Action removal)
            {
                _handle = handle;
                _removal = removal;
            }

            public void Dispose() => _removal.Invoke();
        }
    }
}


================================================
FILE: CodeHub.Core/Services/ViewModelTxService.cs
================================================
namespace CodeHub.Core.Services
{
    public class ViewModelTxService : IViewModelTxService
    {
        private object _data;

        public void Add(object obj)
        {
            _data = obj;
        }

        public object Get()
        {
            return _data;
        }
    }
}



================================================
FILE: CodeHub.Core/Settings.cs
================================================
using Plugin.Settings;
using Plugin.Settings.Abstractions;

namespace CodeHub.Core
{
    public static class Settings
    {
        private const string DefaultAccountKey = "DEFAULT_ACCOUNT";
        private const string ShouldStarKey = "SHOULD_STAR_CODEHUB";
        private const string ShouldWatchKey = "SHOULD_WATCH_CODEHUB";
        private const string HasSeenWelcomeKey = "HAS_SEEN_WELCOME_INTRO";
        private const string ProEditionKey = "com.dillonbuchanan.codehub.pro";
        private const string HasSeenOAuthKey = "HAS_SEEN_OAUTH_INFO";
        private const string ImgurUploadWarn = "IMGUR_UPLOAD_WARN";

        private static ISettings AppSettings => CrossSettings.Current;

        public static string DefaultAccount
        {
            get => AppSettings.GetValueOrDefault(DefaultAccountKey, null);
            set => AppSettings.AddOrUpdateValue(DefaultAccountKey, value);
        }

        public static bool ShouldStar
        {
            get => AppSettings.GetValueOrDefault(ShouldStarKey, false);
            set => AppSettings.AddOrUpdateValue(ShouldStarKey, value);
        }

        public static bool ShouldWatch
        {
            get => AppSettings.GetValueOrDefault(ShouldWatchKey, false);
            set => AppSettings.AddOrUpdateValue(ShouldWatchKey, value);
        }

        public static bool HasSeenWelcome
        {
            get => AppSettings.GetValueOrDefault(HasSeenWelcomeKey, false);
            set => AppSettings.AddOrUpdateValue(HasSeenWelcomeKey, value);
        }

        public static bool IsProEnabled
        {
            get => AppSettings.GetValueOrDefault(ProEditionKey, false);
            set => AppSettings.AddOrUpdateValue(ProEditionKey, value);
        }

        public static bool HasSeenOAuthWelcome
        {
            get => AppSettings.GetValueOrDefault(HasSeenOAuthKey, false);
            set => AppSettings.AddOrUpdateValue(HasSeenOAuthKey, value);
        }

        public static bool HasSeenImgurUploadWarn
        {
            get => AppSettings.GetValueOrDefault(ImgurUploadWarn, false);
            set => AppSettings.AddOrUpdateValue(ImgurUploadWarn, value);
        }
    }
}

================================================
FILE: CodeHub.Core/Utils/CustomObservableCollection.cs
================================================
using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Collections.Specialized;

namespace CodeHub.Core.Utils
{
    public class CustomObservableCollection<T> : ObservableCollection<T>
    {
        public CustomObservableCollection()
        {

        }

        public CustomObservableCollection(IEnumerable<T> collection)
            : base(collection)
        {

        }

        public CustomObservableCollection(List<T> list)
            : base(list)
        {

        }

        public virtual void AddRange(IEnumerable<T> collection)
        {
            if (collection == null) 
                throw new ArgumentNullException("collection");

            var added = false;
            var enumerable = collection as IList<T> ?? collection.ToList();
            foreach (var item in enumerable)
            {
                this.Items.Add(item);
                added = true;
            }

            if (added)
            {
                this.OnPropertyChanged(new PropertyChangedEventArgs("Count"));
                this.OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
                this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, enumerable.ToList()));
                // Cannot use NotifyCollectionChangedAction.Add, because Constructor supports only the 'Reset' action.
            }
        }

        public virtual void RemoveRange(IEnumerable<T> collection)
        {
            if (collection == null) 
                throw new ArgumentNullException("collection");

            var removed = false;
            var enumerable = collection as T[] ?? collection.ToArray();
            foreach (var item in enumerable.Where(item => this.Items.Remove(item)))
                removed = true;

            if (!removed) return;
            this.OnPropertyChanged(new PropertyChangedEventArgs("Count"));
            this.OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
            OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, enumerable.ToList()));
            // Cannot use NotifyCollectionChangedAction.Remove, because Constructor supports only the 'Reset' action.
        }

        public virtual void Reset(T item)
        {
            this.Reset(new List<T> { item });
        }

        public virtual void Reset(IEnumerable<T> collection)
        {
            if (collection == null)
                return;

            int count = this.Count;

            // Step 1: Clear the old items
            this.Items.Clear();

            // Step 2: Add new items
            foreach (T item in collection)
                this.Items.Add(item);

            // Step 3: Don't forget the event
            if (this.Count != count)
                this.OnPropertyChanged(new PropertyChangedEventArgs("Count"));
            this.OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
            this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
        }
    }
}



================================================
FILE: CodeHub.Core/Utils/DateTimeExtensions.cs
================================================
namespace System
{
    public static class DateTimeExtensions
    {
        public static int TotalDaysAgo(this DateTimeOffset d)
        {
            return Convert.ToInt32(Math.Round(DateTimeOffset.Now.Subtract(d).TotalDays));
        }
    }
}



================================================
FILE: CodeHub.Core/Utils/Emojis.cs
================================================
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace CodeHub.Core.Utilities
{
    public static class Emojis
    {
        private static readonly IDictionary<string, string> _emojis;

        static Emojis()
        {
            _emojis = new Dictionary<string, string>(1000, StringComparer.OrdinalIgnoreCase)
            {
                {"smile", "😄"},
                {"smiley", "😃"},
                {"grinning", "😀"},
                {"blush", "😊"},
                {"relaxed", "☺️"},
                {"wink", "😉"},
                {"heart_eyes", "😍"},
                {"kissing_heart", "😘"},
                {"kissing_closed_eyes", "😚"},
                {"kissing", "😗"},
                {"kissing_smiling_eyes", "😙"},
                {"stuck_out_tongue_winking_eye", "😜"},
                {"stuck_out_tongue_closed_eyes", "😝"},
                {"stuck_out_tongue", "😛"},
                {"flushed", "😳"},
                {"grin", "😁"},
                {"pensive", "😔"},
                {"relieved", "😌"},
                {"unamused", "😒"},
                {"disappointed", "😞"},
                {"persevere", "😣"},
                {"cry", "😢"},
                {"joy", "😂"},
                {"sob", "😭"},
                {"sleepy", "😪"},
                {"disappointed_relieved", "😥"},
                {"cold_sweat", "😰"},
                {"sweat_smile", "😅"},
                {"sweat", "😓"},
                {"weary", "😩"},
                {"tired_face", "😫"},
                {"fearful", "😨"},
                {"scream", "😱"},
                {"angry", "😠"},
                {"rage", "😡"},
                {"triumph", "😤"},
                {"confounded", "😖"},
                {"laughing", "😆"},
                {"satisfied", "😆"},
                {"yum", "😋"},
                {"mask", "😷"},
                {"sunglasses", "😎"},
                {"sleeping", "😴"},
                {"dizzy_face", "😵"},
                {"astonished", "😲"},
                {"worried", "😟"},
                {"frowning", "😦"},
                {"anguished", "😧"},
                {"smiling_imp", "😈"},
                {"imp", "👿"},
                {"open_mouth", "😮"},
                {"grimacing", "😬"},
                {"neutral_face", "😐"},
                {"confused", "😕"},
                {"hushed", "😯"},
                {"no_mouth", "😶"},
                {"innocent", "😇"},
                {"smirk", "😏"},
                {"expressionless", "😑"},
                {"man_with_gua_pi_mao", "👲"},
                {"man_with_turban", "👳"},
                {"cop", "👮"},
                {"construction_worker", "👷"},
                {"guardsman", "💂"},
                {"baby", "👶"},
                {"boy", "👦"},
                {"girl", "👧"},
                {"man", "👨"},
                {"woman", "👩"},
                {"older_man", "👴"},
                {"older_woman", "👵"},
                {"person_with_blond_hair", "👱"},
                {"angel", "👼"},
                {"princess", "👸"},
                {"smiley_cat", "😺"},
                {"smile_cat", "😸"},
                {"heart_eyes_cat", "😻"},
                {"kissing_cat", "😽"},
                {"smirk_cat", "😼"},
                {"scream_cat", "🙀"},
                {"crying_cat_face", "😿"},
                {"joy_cat", "😹"},
                {"pouting_cat", "😾"},
                {"japanese_ogre", "👹"},
                {"japanese_goblin", "👺"},
                {"see_no_evil", "🙈"},
                {"hear_no_evil", "🙉"},
                {"speak_no_evil", "🙊"},
                {"skull", "💀"},
                {"alien", "👽"},
                {"hankey", "💩"},
                {"poop", "💩"},
                {"shit", "💩"},
                {"fire", "🔥"},
                {"sparkles", "✨"},
                {"star2", "🌟"},
                {"dizzy", "💫"},
                {"boom", "💥"},
                {"collision", "💥"},
                {"anger", "💢"},
                {"sweat_drops", "💦"},
                {"droplet", "💧"},
                {"zzz", "💤"},
                {"dash", "💨"},
                {"ear", "👂"},
                {"eyes", "👀"},
                {"nose", "👃"},
                {"tongue", "👅"},
                {"lips", "👄"},
                {"+1", "👍"},
                {"thumbsup", "👍"},
                {"-1", "👎"},
                {"thumbsdown", "👎"},
                {"ok_hand", "👌"},
                {"facepunch", "👊"},
                {"punch", "👊"},
                {"fist", "✊"},
                {"v", "✌️"},
                {"wave", "👋"},
                {"hand", "✋"},
                {"raised_hand", "✋"},
                {"open_hands", "👐"},
                {"point_up_2", "👆"},
                {"point_down", "👇"},
                {"point_right", "👉"},
                {"point_left", "👈"},
                {"raised_hands", "🙌"},
                {"pray", "🙏"},
                {"point_up", "☝️"},
                {"clap", "👏"},
                {"muscle", "💪"},
                {"walking", "🚶"},
                {"runner", "🏃"},
                {"running", "🏃"},
           
Download .txt
gitextract_r1oivz_j/

├── .gitignore
├── CodeHub/
│   ├── CodeHub.csproj
│   ├── Octicons.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── WebViews/
│   │   ├── CommentsModel.cs
│   │   ├── CommentsWebView.cs
│   │   ├── CommentsWebView.cshtml
│   │   ├── DiffCommentModel.cs
│   │   ├── DiffModel.cs
│   │   ├── DiffWebView.cs
│   │   ├── DiffWebView.cshtml
│   │   ├── MarkdownModel.cs
│   │   ├── MarkdownWebView.cs
│   │   ├── MarkdownWebView.cshtml
│   │   ├── SyntaxHighlighterModel.cs
│   │   ├── SyntaxHighlighterWebView.cs
│   │   ├── SyntaxHighlighterWebView.cshtml
│   │   ├── UpgradeDetailsModel.cs
│   │   ├── UpgradeDetailsWebView.cs
│   │   └── UpgradeDetailsWebView.cshtml
│   └── packages.config
├── CodeHub.Core/
│   ├── App.cs
│   ├── CodeHub.Core.csproj
│   ├── Data/
│   │   ├── Account.cs
│   │   ├── ImgurResponse.cs
│   │   ├── Language.cs
│   │   ├── LanguageRepository.cs
│   │   └── TrendingRepository.cs
│   ├── Extensions/
│   │   ├── CommandExtensions.cs
│   │   ├── ExceptionExtensions.cs
│   │   ├── GitHubClientExtensions.cs
│   │   ├── ObservableExtensions.cs
│   │   ├── ReactiveListExtensions.cs
│   │   ├── StringExtensions.cs
│   │   └── TaskExtensions.cs
│   ├── Filters/
│   │   ├── BaseIssuesFilterModel.cs
│   │   ├── IssuesFilterModel.cs
│   │   ├── MyIssuesFilterModel.cs
│   │   └── NotificationsFilterModel.cs
│   ├── Interactions.cs
│   ├── Messages/
│   │   ├── GistAddMessage.cs
│   │   ├── IssueAddMessage.cs
│   │   ├── IssueEditMessage.cs
│   │   ├── LogoutMessage.cs
│   │   ├── NotificationCountMessage.cs
│   │   ├── PullRequestEditMessage.cs
│   │   ├── SelectIssueLabelsMessage.cs
│   │   ├── SelectedAssignedToMessage.cs
│   │   ├── SelectedMilestoneMessage.cs
│   │   └── SourceEditMessage.cs
│   ├── PresentationValues.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Secrets.cs
│   ├── Services/
│   │   ├── AccountsService.cs
│   │   ├── ApplicationService.cs
│   │   ├── IAccountsService.cs
│   │   ├── IAlertDialogService.cs
│   │   ├── IApplicationService.cs
│   │   ├── IFeaturesService.cs
│   │   ├── IImgurService.cs
│   │   ├── IMarkdownService.cs
│   │   ├── IMessageService.cs
│   │   ├── INetworkActivityService.cs
│   │   ├── IPushNotificationsService.cs
│   │   ├── IViewModelTxService.cs
│   │   ├── ImgurService.cs
│   │   ├── LoginService.cs
│   │   ├── MessageService.cs
│   │   └── ViewModelTxService.cs
│   ├── Settings.cs
│   ├── Utils/
│   │   ├── CustomObservableCollection.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── Emojis.cs
│   │   ├── FilterGroup.cs
│   │   ├── GitHubAvatar.cs
│   │   ├── GitHubExtensions.cs
│   │   ├── GitHubList.cs
│   │   ├── OctokitClientFactory.cs
│   │   ├── OctokitNetworkClient.cs
│   │   ├── RepositoryIdentifier.cs
│   │   ├── ViewModelExtensions.cs
│   │   └── WeakReferenceExtensions.cs
│   ├── ViewModels/
│   │   ├── Accounts/
│   │   │   ├── AddAccountViewModel.cs
│   │   │   └── OAuthLoginViewModel.cs
│   │   ├── App/
│   │   │   ├── FeedbackComposerViewModel.cs
│   │   │   ├── FeedbackItemViewModel.cs
│   │   │   ├── FeedbackViewModel.cs
│   │   │   ├── MenuViewModel.cs
│   │   │   ├── StartupViewModel.cs
│   │   │   └── SupportViewModel.cs
│   │   ├── BaseViewModel.cs
│   │   ├── Changesets/
│   │   │   ├── ChangesetViewModel.cs
│   │   │   ├── ChangesetsViewModel.cs
│   │   │   └── CommitsViewModel.cs
│   │   ├── CollectionViewModel.cs
│   │   ├── Events/
│   │   │   ├── BaseEventsViewModel.cs
│   │   │   ├── NewsViewModel.cs
│   │   │   ├── OrganizationEventsViewModel.cs
│   │   │   ├── RepositoryEventsViewModel.cs
│   │   │   └── UserEventsViewModel.cs
│   │   ├── FilterGroup.cs
│   │   ├── FilterModel.cs
│   │   ├── FilterableCollectionViewModel.cs
│   │   ├── Gists/
│   │   │   ├── GistCreateViewModel.cs
│   │   │   ├── GistItemViewModel.cs
│   │   │   ├── GistViewModel.cs
│   │   │   └── GistsViewModel.cs
│   │   ├── ICanGoToViewModel.cs
│   │   ├── IFilterableViewModel.cs
│   │   ├── IListViewModel.cs
│   │   ├── ILoadableViewModel.cs
│   │   ├── IProvidesSearchKeyword.cs
│   │   ├── Issues/
│   │   │   ├── BaseIssuesViewModel.cs
│   │   │   ├── IssueAddViewModel.cs
│   │   │   ├── IssueAssignedToViewModel.cs
│   │   │   ├── IssueEditViewModel.cs
│   │   │   ├── IssueLabelsViewModel.cs
│   │   │   ├── IssueMilestonesViewModel.cs
│   │   │   ├── IssueModifyViewModel.cs
│   │   │   ├── IssueViewModel.cs
│   │   │   ├── IssuesViewModel.cs
│   │   │   └── MyIssuesViewModel.cs
│   │   ├── LoadableViewModel.cs
│   │   ├── MarkdownAccessoryViewModel.cs
│   │   ├── Notifications/
│   │   │   └── NotificationsViewModel.cs
│   │   ├── Organizations/
│   │   │   ├── OrganizationViewModel.cs
│   │   │   ├── OrganizationsViewModel.cs
│   │   │   └── TeamsViewModel.cs
│   │   ├── PullRequests/
│   │   │   ├── PullRequestCommitsViewModel.cs
│   │   │   ├── PullRequestFilesViewModel.cs
│   │   │   ├── PullRequestViewModel.cs
│   │   │   └── PullRequestsViewModel.cs
│   │   ├── Repositories/
│   │   │   ├── RepositoriesViewModel.cs
│   │   │   ├── RepositoryItemViewModel.cs
│   │   │   ├── RepositoryViewModel.cs
│   │   │   └── TrendingRepositoriesViewModel.cs
│   │   ├── Search/
│   │   │   ├── ExploreViewModel.cs
│   │   │   ├── RepositoryExploreViewModel.cs
│   │   │   └── UserExploreViewModel.cs
│   │   ├── Source/
│   │   │   └── EditSourceViewModel.cs
│   │   ├── Users/
│   │   │   ├── UserItemViewModel.cs
│   │   │   ├── UserViewModel.cs
│   │   │   └── UsersViewModel.cs
│   │   ├── ViewModelExtensions.cs
│   │   └── WebBrowserViewModel.cs
│   └── packages.config
├── CodeHub.iOS/
│   ├── AkavacheSqliteLinkerOverride.cs
│   ├── AppDelegate.cs
│   ├── CodeHub.iOS.csproj
│   ├── CodeHubIcon.psd
│   ├── DialogElements/
│   │   ├── BooleanElement.cs
│   │   ├── ChangesetElement.cs
│   │   ├── CommentElement.cs
│   │   ├── CommitElement.cs
│   │   ├── DummyInputElement.cs
│   │   ├── Element.cs
│   │   ├── EntryElement.cs
│   │   ├── ExpandingInputElement.cs
│   │   ├── HtmlElement.cs
│   │   ├── IElementSizing.cs
│   │   ├── IssueElement.cs
│   │   ├── LabelElement.cs
│   │   ├── LoadMoreElement.cs
│   │   ├── MenuElement.cs
│   │   ├── MilestoneElement.cs
│   │   ├── MultilinedElement.cs
│   │   ├── NewsFeedElement.cs
│   │   ├── OwnerDrawnElement.cs
│   │   ├── PaginateElement.cs
│   │   ├── PullRequestElement.cs
│   │   ├── RootElement.cs
│   │   ├── Section.cs
│   │   ├── SplitButtonElement.cs
│   │   ├── SplitViewElement.cs
│   │   ├── StringElement.cs
│   │   └── UserElement.cs
│   ├── Entitlements.plist
│   ├── Images/
│   │   └── Images.cs
│   ├── Info.plist
│   ├── Launch.storyboard
│   ├── LinkerPleaseInclude.cs
│   ├── OcticonExtensions.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Resources/
│   │   └── Images.xcassets/
│   │       ├── AppIcons.appiconset/
│   │       │   └── Contents.json
│   │       ├── Avatar.imageset/
│   │       │   └── Contents.json
│   │       └── UnknownUser.imageset/
│   │           └── Contents.json
│   ├── Services/
│   │   ├── AlertDialogService.cs
│   │   ├── FeaturesService.cs
│   │   ├── InAppPurchaseService.cs
│   │   ├── MarkdownService.cs
│   │   ├── NetworkActivityService.cs
│   │   └── PushNotificationsService.cs
│   ├── Setup.cs
│   ├── TableViewCells/
│   │   ├── CommitCellView.cs
│   │   ├── CommitCellView.designer.cs
│   │   ├── CommitCellView.xib
│   │   ├── FeedbackCellView.cs
│   │   ├── FeedbackCellView.designer.cs
│   │   ├── FeedbackCellView.xib
│   │   ├── GistCellView.cs
│   │   ├── GistCellView.designer.cs
│   │   ├── GistCellView.xib
│   │   ├── IssueCellView.cs
│   │   ├── IssueCellView.designer.cs
│   │   ├── IssueCellView.xib
│   │   ├── MilestoneTableViewCell.cs
│   │   ├── MultilinedCellView.cs
│   │   ├── MultilinedCellView.designer.cs
│   │   ├── MultilinedCellView.xib
│   │   ├── NewsCellView.cs
│   │   ├── NewsCellView.designer.cs
│   │   ├── NewsCellView.xib
│   │   ├── PullRequestCellView.cs
│   │   ├── PullRequestCellView.designer.cs
│   │   ├── PullRequestCellView.xib
│   │   ├── RepositoryCellView.cs
│   │   ├── RepositoryCellView.designer.cs
│   │   ├── RepositoryCellView.xib
│   │   └── UserTableViewCell.cs
│   ├── TableViewSources/
│   │   ├── DialogTableViewSource.cs
│   │   ├── FeedbackTableViewSource.cs
│   │   ├── GistTableViewSource.cs
│   │   ├── ReactiveTableViewSource.cs
│   │   ├── RepositoryTableViewSource.cs
│   │   └── UserTableViewSource.cs
│   ├── Theme.cs
│   ├── TouchViewPresenter.cs
│   ├── Transitions/
│   │   └── SlideDownTransition.cs
│   ├── UrlRouterProvider.cs
│   ├── Utilities/
│   │   ├── EasyLayout.cs
│   │   ├── Graphics.cs
│   │   ├── Hud.cs
│   │   ├── NetworkActivity.cs
│   │   ├── ReactiveCommandExtensions.cs
│   │   ├── ShaType.cs
│   │   ├── UIImageExtensions.cs
│   │   ├── UIImageViewExtensions.cs
│   │   ├── UIKitExtensions.cs
│   │   ├── UIWindowExtensions.cs
│   │   └── ViewControllerExtensions.cs
│   ├── ViewControllers/
│   │   ├── Accounts/
│   │   │   ├── AccountsViewController.cs
│   │   │   ├── AddAccountView.xib
│   │   │   ├── AddAccountViewController.cs
│   │   │   ├── AddAccountViewController.designer.cs
│   │   │   ├── NewAccountViewController.cs
│   │   │   └── OAuthLoginViewController.cs
│   │   ├── Application/
│   │   │   ├── EnterpriseSupportViewController.cs
│   │   │   ├── FeedbackComposerViewController.cs
│   │   │   ├── FeedbackViewController.cs
│   │   │   ├── MenuViewController.cs
│   │   │   ├── StartupViewController.cs
│   │   │   ├── SupportViewController.cs
│   │   │   └── UpgradeViewController.cs
│   │   ├── BaseDialogViewController.cs
│   │   ├── BaseViewController.cs
│   │   ├── BaseWebViewController.cs
│   │   ├── Composer.cs
│   │   ├── DialogViewController.cs
│   │   ├── Events/
│   │   │   ├── BaseEventsViewController.cs
│   │   │   ├── NewsViewController.cs
│   │   │   ├── OrganizationEventsViewController.cs
│   │   │   ├── RepositoryEventsViewController.cs
│   │   │   └── UserEventsViewController.cs
│   │   ├── FilterViewController.cs
│   │   ├── Filters/
│   │   │   ├── IssueMilestonesFilterViewController.cs
│   │   │   ├── IssuesFilterViewController.cs
│   │   │   └── MyIssuesFilterViewController.cs
│   │   ├── Gists/
│   │   │   ├── GistCreateViewController.cs
│   │   │   ├── GistEditViewController.cs
│   │   │   ├── GistFileModifyViewController.cs
│   │   │   ├── GistFileViewController.cs
│   │   │   ├── GistViewController.cs
│   │   │   └── GistsViewController.cs
│   │   ├── MarkdownComposerViewController.cs
│   │   ├── MessageComposerViewController.cs
│   │   ├── MultipleChoiceViewController.cs
│   │   ├── Organizations/
│   │   │   ├── OrganizationViewController.cs
│   │   │   ├── OrganizationsViewController.cs
│   │   │   └── TeamsViewController.cs
│   │   ├── PullRequests/
│   │   │   └── PullRequestDiffViewController.cs
│   │   ├── Repositories/
│   │   │   ├── LanguagesViewController.cs
│   │   │   ├── PrivateRepositoryViewController.cs
│   │   │   ├── PrivateRepositoryViewController.designer.cs
│   │   │   ├── PrivateRepositoryViewController.xib
│   │   │   ├── ReadmeViewController.cs
│   │   │   ├── RepositoriesViewController.cs
│   │   │   ├── RepositoryViewController.cs
│   │   │   └── TrendingRepositoriesViewController.cs
│   │   ├── Search/
│   │   │   ├── ExploreViewController.cs
│   │   │   ├── RepositoryExploreViewController.cs
│   │   │   └── UserExploreViewController.cs
│   │   ├── Settings/
│   │   │   ├── DefaultStartupViewController.cs
│   │   │   ├── SettingsViewController.cs
│   │   │   ├── SyntaxHighlightExample
│   │   │   └── SyntaxHighlighterViewController.cs
│   │   ├── Source/
│   │   │   ├── AddSourceViewController.cs
│   │   │   ├── BranchesAndTagsViewController.cs
│   │   │   ├── BranchesViewController.cs
│   │   │   ├── CommitDiffViewController.cs
│   │   │   ├── FileSourceViewController.cs
│   │   │   ├── SourceTreeViewController.cs
│   │   │   └── TagsViewController.cs
│   │   ├── TableViewController.cs
│   │   ├── ThemedNavigationController.cs
│   │   ├── Users/
│   │   │   ├── UserViewController.cs
│   │   │   └── UsersViewController.cs
│   │   ├── ViewModelCollectionDrivenDialogViewController.cs
│   │   ├── ViewModelDrivenDialogViewController.cs
│   │   ├── Walkthrough/
│   │   │   ├── AboutViewController.cs
│   │   │   ├── AboutViewController.designer.cs
│   │   │   ├── AboutViewController.xib
│   │   │   ├── CardPageViewController.cs
│   │   │   ├── CardPageViewController.designer.cs
│   │   │   ├── CardPageViewController.xib
│   │   │   ├── FeedbackViewController.cs
│   │   │   ├── FeedbackViewController.designer.cs
│   │   │   ├── FeedbackViewController.xib
│   │   │   ├── GoProViewController.cs
│   │   │   ├── GoProViewController.designer.cs
│   │   │   ├── GoProViewController.xib
│   │   │   ├── OrgViewController.cs
│   │   │   ├── OrgViewController.designer.cs
│   │   │   ├── OrgViewController.xib
│   │   │   ├── PromoteViewController.cs
│   │   │   ├── PromoteViewController.designer.cs
│   │   │   ├── PromoteViewController.xib
│   │   │   ├── WelcomePageViewController.cs
│   │   │   ├── WelcomeViewController.cs
│   │   │   ├── WelcomeViewController.designer.cs
│   │   │   └── WelcomeViewController.xib
│   │   └── WebBrowserViewController.cs
│   ├── Views/
│   │   ├── AddRemoveView.cs
│   │   ├── BlurredAlertView.cs
│   │   ├── ButtonAccessoryView.cs
│   │   ├── EmptyListView.cs
│   │   ├── ExtendedUITextView.cs
│   │   ├── ImageAndTitleHeaderView.cs
│   │   ├── Issues/
│   │   │   ├── BaseIssuesView.cs
│   │   │   ├── IssueAddView.cs
│   │   │   ├── IssueAssignedToView.cs
│   │   │   ├── IssueEditView.cs
│   │   │   ├── IssueLabelsView.cs
│   │   │   ├── IssueMilestonesView.cs
│   │   │   ├── IssueView.cs
│   │   │   ├── IssuesView.cs
│   │   │   └── MyIssuesView.cs
│   │   ├── LoadingIndicatorView.cs
│   │   ├── MarkdownAccessoryView.cs
│   │   ├── MenuSectionView.cs
│   │   ├── MilestoneView.cs
│   │   ├── NotificationsView.cs
│   │   ├── ProfileButton.cs
│   │   ├── ProgressBarView.cs
│   │   ├── PullRequests/
│   │   │   ├── PullRequestCommitsView.cs
│   │   │   ├── PullRequestFilesView.cs
│   │   │   ├── PullRequestView.cs
│   │   │   └── PullRequestsView.cs
│   │   ├── RetryListView.cs
│   │   ├── ScrollingToolbarView.cs
│   │   ├── SlideUpTitleView.cs
│   │   ├── Source/
│   │   │   ├── ChangesetView.cs
│   │   │   ├── ChangesetsView.cs
│   │   │   ├── CommitsView.cs
│   │   │   └── EditSourceView.cs
│   │   ├── SourceTitleView.cs
│   │   ├── TrendingTitleButton.cs
│   │   └── UILabelWithLinks.cs
│   ├── WebResources/
│   │   ├── highlight-LICENSE
│   │   ├── highlight-line-numbers-LICENSE
│   │   ├── highlight.pack.js
│   │   ├── marked.js
│   │   └── styles/
│   │       ├── agate.css
│   │       ├── androidstudio.css
│   │       ├── arduino-light.css
│   │       ├── arta.css
│   │       ├── ascetic.css
│   │       ├── atelier-cave-dark.css
│   │       ├── atelier-cave-light.css
│   │       ├── atelier-dune-dark.css
│   │       ├── atelier-dune-light.css
│   │       ├── atelier-estuary-dark.css
│   │       ├── atelier-estuary-light.css
│   │       ├── atelier-forest-dark.css
│   │       ├── atelier-forest-light.css
│   │       ├── atelier-heath-dark.css
│   │       ├── atelier-heath-light.css
│   │       ├── atelier-lakeside-dark.css
│   │       ├── atelier-lakeside-light.css
│   │       ├── atelier-plateau-dark.css
│   │       ├── atelier-plateau-light.css
│   │       ├── atelier-savanna-dark.css
│   │       ├── atelier-savanna-light.css
│   │       ├── atelier-seaside-dark.css
│   │       ├── atelier-seaside-light.css
│   │       ├── atelier-sulphurpool-dark.css
│   │       ├── atelier-sulphurpool-light.css
│   │       ├── atom-one-dark.css
│   │       ├── atom-one-light.css
│   │       ├── brown-paper.css
│   │       ├── codepen-embed.css
│   │       ├── color-brewer.css
│   │       ├── darcula.css
│   │       ├── dark.css
│   │       ├── darkula.css
│   │       ├── default.css
│   │       ├── docco.css
│   │       ├── dracula.css
│   │       ├── far.css
│   │       ├── foundation.css
│   │       ├── github-gist.css
│   │       ├── github.css
│   │       ├── googlecode.css
│   │       ├── grayscale.css
│   │       ├── gruvbox-dark.css
│   │       ├── gruvbox-light.css
│   │       ├── hopscotch.css
│   │       ├── hybrid.css
│   │       ├── idea.css
│   │       ├── ir-black.css
│   │       ├── kimbie.dark.css
│   │       ├── kimbie.light.css
│   │       ├── magula.css
│   │       ├── mono-blue.css
│   │       ├── monokai-sublime.css
│   │       ├── monokai.css
│   │       ├── obsidian.css
│   │       ├── ocean.css
│   │       ├── paraiso-dark.css
│   │       ├── paraiso-light.css
│   │       ├── pojoaque.css
│   │       ├── purebasic.css
│   │       ├── qtcreator_dark.css
│   │       ├── qtcreator_light.css
│   │       ├── railscasts.css
│   │       ├── rainbow.css
│   │       ├── routeros.css
│   │       ├── school-book.css
│   │       ├── solarized-dark.css
│   │       ├── solarized-light.css
│   │       ├── sunburst.css
│   │       ├── tomorrow-night-blue.css
│   │       ├── tomorrow-night-bright.css
│   │       ├── tomorrow-night-eighties.css
│   │       ├── tomorrow-night.css
│   │       ├── tomorrow.css
│   │       ├── vs.css
│   │       ├── vs2015.css
│   │       ├── xcode.css
│   │       ├── xt256.css
│   │       └── zenburn.css
│   ├── XCallback/
│   │   ├── XCallbackProvider.cs
│   │   └── XCallbackQuery.cs
│   ├── iTunesArtwork
│   ├── iTunesArtwork@2x
│   └── packages.config
├── CodeHub.iOS.sln
├── CodeHub.psd
├── PRIVATE-POLICY.md
└── README.md
Download .txt
SYMBOL INDEX (1944 symbols across 332 files)

FILE: CodeHub.Core/App.cs
  class App (line 9) | public class App : MvxApplication
    method Initialize (line 14) | public override void Initialize()

FILE: CodeHub.Core/Data/Account.cs
  class Account (line 6) | public class Account
  class AccountExtensions (line 51) | public static class AccountExtensions
    method GetFilter (line 53) | public static T GetFilter<T>(this Account account, string key) where T...
    method SetFilter (line 61) | public static void SetFilter(this Account account, string key, object ...
  class PinnedRepository (line 71) | public class PinnedRepository
  class Filter (line 82) | public class Filter
  class FilterExtensions (line 87) | public static class FilterExtensions
    method GetData (line 89) | public static T GetData<T>(this Filter filter) where T : new()
    method SetData (line 101) | public static void SetData(this Filter filter, object o)

FILE: CodeHub.Core/Data/ImgurResponse.cs
  class ImgurResponse (line 3) | public class ImgurResponse
    class ImgurDataModel (line 9) | public class ImgurDataModel

FILE: CodeHub.Core/Data/Language.cs
  class Language (line 5) | [DebuggerDisplay("{Name}")]
    method Language (line 8) | public Language() { }
    method Language (line 10) | public Language(string name, string slug)
    method Equals (line 20) | public override bool Equals(object obj)
    method GetHashCode (line 32) | public override int GetHashCode()

FILE: CodeHub.Core/Data/LanguageRepository.cs
  class LanguageRepository (line 8) | public class LanguageRepository
    method GetLanguages (line 13) | public async Task<List<Language>> GetLanguages()

FILE: CodeHub.Core/Data/TrendingRepository.cs
  type ITrendingRepository (line 8) | public interface ITrendingRepository
    method GetTrendingRepositories (line 10) | Task<IList<Octokit.Repository>> GetTrendingRepositories(string since, ...
  class TrendingRepository (line 13) | public class TrendingRepository : ITrendingRepository
    method GetTrendingRepositories (line 17) | public async Task<IList<Octokit.Repository>> GetTrendingRepositories(s...

FILE: CodeHub.Core/Extensions/CommandExtensions.cs
  class ReactiveCommandExtensions (line 7) | public static class ReactiveCommandExtensions
    method ExecuteNow (line 9) | public static IDisposable ExecuteNow<TParam, TResult>(
    method InvokeReactiveCommand (line 13) | public static IDisposable InvokeReactiveCommand<TParam, TResult>(
    method InvokeReactiveCommand (line 17) | public static IDisposable InvokeReactiveCommand<TParam, TResult>(

FILE: CodeHub.Core/Extensions/ExceptionExtensions.cs
  class ExceptionExtensions (line 3) | public static class ExceptionExtensions
    method GetInnerException (line 5) | public static Exception GetInnerException(this Exception This)

FILE: CodeHub.Core/Extensions/GitHubClientExtensions.cs
  class GitHubClientExtensions (line 7) | public static class GitHubClientExtensions
    method RetrieveList (line 9) | public static GitHubList<T> RetrieveList<T>(

FILE: CodeHub.Core/Extensions/ObservableExtensions.cs
  class ObservableExtensions (line 9) | public static class ObservableExtensions
    method BindCommand (line 11) | public static IDisposable BindCommand<T>(this IObservable<T> @this, IC...
    method SubscribeError (line 16) | public static IDisposable SubscribeError<T>(this IObservable<T> @this,...

FILE: CodeHub.Core/Extensions/ReactiveListExtensions.cs
  class ReactiveListExtensions (line 6) | public static class ReactiveListExtensions
    method Reset (line 8) | public static void Reset<T>(this IReactiveList<T> @this, IEnumerable<T...

FILE: CodeHub.Core/Extensions/StringExtensions.cs
  class StringExtensions (line 4) | public static class StringExtensions
    method ContainsKeyword (line 6) | public static bool ContainsKeyword(this string @this, string keyword)

FILE: CodeHub.Core/Extensions/TaskExtensions.cs
  class TaskExtensions (line 8) | public static class TaskExtensions
    method WithTimeout (line 10) | public static Task<T> WithTimeout<T>(this Task<T> task, TimeSpan timeout)
    method WithTimeout (line 15) | public static Task WithTimeout(this Task task, TimeSpan timeout)
    method ToBackground (line 20) | public static IDisposable ToBackground<T>(this Task<T> task, Action<T>...
    method ToBackground (line 27) | public static IDisposable ToBackground<T>(this Task<T> task)
    method ToBackground (line 33) | public static IDisposable ToBackground(this Task task)
    method ToBackground (line 39) | public static IDisposable ToBackground(this Task task, Action action)
    method HandleError (line 46) | private static void HandleError(Exception e)

FILE: CodeHub.Core/Filters/BaseIssuesFilterModel.cs
  class BaseIssuesFilterModel (line 5) | public abstract class BaseIssuesFilterModel<T> : FilterModel<T>
    method BaseIssuesFilterModel (line 11) | protected BaseIssuesFilterModel()
    type Sort (line 17) | public enum Sort

FILE: CodeHub.Core/Filters/IssuesFilterModel.cs
  class IssuesFilterModel (line 5) | public class IssuesFilterModel : BaseIssuesFilterModel<IssuesFilterModel>
    class MilestoneKeyValue (line 21) | public class MilestoneKeyValue
    method IssuesFilterModel (line 28) | public IssuesFilterModel()
    method CreateOpenFilter (line 37) | public static IssuesFilterModel CreateOpenFilter()
    method CreateClosedFilter (line 45) | public static IssuesFilterModel CreateClosedFilter()
    method CreateMineFilter (line 55) | public static IssuesFilterModel CreateMineFilter(string username)
    method Clone (line 60) | public override IssuesFilterModel Clone()
    method Equals (line 65) | public override bool Equals(object obj)
    method GetHashCode (line 77) | public override int GetHashCode()

FILE: CodeHub.Core/Filters/MyIssuesFilterModel.cs
  class MyIssuesFilterModel (line 6) | public class MyIssuesFilterModel : BaseIssuesFilterModel<MyIssuesFilterM...
    method MyIssuesFilterModel (line 16) | public MyIssuesFilterModel()
    method CreateOpenFilter (line 25) | public static MyIssuesFilterModel CreateOpenFilter()
    method CreateClosedFilter (line 33) | public static MyIssuesFilterModel CreateClosedFilter()
    method Clone (line 38) | public override MyIssuesFilterModel Clone()
    method Equals (line 43) | public override bool Equals(object obj)
    method GetHashCode (line 55) | public override int GetHashCode()
    type Filter (line 63) | public enum Filter

FILE: CodeHub.Core/Filters/NotificationsFilterModel.cs
  class NotificationsFilterModel (line 5) | public class NotificationsFilterModel : FilterModel<NotificationsFilterM...
    method NotificationsFilterModel (line 11) | public NotificationsFilterModel()
    method Equals (line 17) | public override bool Equals(object obj)
    method GetHashCode (line 30) | public override int GetHashCode()
    method Clone (line 38) | public override NotificationsFilterModel Clone()
    method CreateUnreadFilter (line 43) | public static NotificationsFilterModel CreateUnreadFilter()
    method CreateParticipatingFilter (line 48) | public static NotificationsFilterModel CreateParticipatingFilter()
    method CreateAllFilter (line 53) | public static NotificationsFilterModel CreateAllFilter()

FILE: CodeHub.Core/Interactions.cs
  class UserError (line 8) | public class UserError
    method UserError (line 13) | public UserError(string message, Exception exception = null)
    method UserError (line 18) | public UserError(string title, string message, Exception exception = n...
    method ExceptionMessage (line 24) | private static string ExceptionMessage(Exception exception)
  class Interactions (line 33) | public static class Interactions

FILE: CodeHub.Core/Messages/GistAddMessage.cs
  class GistAddMessage (line 3) | public class GistAddMessage
    method GistAddMessage (line 7) | public GistAddMessage(Octokit.Gist gist)

FILE: CodeHub.Core/Messages/IssueAddMessage.cs
  class IssueAddMessage (line 5) | public class IssueAddMessage
    method IssueAddMessage (line 9) | public IssueAddMessage(IssueModel issue)

FILE: CodeHub.Core/Messages/IssueEditMessage.cs
  class IssueEditMessage (line 5) | public class IssueEditMessage
    method IssueEditMessage (line 9) | public IssueEditMessage(IssueModel issue)

FILE: CodeHub.Core/Messages/LogoutMessage.cs
  class LogoutMessage (line 3) | public class LogoutMessage

FILE: CodeHub.Core/Messages/NotificationCountMessage.cs
  class NotificationCountMessage (line 3) | public class NotificationCountMessage
    method NotificationCountMessage (line 7) | public NotificationCountMessage(int count)

FILE: CodeHub.Core/Messages/PullRequestEditMessage.cs
  class PullRequestEditMessage (line 5) | public class PullRequestEditMessage
    method PullRequestEditMessage (line 9) | public PullRequestEditMessage(PullRequestModel pullRequest)

FILE: CodeHub.Core/Messages/SelectIssueLabelsMessage.cs
  class SelectIssueLabelsMessage (line 7) | public class SelectIssueLabelsMessage
    method SelectIssueLabelsMessage (line 11) | public SelectIssueLabelsMessage(IEnumerable<LabelModel> labels)

FILE: CodeHub.Core/Messages/SelectedAssignedToMessage.cs
  class SelectedAssignedToMessage (line 5) | public class SelectedAssignedToMessage
    method SelectedAssignedToMessage (line 9) | public SelectedAssignedToMessage(BasicUserModel user)

FILE: CodeHub.Core/Messages/SelectedMilestoneMessage.cs
  class SelectedMilestoneMessage (line 5) | public class SelectedMilestoneMessage
    method SelectedMilestoneMessage (line 9) | public SelectedMilestoneMessage(MilestoneModel milestone)

FILE: CodeHub.Core/Messages/SourceEditMessage.cs
  class SourceEditMessage (line 5) | public class SourceEditMessage

FILE: CodeHub.Core/PresentationValues.cs
  class PresentationValues (line 3) | public class PresentationValues

FILE: CodeHub.Core/Secrets.cs
  class Secrets (line 5) | public static class Secrets

FILE: CodeHub.Core/Services/AccountsService.cs
  class AccountsService (line 11) | public class AccountsService : IAccountsService
    method GetActiveAccount (line 13) | public Task<Account> GetActiveAccount()
    method SetActiveAccount (line 16) | public Task SetActiveAccount(Account account)
    method GetAccounts (line 22) | public Task<IEnumerable<Account>> GetAccounts()
    method Save (line 27) | public Task Save(Account account)
    method Remove (line 30) | public Task Remove(Account account)
    method Get (line 33) | public Task<Account> Get(string domain, string username) => Get(GetKey...
    method Get (line 35) | public Task<Account> Get(string key)
    method GetKey (line 40) | private string GetKey(Account account)
    method GetKey (line 43) | private string GetKey(string username, string domain)

FILE: CodeHub.Core/Services/ApplicationService.cs
  class ApplicationService (line 9) | public class ApplicationService : IApplicationService
    method ApplicationService (line 21) | public ApplicationService(IAccountsService accountsService)
    method DeactivateUser (line 26) | public void DeactivateUser()
    method SetUserActivationAction (line 33) | public void SetUserActivationAction(Action action)
    method UpdateActiveAccount (line 41) | public Task UpdateActiveAccount() => _accountsService.Save(Account);
    method LoginAccount (line 43) | public async Task LoginAccount(Account account)

FILE: CodeHub.Core/Services/IAccountsService.cs
  type IAccountsService (line 7) | public interface IAccountsService
    method GetActiveAccount (line 9) | Task<Account> GetActiveAccount();
    method SetActiveAccount (line 11) | Task SetActiveAccount(Account account);
    method GetAccounts (line 13) | Task<IEnumerable<Account>> GetAccounts();
    method Save (line 15) | Task Save(Account account);
    method Remove (line 17) | Task Remove(Account account);
    method Get (line 19) | Task<Account> Get(string domain, string username);

FILE: CodeHub.Core/Services/IAlertDialogService.cs
  type IAlertDialogService (line 8) | public interface IAlertDialogService
    method PromptYesNo (line 10) | Task<bool> PromptYesNo(string title, string message);
    method Alert (line 12) | Task Alert(string title, string message);
    method PromptTextBox (line 14) | Task<string> PromptTextBox(string title, string message, string defaul...
    method Show (line 16) | void Show(string text);
    method Hide (line 18) | void Hide();
  class AlertDialogServiceExtensions (line 21) | public static class AlertDialogServiceExtensions
    method Activate (line 23) | public static IDisposable Activate(this IAlertDialogService @this, str...
    method Activate (line 29) | public static IDisposable Activate(this IAlertDialogService @this, IOb...
    method Activate (line 40) | public static IDisposable Activate(this IAlertDialogService @this, Rea...
    method AlertExecuting (line 51) | public static IDisposable AlertExecuting(this ReactiveCommand @this, I...

FILE: CodeHub.Core/Services/IApplicationService.cs
  type IApplicationService (line 7) | public interface IApplicationService
    method UpdateActiveAccount (line 15) | Task UpdateActiveAccount();
    method DeactivateUser (line 17) | void DeactivateUser();
    method SetUserActivationAction (line 19) | void SetUserActivationAction(Action action);
    method LoginAccount (line 23) | Task LoginAccount(Account account);

FILE: CodeHub.Core/Services/IFeaturesService.cs
  type IFeaturesService (line 5) | public interface IFeaturesService
    method ActivateProDirect (line 9) | void ActivateProDirect();
    method ActivatePro (line 11) | Task ActivatePro();
    method RestorePro (line 13) | Task RestorePro();

FILE: CodeHub.Core/Services/IImgurService.cs
  type IImgurService (line 6) | public interface IImgurService
    method SendImage (line 8) | Task<ImgurResponse> SendImage(byte[] data);

FILE: CodeHub.Core/Services/IMarkdownService.cs
  type IMarkdownService (line 5) | public interface IMarkdownService
    method Convert (line 7) | Task<string> Convert(string s);

FILE: CodeHub.Core/Services/IMessageService.cs
  type IMessageService (line 6) | public interface IMessageService
    method Send (line 8) | void Send<T>(T message);
    method Listen (line 10) | IDisposable Listen<T>(Action<T> action);

FILE: CodeHub.Core/Services/INetworkActivityService.cs
  type INetworkActivityService (line 6) | public interface INetworkActivityService
    method PushNetworkActive (line 8) | void PushNetworkActive();
    method PopNetworkActive (line 10) | void PopNetworkActive();
  class NetworkActivityServiceExtensions (line 13) | public static class NetworkActivityServiceExtensions
    method ActivateNetwork (line 15) | public static IDisposable ActivateNetwork(this INetworkActivityService...

FILE: CodeHub.Core/Services/IPushNotificationsService.cs
  type IPushNotificationsService (line 5) | public interface IPushNotificationsService
    method Register (line 7) | Task Register();
    method Deregister (line 9) | Task Deregister();

FILE: CodeHub.Core/Services/IViewModelTxService.cs
  type IViewModelTxService (line 3) | public interface IViewModelTxService
    method Add (line 5) | void Add(object obj);
    method Get (line 7) | object Get();

FILE: CodeHub.Core/Services/ImgurService.cs
  class ImgurService (line 9) | public class ImgurService : IImgurService
    method SendImage (line 14) | public async Task<ImgurResponse> SendImage(byte[] data)

FILE: CodeHub.Core/Services/LoginService.cs
  type ILoginService (line 12) | public interface ILoginService
    method LoginWithToken (line 14) | Task LoginWithToken(string clientId, string clientSecret, string code,...
    method LoginWithToken (line 16) | Task LoginWithToken(string apiDomain, string webDomain, string token, ...
    method LoginWithBasic (line 18) | Task LoginWithBasic(string domain, string user, string pass, string tw...
  class LoginService (line 21) | public class LoginService : ILoginService
    method LoginService (line 28) | public LoginService(
    method LoginWithToken (line 36) | public async Task LoginWithToken(string clientId, string clientSecret,...
    method LoginWithToken (line 62) | public async Task LoginWithToken(string apiDomain, string webDomain, s...
    method LoginWithBasic (line 90) | public async Task LoginWithBasic(string domain, string user, string pa...
    method GetScopes (line 123) | private static async Task<List<string>> GetScopes(string domain, strin...
    method CheckScopes (line 138) | private static void CheckScopes(IEnumerable<string> scopes)

FILE: CodeHub.Core/Services/MessageService.cs
  class MessageService (line 6) | public class MessageService : IMessageService
    method Listen (line 10) | public IDisposable Listen<T>(Action<T> action)
    method Send (line 18) | public void Send<T>(T message)
    class Reference (line 44) | private class Reference : IDisposable
      method Reference (line 49) | public Reference(object handle, Action removal)
      method Dispose (line 55) | public void Dispose() => _removal.Invoke();

FILE: CodeHub.Core/Services/ViewModelTxService.cs
  class ViewModelTxService (line 3) | public class ViewModelTxService : IViewModelTxService
    method Add (line 7) | public void Add(object obj)
    method Get (line 12) | public object Get()

FILE: CodeHub.Core/Settings.cs
  class Settings (line 6) | public static class Settings

FILE: CodeHub.Core/Utils/CustomObservableCollection.cs
  class CustomObservableCollection (line 10) | public class CustomObservableCollection<T> : ObservableCollection<T>
    method CustomObservableCollection (line 12) | public CustomObservableCollection()
    method CustomObservableCollection (line 17) | public CustomObservableCollection(IEnumerable<T> collection)
    method CustomObservableCollection (line 23) | public CustomObservableCollection(List<T> list)
    method AddRange (line 29) | public virtual void AddRange(IEnumerable<T> collection)
    method RemoveRange (line 51) | public virtual void RemoveRange(IEnumerable<T> collection)
    method Reset (line 68) | public virtual void Reset(T item)
    method Reset (line 73) | public virtual void Reset(IEnumerable<T> collection)

FILE: CodeHub.Core/Utils/DateTimeExtensions.cs
  class DateTimeExtensions (line 3) | public static class DateTimeExtensions
    method TotalDaysAgo (line 5) | public static int TotalDaysAgo(this DateTimeOffset d)

FILE: CodeHub.Core/Utils/Emojis.cs
  class Emojis (line 7) | public static class Emojis
    method Emojis (line 11) | static Emojis()
    method FindAndReplace (line 888) | public static string FindAndReplace(string text)

FILE: CodeHub.Core/Utils/FilterGroup.cs
  class FilterGroup (line 7) | public static class FilterGroup
    method CreateRangeString (line 11) | private static string CreateRangeString(int key)
    method CreateNumberedGroup (line 16) | public static List<IGrouping<string, TElement>> CreateNumberedGroup<TE...

FILE: CodeHub.Core/Utils/GitHubAvatar.cs
  class GitHubAvatar (line 6) | public class GitHubAvatar
    method GitHubAvatar (line 15) | public GitHubAvatar(string avatarUrl)
    method GitHubAvatar (line 20) | public GitHubAvatar(Uri avatarUri)
  class GitHubAvatarExtensions (line 27) | public static class GitHubAvatarExtensions
    method ToUri (line 29) | public static Uri ToUri(this GitHubAvatar @this, int? size = null)

FILE: CodeHub.Core/Utils/GitHubExtensions.cs
  class GitHubExtensions (line 7) | public static class GitHubExtensions
    method GenerateCommiterName (line 11) | public static string GenerateCommiterName(this CommitModel x)
    method GenerateGravatarUrl (line 22) | public static Uri GenerateGravatarUrl(this CommitModel x)

FILE: CodeHub.Core/Utils/GitHubList.cs
  class GitHubList (line 8) | public class GitHubList<T>
    method GitHubList (line 14) | public GitHubList(
    method Next (line 24) | public async Task<IReadOnlyList<T>> Next()

FILE: CodeHub.Core/Utils/OctokitClientFactory.cs
  class OctokitClientFactory (line 10) | public static class OctokitClientFactory
    method Create (line 16) | public static GitHubClient Create(

FILE: CodeHub.Core/Utils/OctokitNetworkClient.cs
  class OctokitNetworkClient (line 13) | class OctokitNetworkClient : IHttpClient
    method OctokitNetworkClient (line 18) | public OctokitNetworkClient(IHttpClient httpClient, INetworkActivitySe...
    method Send (line 24) | public async Task<IResponse> Send(IRequest request, System.Threading.C...
    method Dispose (line 30) | public void Dispose() => _httpClient.Dispose();
    method SetRequestTimeout (line 32) | public void SetRequestTimeout(TimeSpan timeout) => _httpClient.SetRequ...

FILE: CodeHub.Core/Utils/RepositoryIdentifier.cs
  class RepositoryIdentifier (line 5) | public class RepositoryIdentifier
    method RepositoryIdentifier (line 10) | public RepositoryIdentifier(string owner, string name)
    method FromFullName (line 16) | public static RepositoryIdentifier FromFullName(string id)

FILE: CodeHub.Core/Utils/ViewModelExtensions.cs
  class ViewModelExtensions (line 5) | public static class ViewModelExtensions
    method GetApplication (line 7) | public static IApplicationService GetApplication(this BaseViewModel vm)

FILE: CodeHub.Core/Utils/WeakReferenceExtensions.cs
  class WeakReferenceExtensions (line 3) | public static class WeakReferenceExtensions
    method Get (line 5) | public static T Get<T>(this WeakReference<T> @this) where T : class

FILE: CodeHub.Core/ViewModels/Accounts/AddAccountViewModel.cs
  class AddAccountViewModel (line 14) | public class AddAccountViewModel : ReactiveObject
    method AddAccountViewModel (line 58) | public AddAccountViewModel(
    method HandleLoginException (line 77) | private IObservable<UserError> HandleLoginException(Exception e)
    method Login (line 111) | private async Task Login()

FILE: CodeHub.Core/ViewModels/Accounts/OAuthLoginViewModel.cs
  class OAuthLoginViewModel (line 10) | public class OAuthLoginViewModel : ReactiveObject
    method OAuthLoginViewModel (line 33) | public OAuthLoginViewModel(

FILE: CodeHub.Core/ViewModels/App/FeedbackComposerViewModel.cs
  class FeedbackComposerViewModel (line 12) | public class FeedbackComposerViewModel : ReactiveObject
    method FeedbackComposerViewModel (line 37) | public FeedbackComposerViewModel(

FILE: CodeHub.Core/ViewModels/App/FeedbackItemViewModel.cs
  class FeedbackItemViewModel (line 8) | public class FeedbackItemViewModel : ReactiveObject, ICanGoToViewModel
    method FeedbackItemViewModel (line 26) | internal FeedbackItemViewModel(string repositoryOwner, string reposito...

FILE: CodeHub.Core/ViewModels/App/FeedbackViewModel.cs
  class FeedbackViewModel (line 10) | public class FeedbackViewModel : ReactiveObject, IProvidesSearchKeyword
    method FeedbackViewModel (line 35) | public FeedbackViewModel(IApplicationService applicationService = null)

FILE: CodeHub.Core/ViewModels/App/MenuViewModel.cs
  class MenuViewModel (line 17) | public class MenuViewModel : BaseViewModel
    method MenuViewModel (line 47) | public MenuViewModel(IApplicationService application = null,
    method OnNotificationCountMessage (line 58) | private void OnNotificationCountMessage(NotificationCountMessage msg)
    method Load (line 108) | private void Load()
    method ShowMenuViewModel (line 166) | protected bool ShowMenuViewModel<T>(object data) where T : IMvxViewModel

FILE: CodeHub.Core/ViewModels/App/StartupViewModel.cs
  class StartupViewModel (line 13) | public class StartupViewModel : BaseViewModel
    method StartupViewModel (line 52) | public StartupViewModel(
    method Startup (line 60) | protected async Task Startup()
    method StarOrWatch (line 114) | private void StarOrWatch()

FILE: CodeHub.Core/ViewModels/App/SupportViewModel.cs
  class SupportViewModel (line 10) | public class SupportViewModel : ReactiveObject, ILoadableViewModel
    method SupportViewModel (line 36) | public SupportViewModel(IApplicationService applicationService = null)

FILE: CodeHub.Core/ViewModels/BaseViewModel.cs
  type IProvidesTitle (line 13) | public interface IProvidesTitle
  type IRoutingViewModel (line 18) | public interface IRoutingViewModel
  type IBaseViewModel (line 25) | public interface IBaseViewModel : ISupportsActivation, IProvidesTitle, I...
  class BaseViewModel (line 32) | public abstract class BaseViewModel : MvxViewModel, IBaseViewModel, IRea...
    method RaisePropertyChanging (line 40) | public void RaisePropertyChanging(PropertyChangingEventArgs args)
    method NavigateTo (line 65) | protected void NavigateTo(IBaseViewModel viewModel)
    method Dismiss (line 70) | protected void Dismiss()
    method GetService (line 117) | protected TService GetService<TService>() where TService : class
    method DisplayAlert (line 126) | protected void DisplayAlert(string message)
    method DisplayAlertAsync (line 135) | protected Task DisplayAlertAsync(string message)

FILE: CodeHub.Core/ViewModels/Changesets/ChangesetViewModel.cs
  class ChangesetViewModel (line 15) | public class ChangesetViewModel : LoadableViewModel
    method ChangesetViewModel (line 60) | public ChangesetViewModel(IApplicationService application, IFeaturesSe...
    method Init (line 70) | public void Init(NavObject navObject)
    method Load (line 79) | protected override Task Load()
    method AddComment (line 95) | public async Task AddComment(string text)
    class NavObject (line 101) | public class NavObject

FILE: CodeHub.Core/ViewModels/Changesets/ChangesetsViewModel.cs
  class ChangesetsViewModel (line 8) | public class ChangesetsViewModel : CommitsViewModel
    method ChangesetsViewModel (line 12) | public ChangesetsViewModel(
    method Init (line 19) | public void Init(NavObject navObject)
    method GetRequest (line 25) | protected override GitHubRequest<List<CommitModel>> GetRequest()
    class NavObject (line 30) | public new class NavObject : CommitsViewModel.NavObject

FILE: CodeHub.Core/ViewModels/Changesets/CommitsViewModel.cs
  class CommitsViewModel (line 12) | public abstract class CommitsViewModel : LoadableViewModel
    method CommitsViewModel (line 47) | protected CommitsViewModel(
    method Init (line 55) | public void Init(NavObject navObject)
    method Load (line 61) | protected override Task Load()
    method GetRequest (line 75) | protected abstract GitHubRequest<List<CommitModel>> GetRequest();
    class NavObject (line 77) | public class NavObject

FILE: CodeHub.Core/ViewModels/CollectionViewModel.cs
  class CollectionViewModel (line 10) | public class CollectionViewModel<TItem> : MvxViewModel, IEnumerable<TIte...
    method CollectionViewModel (line 78) | public CollectionViewModel()
    method CollectionViewModel (line 83) | public CollectionViewModel(CustomObservableCollection<TItem> source)
    method Refresh (line 98) | public void Refresh()
    method DeferRefresh (line 108) | public IDisposable DeferRefresh()
    method EndDefer (line 114) | private void EndDefer()
    method GetEnumerator (line 121) | public IEnumerator<TItem> GetEnumerator()
    method GetEnumerator (line 128) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
    class DeferHelper (line 133) | private class DeferHelper : IDisposable
      method DeferHelper (line 137) | public DeferHelper(CollectionViewModel<TItem> parent)
      method Dispose (line 142) | public void Dispose()

FILE: CodeHub.Core/ViewModels/Events/BaseEventsViewModel.cs
  class BaseEventsViewModel (line 21) | public abstract class BaseEventsViewModel : LoadableViewModel
    method BaseEventsViewModel (line 33) | protected BaseEventsViewModel()
    method Load (line 38) | protected override Task Load()
    method CreateDataFromLoad (line 46) | private IEnumerable<Tuple<EventModel, EventBlock>> CreateDataFromLoad(...
    method CreateRequest (line 63) | protected abstract GitHubRequest<List<EventModel>> CreateRequest(int p...
    method GoToCommits (line 65) | private void GoToCommits(EventModel.RepoModel repoModel, string branch)
    method GoToRepository (line 84) | private void GoToRepository(EventModel.RepoModel eventModel)
    method GoToUser (line 97) | private void GoToUser(string username)
    method GoToBranch (line 104) | private void GoToBranch(RepositoryIdentifier repoId, string branchName)
    method GoToTag (line 112) | private void GoToTag(EventModel.RepoModel eventModel, string tagName)
    method GoToIssue (line 126) | private void GoToIssue(RepositoryIdentifier repo, long id)
    method GoToPullRequest (line 139) | private void GoToPullRequest(RepositoryIdentifier repo, long id)
    method GoToPullRequests (line 151) | private void GoToPullRequests(RepositoryIdentifier repo)
    method GoToChangeset (line 162) | private void GoToChangeset(RepositoryIdentifier repo, string sha)
    method CreateEventTextBlocks (line 174) | private EventBlock CreateEventTextBlocks(EventModel eventModel)
    method CreateRepositoryTextBlock (line 560) | private TextBlock CreateRepositoryTextBlock(EventModel.RepoModel repoM...
    class EventBlock (line 578) | public class EventBlock
      method EventBlock (line 585) | public EventBlock()
    class TextBlock (line 592) | public class TextBlock
      method TextBlock (line 596) | public TextBlock()
      method TextBlock (line 600) | public TextBlock(string text)
    class AnchorBlock (line 606) | public class AnchorBlock : TextBlock
      method AnchorBlock (line 608) | public AnchorBlock(string text, Action tapped) : base(text)
      method AnchorBlock (line 615) | public AnchorBlock(Action tapped)

FILE: CodeHub.Core/ViewModels/Events/NewsViewModel.cs
  class NewsViewModel (line 6) | public class NewsViewModel : BaseEventsViewModel
    method CreateRequest (line 8) | protected override GitHubSharp.GitHubRequest<List<EventModel>> CreateR...

FILE: CodeHub.Core/ViewModels/Events/OrganizationEventsViewModel.cs
  class OrganizationEventsViewModel (line 7) | public class OrganizationEventsViewModel : BaseEventsViewModel
    method Init (line 21) | public void Init(NavObject navobject)
    method CreateRequest (line 27) | protected override GitHubRequest<List<EventModel>> CreateRequest(int p...
    class NavObject (line 32) | public class NavObject

FILE: CodeHub.Core/ViewModels/Events/RepositoryEventsViewModel.cs
  class RepositoryEventsViewModel (line 7) | public class RepositoryEventsViewModel : BaseEventsViewModel
    method Init (line 21) | public void Init(NavObject navObject)
    method CreateRequest (line 27) | protected override GitHubRequest<List<EventModel>> CreateRequest(int p...
    class NavObject (line 32) | public class NavObject

FILE: CodeHub.Core/ViewModels/Events/UserEventsViewModel.cs
  class UserEventsViewModel (line 7) | public class UserEventsViewModel : BaseEventsViewModel
    method Init (line 15) | public void Init(NavObject navObject)
    method CreateRequest (line 20) | protected override GitHubRequest<List<EventModel>> CreateRequest(int p...
    class NavObject (line 25) | public class NavObject

FILE: CodeHub.Core/ViewModels/FilterGroup.cs
  class FilterGroup (line 6) | public class FilterGroup<TElement> : IGrouping<string, TElement>
    method FilterGroup (line 10) | public FilterGroup(string key, List<TElement> elements)
    method GetEnumerator (line 16) | public IEnumerator<TElement> GetEnumerator()
    method GetEnumerator (line 21) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...

FILE: CodeHub.Core/ViewModels/FilterModel.cs
  class FilterModel (line 5) | [Serializable]
    method Clone (line 8) | public abstract TF Clone();

FILE: CodeHub.Core/ViewModels/FilterableCollectionViewModel.cs
  class FilterableCollectionViewModel (line 7) | public class FilterableCollectionViewModel<T, TF> : CollectionViewModel<...
    method FilterableCollectionViewModel (line 22) | public FilterableCollectionViewModel(string filterKey)
    method ApplyFilter (line 31) | public void ApplyFilter(TF filter, bool saveAsDefault = false)

FILE: CodeHub.Core/ViewModels/Gists/GistCreateViewModel.cs
  class GistCreateViewModel (line 12) | public class GistCreateViewModel : BaseViewModel
    method GistCreateViewModel (line 49) | public GistCreateViewModel(IMessageService messageService = null)
    method Save (line 58) | private async Task<Gist> Save()

FILE: CodeHub.Core/ViewModels/Gists/GistItemViewModel.cs
  class GistItemViewModel (line 11) | public class GistItemViewModel : ReactiveObject, ICanGoToViewModel
    method GetGistTitle (line 29) | private static string GetGistTitle(Gist gist)
    method GistItemViewModel (line 37) | public GistItemViewModel(Gist gist, Action<GistItemViewModel> gotoAction)

FILE: CodeHub.Core/ViewModels/Gists/GistViewModel.cs
  class GistViewModel (line 10) | public class GistViewModel : LoadableViewModel
    method FromGist (line 65) | public static GistViewModel FromGist(Gist gist)
    method Init (line 74) | public void Init(NavObject navObject)
    method ToggleStarred (line 79) | private async Task ToggleStarred()
    method ForkGist (line 93) | public async Task ForkGist()
    method Load (line 100) | protected override async Task Load()
    method Edit (line 113) | public async Task Edit(GistUpdate editModel)
    class NavObject (line 118) | public class NavObject

FILE: CodeHub.Core/ViewModels/Gists/GistsViewModel.cs
  class CurrentUserGistsViewModel (line 14) | public class CurrentUserGistsViewModel : GistsViewModel
    method CurrentUserGistsViewModel (line 18) | public CurrentUserGistsViewModel(string username, IMessageService mess...
  class GistsViewModel (line 26) | public class GistsViewModel : ReactiveObject
    method CreatePublicGistsViewModel (line 63) | public static GistsViewModel CreatePublicGistsViewModel()
    method CreateStarredGistsViewModel (line 66) | public static GistsViewModel CreateStarredGistsViewModel()
    method CreateUserGistsViewModel (line 69) | public static GistsViewModel CreateUserGistsViewModel(string username)
    method GistsViewModel (line 72) | public GistsViewModel(
    method LoadingError (line 126) | private void LoadingError(Exception err)
    method GoToItem (line 131) | private void GoToItem(GistItemViewModel item)
    method RetrieveItems (line 136) | private async Task<IReadOnlyList<Gist>> RetrieveItems(

FILE: CodeHub.Core/ViewModels/ICanGoToViewModel.cs
  type ICanGoToViewModel (line 6) | public interface ICanGoToViewModel

FILE: CodeHub.Core/ViewModels/IFilterableViewModel.cs
  type IFilterableViewModel (line 3) | public interface IFilterableViewModel<TFilter> where TFilter : FilterMod...
    method ApplyFilter (line 7) | void ApplyFilter(TFilter filter, bool saveAsDefault = false);

FILE: CodeHub.Core/ViewModels/IListViewModel.cs
  type IListViewModel (line 7) | public interface IListViewModel<T>

FILE: CodeHub.Core/ViewModels/ILoadableViewModel.cs
  type ILoadableViewModel (line 6) | public interface ILoadableViewModel

FILE: CodeHub.Core/ViewModels/IProvidesSearchKeyword.cs
  type IProvidesSearchKeyword (line 3) | public interface IProvidesSearchKeyword

FILE: CodeHub.Core/ViewModels/Issues/BaseIssuesViewModel.cs
  class BaseIssuesViewModel (line 14) | public abstract class BaseIssuesViewModel<TFilterModel> : LoadableViewMo...
    method Group (line 45) | protected virtual List<IGrouping<string, IssueModel>> Group(IEnumerabl...
  type IBaseIssuesViewModel (line 71) | public interface IBaseIssuesViewModel : IMvxViewModel

FILE: CodeHub.Core/ViewModels/Issues/IssueAddViewModel.cs
  class IssueAddViewModel (line 10) | public class IssueAddViewModel : IssueModifyViewModel
    method IssueAddViewModel (line 14) | public IssueAddViewModel(IMessageService messageService)
    method Save (line 20) | protected override async Task Save()
    method Init (line 52) | public void Init(NavObject navObject)
    class NavObject (line 57) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssueAssignedToViewModel.cs
  class IssueAssignedToViewModel (line 10) | public class IssueAssignedToViewModel : LoadableViewModel
    method IssueAssignedToViewModel (line 52) | public IssueAssignedToViewModel(IMessageService messageService)
    method Init (line 57) | public void Init(NavObject navObject)
    method SelectUser (line 68) | private async Task SelectUser(BasicUserModel x)
    method Load (line 98) | protected override Task Load()
    class NavObject (line 103) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssueEditViewModel.cs
  class IssueEditViewModel (line 11) | public class IssueEditViewModel : IssueModifyViewModel
    method IssueEditViewModel (line 31) | public IssueEditViewModel(IMessageService messageService)
    method Save (line 37) | protected override async Task Save()
    method Init (line 107) | public void Init(NavObject navObject)
    class NavObject (line 123) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssueLabelsViewModel.cs
  class IssueLabelsViewModel (line 12) | public class IssueLabelsViewModel : LoadableViewModel
    method Init (line 47) | public void Init(NavObject navObject)
    method IssueLabelsViewModel (line 63) | public IssueLabelsViewModel(IMessageService messageService)
    method SelectLabels (line 68) | private async Task SelectLabels(IEnumerable<LabelModel> x)
    method Load (line 104) | protected override Task Load()
    class NavObject (line 109) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssueMilestonesViewModel.cs
  class IssueMilestonesViewModel (line 9) | public class IssueMilestonesViewModel : LoadableViewModel
    method IssueMilestonesViewModel (line 51) | public IssueMilestonesViewModel(IMessageService messageService)
    method Init (line 56) | public void Init(NavObject navObject)
    method SelectMilestone (line 67) | private async Task SelectMilestone(MilestoneModel x)
    method Load (line 97) | protected override Task Load()
    class NavObject (line 102) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssueModifyViewModel.cs
  class IssueModifyViewModel (line 11) | public abstract class IssueModifyViewModel : BaseViewModel
    method IssueModifyViewModel (line 99) | public IssueModifyViewModel(IMessageService messageService)
    method Init (line 104) | protected void Init(string username, string repository)
    method Save (line 114) | protected abstract Task Save();

FILE: CodeHub.Core/ViewModels/Issues/IssueViewModel.cs
  class IssueViewModel (line 18) | public class IssueViewModel : LoadableViewModel
    method Load (line 161) | protected override Task Load()
    method IssueViewModel (line 191) | public IssueViewModel(
    method Init (line 216) | public void Init(NavObject navObject)
    method AddComment (line 230) | public async Task<bool> AddComment(string text)
    method ToggleState (line 246) | private async Task ToggleState(bool closed)
    class NavObject (line 264) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/IssuesViewModel.cs
  class IssuesViewModel (line 13) | public class IssuesViewModel : BaseIssuesViewModel<IssuesFilterModel>
    method IssuesViewModel (line 27) | public IssuesViewModel(IMessageService messageService)
    method Init (line 32) | public void Init(NavObject nav)
    method Load (line 66) | protected override Task Load()
    method CreateIssue (line 82) | public void CreateIssue(IssueModel issue)
    method DoesIssueBelong (line 89) | private bool DoesIssueBelong(IssueModel model)
    class NavObject (line 98) | public class NavObject

FILE: CodeHub.Core/ViewModels/Issues/MyIssuesViewModel.cs
  class MyIssuesViewModel (line 12) | public class MyIssuesViewModel : BaseIssuesViewModel<MyIssuesFilterModel>
    method MyIssuesViewModel (line 27) | public MyIssuesViewModel(IMessageService messageService = null)
    method Group (line 62) | protected override List<IGrouping<string, IssueModel>> Group(IEnumerab...
    method Load (line 81) | protected override Task Load()

FILE: CodeHub.Core/ViewModels/LoadableViewModel.cs
  class LoadableViewModel (line 11) | public abstract class LoadableViewModel : BaseViewModel
    method LoadResource (line 22) | private async Task LoadResource()
    method ExecuteLoadResource (line 45) | protected async Task ExecuteLoadResource()
    method LoadableViewModel (line 61) | protected LoadableViewModel()
    method HandleLoadCommand (line 66) | private async Task HandleLoadCommand()
    method Load (line 88) | protected abstract Task Load();

FILE: CodeHub.Core/ViewModels/MarkdownAccessoryViewModel.cs
  class MarkdownAccessoryViewModel (line 13) | public class MarkdownAccessoryViewModel : ReactiveObject
    method MarkdownAccessoryViewModel (line 22) | public MarkdownAccessoryViewModel(

FILE: CodeHub.Core/ViewModels/Notifications/NotificationsViewModel.cs
  class NotificationsViewModel (line 17) | public class NotificationsViewModel : LoadableViewModel
    method GoToNotification (line 59) | private void GoToNotification(Octokit.Notification x)
    method NotificationsViewModel (line 87) | public NotificationsViewModel(
    method Load (line 114) | protected override async Task Load()
    method Read (line 127) | private async Task Read(Octokit.Notification model)
    method MarkRepoAsRead (line 151) | private async Task MarkRepoAsRead(string repo)
    method MarkAllAsRead (line 172) | private async Task MarkAllAsRead()
    method UpdateAccountNotificationsCount (line 195) | private void UpdateAccountNotificationsCount()

FILE: CodeHub.Core/ViewModels/Organizations/OrganizationViewModel.cs
  class OrganizationViewModel (line 9) | public class OrganizationViewModel : LoadableViewModel
    method Init (line 15) | public void Init(NavObject navObject)
    method Load (line 36) | protected override Task Load()
    class NavObject (line 41) | public class NavObject

FILE: CodeHub.Core/ViewModels/Organizations/OrganizationsViewModel.cs
  class OrganizationsViewModel (line 9) | public class OrganizationsViewModel : LoadableViewModel
    method Init (line 15) | public void Init(NavObject navObject)
    method OrganizationsViewModel (line 20) | public OrganizationsViewModel()
    method Load (line 31) | protected override Task Load()
    class NavObject (line 36) | public class NavObject

FILE: CodeHub.Core/ViewModels/Organizations/TeamsViewModel.cs
  class TeamsViewModel (line 6) | public class TeamsViewModel : LoadableViewModel
    method TeamsViewModel (line 12) | public TeamsViewModel()
    method Init (line 18) | public void Init(NavObject navObject)
    method Load (line 23) | protected override Task Load()
    class NavObject (line 28) | public class NavObject

FILE: CodeHub.Core/ViewModels/PullRequests/PullRequestCommitsViewModel.cs
  class PullRequestCommitsViewModel (line 9) | public class PullRequestCommitsViewModel : ChangesetsViewModel
    method PullRequestCommitsViewModel (line 17) | public PullRequestCommitsViewModel(IApplicationService applicationServ...
    method Init (line 22) | public void Init(NavObject navObject)
    method GetRequest (line 28) | protected override GitHubRequest<List<CommitModel>> GetRequest()
    class NavObject (line 33) | public new class NavObject : CommitsViewModel.NavObject

FILE: CodeHub.Core/ViewModels/PullRequests/PullRequestFilesViewModel.cs
  class PullRequestFilesViewModel (line 12) | public class PullRequestFilesViewModel : LoadableViewModel
    method Init (line 29) | public void Init(NavObject navObject)
    method Load (line 42) | protected override Task Load()
    class NavObject (line 47) | public class NavObject

FILE: CodeHub.Core/ViewModels/PullRequests/PullRequestViewModel.cs
  class PullRequestViewModel (line 17) | public class PullRequestViewModel : LoadableViewModel
    method PullRequestViewModel (line 219) | public PullRequestViewModel(
    method Init (line 244) | public void Init(NavObject navObject)
    method AddComment (line 265) | public async Task<bool> AddComment(string text)
    method ToggleState (line 281) | private async Task ToggleState(bool closed)
    method Load (line 306) | protected override Task Load()
    method Merge (line 337) | public async Task Merge()
    method CanMerge (line 359) | private bool CanMerge()
    class NavObject (line 370) | public class NavObject

FILE: CodeHub.Core/ViewModels/PullRequests/PullRequestsViewModel.cs
  class PullRequestsViewModel (line 12) | public class PullRequestsViewModel : LoadableViewModel
    method PullRequestsViewModel (line 43) | public PullRequestsViewModel(IMessageService messageService)
    method Init (line 49) | public void Init(NavObject navObject)
    method Load (line 72) | protected override Task Load()
    class NavObject (line 79) | public class NavObject

FILE: CodeHub.Core/ViewModels/Repositories/RepositoriesViewModel.cs
  class RepositoriesViewModel (line 14) | public class RepositoriesViewModel : ReactiveObject
    method CreateWatchedViewModel (line 49) | public static RepositoriesViewModel CreateWatchedViewModel()
    method CreateStarredViewModel (line 52) | public static RepositoriesViewModel CreateStarredViewModel()
    method CreateForkedViewModel (line 55) | public static RepositoriesViewModel CreateForkedViewModel(string usern...
    method CreateOrganizationViewModel (line 58) | public static RepositoriesViewModel CreateOrganizationViewModel(string...
    method CreateTeamViewModel (line 61) | public static RepositoriesViewModel CreateTeamViewModel(int id)
    method CreateMineViewModel (line 64) | public static RepositoriesViewModel CreateMineViewModel()
    method CreateUsersViewModel (line 67) | public static RepositoriesViewModel CreateUsersViewModel(string username)
    method RepositoriesViewModel (line 77) | public RepositoriesViewModel(
    method LoadingError (line 143) | private void LoadingError(Exception err)
    method GoToRepository (line 155) | private void GoToRepository(RepositoryItemViewModel item)
    method RetrieveRepositories (line 160) | private async Task<IReadOnlyList<Repository>> RetrieveRepositories(

FILE: CodeHub.Core/ViewModels/Repositories/RepositoryItemViewModel.cs
  class RepositoryItemViewModel (line 9) | [DebuggerDisplay("{Owner}/{Name}")]
    method RepositoryItemViewModel (line 30) | public RepositoryItemViewModel(Octokit.Repository repository, bool sho...

FILE: CodeHub.Core/ViewModels/Repositories/RepositoryViewModel.cs
  class RepositoryViewModel (line 17) | public class RepositoryViewModel : LoadableViewModel
    method RepositoryViewModel (line 62) | public RepositoryViewModel(IApplicationService applicationService = null)
    method Init (line 67) | public void Init(NavObject navObject)
    method PinRepository (line 98) | private void PinRepository()
    method Load (line 130) | protected override async Task Load()
    method ToggleWatch (line 157) | private async Task ToggleWatch()
    method ToggleStar (line 191) | private async Task ToggleStar()
    class NavObject (line 210) | public class NavObject

FILE: CodeHub.Core/ViewModels/Repositories/TrendingRepositoriesViewModel.cs
  class RepositoriesTrendingViewModel (line 14) | public class RepositoriesTrendingViewModel : ReactiveObject
    method RepositoriesTrendingViewModel (line 44) | public RepositoriesTrendingViewModel(
    method LoadingError (line 65) | private void LoadingError(Exception err)
    method Load (line 77) | private async Task Load()

FILE: CodeHub.Core/ViewModels/Search/ExploreViewModel.cs
  class ExploreViewModel (line 5) | public class ExploreViewModel : ReactiveObject
    type SearchType (line 18) | public enum SearchType

FILE: CodeHub.Core/ViewModels/Search/RepositoryExploreViewModel.cs
  class RepositoryExploreViewModel (line 12) | public class RepositoryExploreViewModel : ReactiveObject
    method RepositoryExploreViewModel (line 29) | public RepositoryExploreViewModel(

FILE: CodeHub.Core/ViewModels/Search/UserExploreViewModel.cs
  class UserExploreViewModel (line 13) | public class UserExploreViewModel : ReactiveObject
    method UserExploreViewModel (line 28) | public UserExploreViewModel(IApplicationService applicationService = n...

FILE: CodeHub.Core/ViewModels/Source/EditSourceViewModel.cs
  class EditSourceViewModel (line 9) | public class EditSourceViewModel : LoadableViewModel
    method EditSourceViewModel (line 30) | public EditSourceViewModel(IMessageService messageService = null)
    method Init (line 35) | public void Init(NavObject navObject)
    method Load (line 46) | protected override async Task Load()
    method Commit (line 54) | public async Task Commit(string data, string message)
    class NavObject (line 61) | public class NavObject

FILE: CodeHub.Core/ViewModels/Users/UserItemViewModel.cs
  class UserItemViewModel (line 8) | public class UserItemViewModel : ReactiveObject, ICanGoToViewModel
    method UserItemViewModel (line 20) | internal UserItemViewModel(Octokit.User user, Action<UserItemViewModel...

FILE: CodeHub.Core/ViewModels/Users/UserViewModel.cs
  class UserViewModel (line 11) | public class UserViewModel : LoadableViewModel
    method ToggleFollowing (line 54) | private async Task ToggleFollowing()
    method Init (line 70) | public void Init(NavObject navObject)
    method Load (line 75) | protected override async Task Load()
    class NavObject (line 86) | public class NavObject

FILE: CodeHub.Core/ViewModels/Users/UsersViewModel.cs
  class UsersViewModel (line 13) | public class UsersViewModel : ReactiveObject
    method CreateWatchersViewModel (line 48) | public static UsersViewModel CreateWatchersViewModel(string owner, str...
    method CreateFollowersViewModel (line 51) | public static UsersViewModel CreateFollowersViewModel(string user)
    method CreateFollowingViewModel (line 54) | public static UsersViewModel CreateFollowingViewModel(string user)
    method CreateTeamMembersViewModel (line 57) | public static UsersViewModel CreateTeamMembersViewModel(int id)
    method CreateOrgMembersViewModel (line 60) | public static UsersViewModel CreateOrgMembersViewModel(string org)
    method CreateStargazersViewModel (line 63) | public static UsersViewModel CreateStargazersViewModel(string owner, s...
    method CreateCollaboratorsViewModel (line 66) | public static UsersViewModel CreateCollaboratorsViewModel(string owner...
    method UsersViewModel (line 69) | public UsersViewModel(
    method LoadingError (line 125) | private void LoadingError(Exception err)
    method GoToUser (line 130) | private void GoToUser(UserItemViewModel item)
    method RetrieveItems (line 135) | private async Task<IReadOnlyList<Octokit.User>> RetrieveItems(

FILE: CodeHub.Core/ViewModels/ViewModelExtensions.cs
  class ViewModelExtensions (line 16) | public static class ViewModelExtensions
    method RequestModel (line 18) | public static async Task RequestModel<TRequest>(this MvxViewModel view...
    method CreateMore (line 25) | public static void CreateMore<T>(this MvxViewModel viewModel, GitHubRe...
    method SimpleCollectionLoad (line 44) | public static Task SimpleCollectionLoad<T>(this CollectionViewModel<T>...
  class BindExtensions (line 60) | public static class BindExtensions
    method Bind (line 62) | public static IObservable<TR> Bind<T, TR>(this T viewModel, System.Lin...
    method BindCollection (line 94) | public static IObservable<Unit> BindCollection<T>(this T viewModel, Sy...

FILE: CodeHub.Core/ViewModels/WebBrowserViewModel.cs
  class WebBrowserViewModel (line 3) | public class WebBrowserViewModel : BaseViewModel
    method Init (line 7) | public void Init(NavObject navObject)
    class NavObject (line 12) | public class NavObject

FILE: CodeHub.iOS/AkavacheSqliteLinkerOverride.cs
  class LinkerPreserve (line 8) | [Preserve]
    method LinkerPreserve (line 11) | static LinkerPreserve()
  class PreserveAttribute (line 18) | public class PreserveAttribute : Attribute

FILE: CodeHub.iOS/AppDelegate.cs
  class AppDelegate (line 27) | [Register("AppDelegate")]
    method Main (line 42) | public static void Main(string[] args)
    method FinishedLaunching (line 53) | public override bool FinishedLaunching(UIApplication app, NSDictionary...
    method RegisterUserForNotifications (line 144) | public void RegisterUserForNotifications()
    method GoToStartupView (line 150) | private void GoToStartupView()
    method TransitionToViewController (line 161) | public void TransitionToViewController(UIViewController viewController)
    class CustomHttpMessageHandler (line 167) | class CustomHttpMessageHandler : DelegatingHandler
      method CustomHttpMessageHandler (line 169) | public CustomHttpMessageHandler()
      method SendAsync (line 174) | protected override Task<HttpResponseMessage> SendAsync (HttpRequestM...
    method ReceivedRemoteNotification (line 182) | public override void ReceivedRemoteNotification(UIApplication applicat...
    method HandleNotification (line 189) | private void HandleNotification(NSDictionary data, bool fromBootup)
    method DidRegisterUserNotificationSettings (line 254) | public override void DidRegisterUserNotificationSettings (UIApplicatio...
    method RegisteredForRemoteNotifications (line 259) | public override void RegisteredForRemoteNotifications(UIApplication ap...
    method FailedToRegisterForRemoteNotifications (line 273) | public override void FailedToRegisterForRemoteNotifications(UIApplicat...
    method OpenUrl (line 278) | public override bool OpenUrl(UIApplication application, NSUrl url, str...

FILE: CodeHub.iOS/DialogElements/BooleanElement.cs
  class BooleanElement (line 9) | public class BooleanElement : Element
    method BooleanElement (line 54) | public BooleanElement (string caption, bool value = false)
    method GetCell (line 60) | public override UITableViewCell GetCell (UITableView tv)
    method UpdateValueChanged (line 75) | private static EventHandler UpdateValueChanged(WeakReference<BooleanEl...
    class BooleanCellView (line 84) | private class BooleanCellView : UITableViewCell
      method BooleanCellView (line 88) | public BooleanCellView()
      method WillMoveToSuperview (line 96) | public override void WillMoveToSuperview(UIView newsuper)

FILE: CodeHub.iOS/DialogElements/ChangesetElement.cs
  class ChangesetElement (line 5) | public class ChangesetElement : StringElement
    method ChangesetElement (line 10) | public ChangesetElement(string title, string subtitle, int? added, int...
    method GetKey (line 20) | protected override string GetKey(int style)
    method CreateTableViewCell (line 25) | protected override UIKit.UITableViewCell CreateTableViewCell(UIKit.UIT...
    method GetCell (line 30) | public override UIKit.UITableViewCell GetCell(UIKit.UITableView tv)
    class ChangesetCell (line 41) | private sealed class ChangesetCell : UIKit.UITableViewCell
      method ChangesetCell (line 45) | public ChangesetCell(string key)
      method LayoutSubviews (line 53) | public override void LayoutSubviews()

FILE: CodeHub.iOS/DialogElements/CommentElement.cs
  class CommentElement (line 8) | public class CommentElement : Element
    method CommentElement (line 13) | public CommentElement(string title, string message, DateTimeOffset dat...
    method GetCell (line 21) | public override UITableViewCell GetCell (UITableView tv)
    method Matches (line 28) | public override bool Matches(string text)

FILE: CodeHub.iOS/DialogElements/CommitElement.cs
  class CommitElement (line 10) | public class CommitElement : Element
    method CommitElement (line 18) | public CommitElement(CommitModel model, Action action)
    method GetCell (line 30) | public override UITableViewCell GetCell (UITableView tv)
    method Matches (line 40) | public override bool Matches(string text)
    method Selected (line 45) | public override void Selected(UITableView tableView, NSIndexPath path)

FILE: CodeHub.iOS/DialogElements/DummyInputElement.cs
  class DummyInputElement (line 7) | class DummyInputElement : EntryElement
    method DummyInputElement (line 11) | public DummyInputElement(string name)
    method CreateTextField (line 17) | protected override UITextField CreateTextField(CGRect frame)

FILE: CodeHub.iOS/DialogElements/Element.cs
  class Element (line 7) | public abstract class Element
    method SetSection (line 13) | internal void SetSection(Section section)
    method Element (line 18) | protected Element()
    method GetCell (line 22) | public abstract UITableViewCell GetCell(UITableView tv);
    method Deselected (line 24) | public virtual void Deselected (UITableView tableView, NSIndexPath path)
    method Selected (line 28) | public virtual void Selected (UITableView tableView, NSIndexPath path)
    method GetRootElement (line 33) | public RootElement GetRootElement()
    method GetContainerTableView (line 39) | public UITableView GetContainerTableView()
    method GetActiveCell (line 45) | public UITableViewCell GetActiveCell()
    method Matches (line 80) | public virtual bool Matches (string text)

FILE: CodeHub.iOS/DialogElements/EntryElement.cs
  class EntryElement (line 10) | public class EntryElement : Element
    method EntryElement (line 139) | public EntryElement (string caption, string placeholder, string value)
    method EntryElement (line 144) | public EntryElement (string caption, string placeholder, string value,...
    method ComputeEntryPosition (line 158) | CGSize ComputeEntryPosition (UITableView tv, UITableViewCell cell)
    method CreateTextField (line 182) | protected virtual UITextField CreateTextField (CGRect frame)
    method GetCell (line 199) | public override UITableViewCell GetCell (UITableView tv)
    method Selected (line 294) | public override void Selected (UITableView tableView, NSIndexPath inde...
    method Matches (line 300) | public override bool Matches (string text)
    method BecomeFirstResponder (line 311) | public virtual void BecomeFirstResponder (bool animated)
    method ResignFirstResponder (line 324) | public virtual void ResignFirstResponder (bool animated)

FILE: CodeHub.iOS/DialogElements/ExpandingInputElement.cs
  class ExpandingInputElement (line 11) | public class ExpandingInputElement : Element, IElementSizing
    method ExpandingInputElement (line 49) | public ExpandingInputElement(string description)
    method GetCell (line 57) | public override UITableViewCell GetCell(UITableView tv)
    class CustomInputCell (line 102) | private class CustomInputCell : UITableViewCell
      method CustomInputCell (line 110) | public CustomInputCell(string placeholder)
      method LayoutSubviews (line 128) | public override void LayoutSubviews()
    method GetHeight (line 135) | public nfloat GetHeight(UITableView tableView, NSIndexPath indexPath)

FILE: CodeHub.iOS/DialogElements/HtmlElement.cs
  class HtmlElement (line 12) | public class HtmlElement : Element, IElementSizing, IDisposable
    method SetValue (line 36) | public void SetValue(string value)
    method SetLayout (line 50) | public void SetLayout()
    method GetSize (line 55) | private async Task<nfloat> GetSize()
    method RefreshSize (line 77) | private async Task RefreshSize()
    method Dispose (line 87) | public void Dispose()
    method ForceResize (line 93) | public async Task ForceResize()
    method HtmlElement (line 102) | public HtmlElement (string cellKey)
    method CheckHeight (line 119) | public void CheckHeight()
    method Reload (line 129) | public void Reload()
    method GetHeight (line 134) | public nfloat GetHeight (UITableView tableView, NSIndexPath indexPath)
    method GetCell (line 139) | public override UITableViewCell GetCell (UITableView tv)
    method OnLoadFinished (line 156) | private void OnLoadFinished()
    method OnLoadStart (line 161) | private bool OnLoadStart(WKNavigationAction navigation)
    class NavigationDelegate (line 179) | private class NavigationDelegate : WKNavigationDelegate
      method NavigationDelegate (line 183) | public NavigationDelegate(HtmlElement parent)
      method DidFinishNavigation (line 188) | public override void DidFinishNavigation(WKWebView webView, WKNaviga...
      method DecidePolicy (line 193) | public override void DecidePolicy(WKWebView webView, WKNavigationAct...

FILE: CodeHub.iOS/DialogElements/IElementSizing.cs
  type IElementSizing (line 7) | public interface IElementSizing
    method GetHeight (line 9) | nfloat GetHeight (UITableView tableView, NSIndexPath indexPath);

FILE: CodeHub.iOS/DialogElements/IssueElement.cs
  class IssueElement (line 8) | public class IssueElement : Element, IElementSizing
    method IssueElement (line 21) | public IssueElement(string id, string title, string assigned, string s...
    method GetHeight (line 36) | public nfloat GetHeight (UITableView tableView, NSIndexPath indexPath)
    method GetCell (line 43) | public override UITableViewCell GetCell (UITableView tv)
    method Selected (line 50) | public override void Selected(UITableView tableView, NSIndexPath path)
    method Matches (line 56) | public override bool Matches(string text)

FILE: CodeHub.iOS/DialogElements/LabelElement.cs
  class LabelElement (line 6) | public class LabelElement : StringElement
    method LabelElement (line 10) | public LabelElement(string name, string color)
    method CreateImage (line 17) | private static UIImage CreateImage(string color)

FILE: CodeHub.iOS/DialogElements/LoadMoreElement.cs
  class LoadMoreElement (line 14) | public class LoadMoreElement : OwnerDrawnElement
    method LoadMoreElement (line 28) | public LoadMoreElement ()
    method LoadMoreElement (line 33) | public LoadMoreElement (string normalCaption, string loadingCaption, A...
    method LoadMoreElement (line 37) | public LoadMoreElement (string normalCaption, string loadingCaption, A...
    method Draw (line 47) | public override void Draw(CGRect bounds, CoreGraphics.CGContext contex...
    method CellCreated (line 55) | protected override void CellCreated(UITableViewCell cell, UIView view)
    method GetCell (line 72) | public override UITableViewCell GetCell (UITableView tv)
    method Selected (line 126) | public override void Selected (UITableView tableView, NSIndexPath path)
    method LoadMore (line 132) | private void LoadMore()
    method GetTextSize (line 143) | CGSize GetTextSize (string text)
    method Height (line 151) | public override nfloat Height(CGRect bounds)
    method Layout (line 156) | void Layout (UITableViewCell cell, UIActivityIndicatorView activityInd...

FILE: CodeHub.iOS/DialogElements/MenuElement.cs
  class MenuElement (line 7) | public class MenuElement : StringElement
    method MenuElement (line 24) | public MenuElement(string title, Action tapped, UIImage image, Uri ima...
    class Cell (line 35) | private class Cell : UITableViewCell
      method Cell (line 52) | public Cell(UITableViewCellStyle style, string key)
      method LayoutSubviews (line 65) | public override void LayoutSubviews()
    method GetCell (line 96) | public override UITableViewCell GetCell(UITableView tv)
    method CreateTableViewCell (line 105) | protected override UITableViewCell CreateTableViewCell(UITableViewCell...

FILE: CodeHub.iOS/DialogElements/MilestoneElement.cs
  class MilestoneElement (line 8) | public class MilestoneElement : Element
    method MilestoneElement (line 21) | public MilestoneElement(int number, string title, int openIssues, int ...
    method GetCell (line 30) | public override UITableViewCell GetCell(UITableView tv)
    method Selected (line 42) | public override void Selected(UITableView tableView, NSIndexPath path)

FILE: CodeHub.iOS/DialogElements/MultilinedElement.cs
  class MultilinedElement (line 10) | public class MultilinedElement : Element
    method MultilinedElement (line 56) | public MultilinedElement(string caption = null, string details = null)
    method GetCell (line 62) | public override UITableViewCell GetCell(UITableView tv)
    method Selected (line 70) | public override void Selected (UITableView tableView, NSIndexPath inde...

FILE: CodeHub.iOS/DialogElements/NewsFeedElement.cs
  class NewsFeedElement (line 11) | public class NewsFeedElement : Element
    class TextBlock (line 28) | public class TextBlock
      method TextBlock (line 33) | public TextBlock()
      method TextBlock (line 37) | public TextBlock(string value)
      method TextBlock (line 42) | public TextBlock(string value, Action tapped = null)
    method NewsFeedElement (line 49) | public NewsFeedElement(string imageUrl, DateTimeOffset time, IEnumerab...
    method CreateAttributedStringFromBlocks (line 66) | private static Tuple<NSMutableAttributedString,List<NewsCellView.Link>...
    method GetCell (line 110) | public override UITableViewCell GetCell (UITableView tv)
    method Selected (line 117) | public override void Selected(UITableView tableView, NSIndexPath path)

FILE: CodeHub.iOS/DialogElements/OwnerDrawnElement.cs
  class OwnerDrawnElement (line 8) | public abstract class OwnerDrawnElement : Element, IElementSizing
    method OwnerDrawnElement (line 20) | public OwnerDrawnElement (UITableViewCellStyle style, string cellIdent...
    method GetHeight (line 26) | public nfloat GetHeight (UITableView tableView, NSIndexPath indexPath)
    method GetCell (line 31) | public override UITableViewCell GetCell (UITableView tv)
    method CellCreated (line 51) | protected virtual void CellCreated(UITableViewCell cell, UIView view)
    method Draw (line 55) | public abstract void Draw(CGRect bounds, CGContext context, UIView view);
    method Height (line 57) | public abstract nfloat Height(CGRect bounds);
    class OwnerDrawnCell (line 59) | class OwnerDrawnCell : UITableViewCell
      method OwnerDrawnCell (line 63) | public OwnerDrawnCell(OwnerDrawnElement element, UITableViewCellStyl...
      method Update (line 88) | public void Update()
      method LayoutSubviews (line 94) | public override void LayoutSubviews()
    class OwnerDrawnCellView (line 102) | class OwnerDrawnCellView : UIView
      method OwnerDrawnCellView (line 106) | public OwnerDrawnCellView(OwnerDrawnElement element)
      method Update (line 123) | public void Update()
      method Draw (line 129) | public override void Draw (CGRect rect)

FILE: CodeHub.iOS/DialogElements/PaginateElement.cs
  class PaginateElement (line 5) | public class PaginateElement : LoadMoreElement
    method PaginateElement (line 7) | static PaginateElement()
    method PaginateElement (line 12) | public PaginateElement(string normal, string loading)
    method CellCreated (line 20) | protected override void CellCreated(UITableViewCell cell, UIView view)

FILE: CodeHub.iOS/DialogElements/PullRequestElement.cs
  class PullRequestElement (line 10) | public class PullRequestElement : Element
    method PullRequestElement (line 15) | public PullRequestElement(PullRequestModel model, Action action)
    method GetCell (line 21) | public override UITableViewCell GetCell (UITableView tv)
    method Matches (line 28) | public override bool Matches(string text)
    method Selected (line 33) | public override void Selected(UITableView tableView, NSIndexPath path)

FILE: CodeHub.iOS/DialogElements/RootElement.cs
  class RootElement (line 10) | public class RootElement : IEnumerable<Section>
    method RootElement (line 25) | public RootElement(UITableView tableView)
    method IndexOf (line 40) | internal int IndexOf (Section target)
    method Add (line 51) | public void Add (Section section)
    method Add (line 61) | public void Add (IEnumerable<Section> sections)
    method Add (line 67) | public void Add(params Section[] sections)
    method MakeIndexSet (line 72) | NSIndexSet MakeIndexSet (int start, int count)
    method Insert (line 80) | public void Insert (int idx, UITableViewRowAnimation anim, params Sect...
    method Insert (line 99) | public void Insert (int idx, Section section)
    method RemoveAt (line 104) | public void RemoveAt (int idx, UITableViewRowAnimation anim)
    method Remove (line 113) | public void Remove (Section s)
    method Remove (line 123) | public void Remove (Section s, UITableViewRowAnimation anim)
    method Clear (line 133) | public void Clear ()
    method Reset (line 141) | public void Reset(IEnumerable<Section> sections)
    method Reset (line 156) | public void Reset(params Section[] sections)
    method Reload (line 161) | public void Reload (Element element)
    method Reload (line 166) | public void Reload (Element[] elements)
    method GetEnumerator (line 183) | public IEnumerator<Section> GetEnumerator()
    method GetEnumerator (line 188) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...

FILE: CodeHub.iOS/DialogElements/Section.cs
  class Section (line 9) | public class Section : IEnumerable<Element> {
    method Section (line 27) | public Section()
    method Section (line 31) | public Section(UIView header, UIView footer = null)
    method Section (line 37) | public Section(string header, string footer = null)
    method Add (line 98) | public void Add (Element element)
    method Add (line 110) | public void Add(IEnumerable<Element> elements)
    method AddAll (line 122) | public int AddAll(IEnumerable<Element> elements)
    method Insert (line 144) | public void Insert (int idx, UITableViewRowAnimation anim, params Elem...
    method Insert (line 165) | public int Insert (int idx, UITableViewRowAnimation anim, IEnumerable<...
    method InsertVisual (line 189) | void InsertVisual (int idx, UITableViewRowAnimation anim, int count)
    method Insert (line 201) | public void Insert (int index, params Element [] newElements)
    method Remove (line 206) | public void Remove (Element e, UITableViewRowAnimation animation = UIT...
    method Remove (line 223) | public void Remove (int idx)
    method RemoveRange (line 240) | public void RemoveRange (int start, int count, UITableViewRowAnimation...
    method GetEnumerator (line 269) | public IEnumerator<Element> GetEnumerator()
    method GetEnumerator (line 274) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
    method Clear (line 284) | public void Clear ()
    method Reset (line 293) | public void Reset(IEnumerable<Element> elements, UITableViewRowAnimati...

FILE: CodeHub.iOS/DialogElements/SplitButtonElement.cs
  class SplitButtonElement (line 11) | public class SplitButtonElement : Element
    class Button (line 19) | public class Button
      method Button (line 24) | public Button(SplitButtonElement element, string text, string caption)
    method AddButton (line 54) | public Button AddButton(string caption, string text = null)
    method SplitButtonElement (line 61) | public SplitButtonElement()
    method GetCell (line 65) | public override UITableViewCell GetCell(UITableView tv)
    class SplitButtonCell (line 79) | private class SplitButtonCell : UITableViewCell
      method SplitButtonCell (line 84) | static SplitButtonCell()
      method SplitButtonCell (line 91) | public SplitButtonCell(int buttons)
      method SetButtons (line 102) | public void SetButtons(List<Button> items)
      method LayoutSubviews (line 115) | public override void LayoutSubviews()
    class SplitButton (line 131) | private class SplitButton : UIButton
      method SplitButton (line 162) | public SplitButton()
      method LayoutSubviews (line 183) | public override void LayoutSubviews()

FILE: CodeHub.iOS/DialogElements/SplitViewElement.cs
  class SplitViewElement (line 7) | public class SplitViewElement : Element, IElementSizing
    method SplitViewElement (line 16) | public SplitViewElement(UIImage image1, UIImage image2, string text1 =...
    method GetHeight (line 22) | public nfloat GetHeight(UITableView tableView, Foundation.NSIndexPath ...
    method GetCell (line 27) | public override UITableViewCell GetCell(UITableView tv)
    class SplitCell (line 37) | private class SplitCell : UITableViewCell
      method SplitCell (line 43) | static SplitCell()
      method SplitCell (line 49) | public SplitCell()
      method SetButtons (line 55) | public void SetButtons(UITableView tableView, SplitButton[] items)
      method LayoutSubviews (line 91) | public override void LayoutSubviews()
    class SplitButton (line 113) | public class SplitButton : UIButton
      method SplitButton (line 130) | public SplitButton(UIImage image, string text = null)
      method LayoutSubviews (line 149) | public override void LayoutSubviews()

FILE: CodeHub.iOS/DialogElements/StringElement.cs
  class ButtonElement (line 10) | public class ButtonElement : StringElement
    method ButtonElement (line 12) | public ButtonElement (string caption, string value, UIImage image = null)
    method ButtonElement (line 19) | public ButtonElement (string caption, UIImage image = null)
  class StringElement (line 25) | public class StringElement : Element
    method StringElement (line 144) | public StringElement()
    method StringElement (line 151) | public StringElement (string caption)
    method StringElement (line 157) | public StringElement (string caption, UIImage image)
    method StringElement (line 163) | public StringElement (string caption, string value)
    method StringElement (line 170) | public StringElement (string caption, string value, UITableViewCellSty...
    method StringElement (line 176) | public StringElement (string caption, UITableViewCellStyle style)
    method GetKey (line 206) | protected virtual string GetKey (int style)
    method CreateTableViewCell (line 211) | protected virtual UITableViewCell CreateTableViewCell(UITableViewCellS...
    method GetCell (line 216) | public override UITableViewCell GetCell (UITableView tv)
    method InitializeCell (line 223) | protected virtual UITableViewCell InitializeCell(UITableViewCell cell)
    method Selected (line 242) | public override void Selected (UITableView tableView, NSIndexPath inde...
    method Matches (line 248) | public override bool Matches (string text)

FILE: CodeHub.iOS/DialogElements/UserElement.cs
  class UserElement (line 8) | public class UserElement : StringElement
    method UserElement (line 10) | public UserElement(string username, string firstName, string lastName,...
    method CreateTableViewCell (line 22) | protected override UITableViewCell CreateTableViewCell(UITableViewCell...
    class PinnedImageTableViewCell (line 30) | private class PinnedImageTableViewCell : UITableViewCell
      method PinnedImageTableViewCell (line 32) | public PinnedImageTableViewCell(UITableViewCellStyle style, string key)
      method LayoutSubviews (line 43) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Images/Images.cs
  class Images (line 6) | public static class Images
    class Logos (line 38) | public static class Logos
    class Buttons (line 44) | public static class Buttons
    class Web (line 97) | public static class Web
    method CreateTemplateFromAuto (line 120) | private static UIImage CreateTemplateFromAuto(string path)

FILE: CodeHub.iOS/LinkerPleaseInclude.cs
  class LinkerPleaseInclude (line 5) | [Preserve]
    method Include (line 8) | public void Include(MvxPropertyInjector injector){

FILE: CodeHub.iOS/OcticonExtensions.cs
  class OcticonExtensions (line 10) | public static class OcticonExtensions
    method OcticonExtensions (line 14) | static OcticonExtensions()
    method ToImage (line 19) | public static UIImage ToImage(this Octicon @this, nfloat size, bool ca...
    method ToImage (line 52) | public static UIImage ToImage(this Octicon @this, bool cache = true)
    method ToEmptyListImage (line 57) | public static UIImage ToEmptyListImage(this Octicon @this)

FILE: CodeHub.iOS/Services/AlertDialogService.cs
  class AlertDialogService (line 14) | public class AlertDialogService : IAlertDialogService
    method PromptYesNo (line 16) | public Task<bool> PromptYesNo(string title, string message)
    method Alert (line 27) | public Task Alert(string title, string message)
    method ShowAlert (line 34) | public static void ShowAlert(string title, string message, Action dism...
    method Share (line 53) | public static void Share(string title = null, string body = null, stri...
    method PromptTextBox (line 95) | public Task<string> PromptTextBox(string title, string message, string...
    method Show (line 119) | public void Show(string text)
    method ShowSuccess (line 126) | public void ShowSuccess(string text)
    method ShowError (line 131) | public void ShowError(string text)
    method Hide (line 136) | public void Hide()

FILE: CodeHub.iOS/Services/FeaturesService.cs
  class FeaturesService (line 9) | public class FeaturesService : IFeaturesService
    method FeaturesService (line 18) | public FeaturesService(IInAppPurchaseService inAppPurchaseService)
    method ActivatePro (line 32) | public async Task ActivatePro()
    method ActivateProDirect (line 38) | public void ActivateProDirect()
    method RestorePro (line 43) | public async Task RestorePro()
    method IsActivated (line 49) | private bool IsActivated(string id)
    method ActivateUserNotifications (line 54) | private void ActivateUserNotifications()

FILE: CodeHub.iOS/Services/InAppPurchaseService.cs
  type IInAppPurchaseService (line 13) | public interface IInAppPurchaseService
    method RequestProductData (line 15) | Task<SKProductsResponse> RequestProductData(params string[] productIds);
    method Restore (line 17) | Task Restore();
    method PurchaseProduct (line 19) | Task PurchaseProduct(string productId);
  class InAppPurchaseService (line 24) | public class InAppPurchaseService : IInAppPurchaseService, IEnableLogger
    method InAppPurchaseService (line 34) | public InAppPurchaseService()
    method RequestProductData (line 40) | public async Task<SKProductsResponse> RequestProductData (params strin...
    method CanMakePayments (line 68) | public static bool CanMakePayments()
    method Restore (line 73) | public Task Restore()
    method PurchaseProduct (line 81) | public async Task PurchaseProduct(string productId)
    method CompleteTransaction (line 90) | private void CompleteTransaction (SKPaymentTransaction transaction)
    method RestoreTransaction (line 100) | private void RestoreTransaction (SKPaymentTransaction transaction)
    method FailedTransaction (line 113) | private void FailedTransaction (SKPaymentTransaction transaction)
    method DeferedTransaction (line 119) | private void DeferedTransaction()
    class TransactionObserver (line 125) | private class TransactionObserver : SKPaymentTransactionObserver, IEna...
      method TransactionObserver (line 129) | public TransactionObserver(InAppPurchaseService inAppPurchases)
      method UpdatedTransactions (line 134) | public override void UpdatedTransactions(SKPaymentQueue queue, SKPay...
      method RestoreCompletedTransactionsFinished (line 169) | public override void RestoreCompletedTransactionsFinished(SKPaymentQ...
      method RestoreCompletedTransactionsFailedWithError (line 175) | public override void RestoreCompletedTransactionsFailedWithError (SK...
  class SKProductExtension (line 192) | public static class SKProductExtension
    method LocalizedPrice (line 194) | public static string LocalizedPrice (this SKProduct product)

FILE: CodeHub.iOS/Services/MarkdownService.cs
  class MarkdownService (line 8) | public class MarkdownService : IMarkdownService
    method MarkdownService (line 14) | public MarkdownService()
    method Convert (line 22) | public Task<string> Convert(string c)

FILE: CodeHub.iOS/Services/NetworkActivityService.cs
  class NetworkActivityService (line 6) | public class NetworkActivityService : INetworkActivityService
    method PopNetworkActive (line 8) | public void PopNetworkActive()
    method PushNetworkActive (line 13) | public void PushNetworkActive()

FILE: CodeHub.iOS/Services/PushNotificationsService.cs
  class PushNotificationsService (line 12) | public class PushNotificationsService : IPushNotificationsService
    method Register (line 17) | public async Task Register()
    method Deregister (line 57) | public async Task Deregister()

FILE: CodeHub.iOS/Setup.cs
  class Setup (line 24) | public class Setup : MvxIosSetup
    method Setup (line 31) | public Setup(MvxApplicationDelegate applicationDelegate, IMvxIosViewPr...
    method CreateDebugTrace (line 36) | protected override MvvmCross.Platform.Platform.IMvxTrace CreateDebugTr...
    method GetViewModelAssemblies (line 45) | protected override IEnumerable<Assembly> GetViewModelAssemblies()
    method FillBindingNames (line 53) | protected override void FillBindingNames(IMvxBindingNameRegistry obj)
    method CreateApp (line 64) | protected override IMvxApplication CreateApp()
    class EmptyTrace (line 79) | private class EmptyTrace : MvvmCross.Platform.Platform.IMvxTrace
      method Trace (line 81) | public void Trace(MvvmCross.Platform.Platform.MvxTraceLevel level, s...
      method Trace (line 84) | public void Trace(MvvmCross.Platform.Platform.MvxTraceLevel level, s...
      method Trace (line 87) | public void Trace(MvvmCross.Platform.Platform.MvxTraceLevel level, s...

FILE: CodeHub.iOS/TableViewCells/CommitCellView.cs
  class CommitCellView (line 10) | public partial class CommitCellView : UITableViewCell
    method CommitCellView (line 16) | public CommitCellView()
    method CommitCellView (line 20) | public CommitCellView(IntPtr handle)
    method Create (line 25) | public static CommitCellView Create()
    method AwakeFromNib (line 32) | public override void AwakeFromNib()
    method Set (line 46) | public void Set(string title, string description, DateTimeOffset time,...
    method Dispose (line 55) | protected override void Dispose(bool disposing)

FILE: CodeHub.iOS/TableViewCells/CommitCellView.designer.cs
  class CommitCellView (line 12) | [Register ("CommitCellView")]
    method ReleaseDesignerOutlets (line 30) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/FeedbackCellView.cs
  class FeedbackCellView (line 11) | public partial class FeedbackCellView : ReactiveTableViewCell<FeedbackIt...
    method FeedbackCellView (line 17) | public FeedbackCellView(IntPtr handle)
    method AwakeFromNib (line 22) | public override void AwakeFromNib()

FILE: CodeHub.iOS/TableViewCells/FeedbackCellView.designer.cs
  class FeedbackCellView (line 12) | [Register ("FeedbackCellView")]
    method ReleaseDesignerOutlets (line 27) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/GistCellView.cs
  class GistCellView (line 10) | public partial class GistCellView : ReactiveTableViewCell<GistItemViewMo...
    method GistCellView (line 16) | public GistCellView(IntPtr handle)
    method AwakeFromNib (line 21) | public override void AwakeFromNib()
    method Dispose (line 46) | protected override void Dispose(bool disposing)

FILE: CodeHub.iOS/TableViewCells/GistCellView.designer.cs
  class GistCellView (line 12) | [Register ("GistCellView")]
    method ReleaseDesignerOutlets (line 30) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/IssueCellView.cs
  class IssueCellView (line 10) | public partial class IssueCellView : UITableViewCell
    method Create (line 14) | public static IssueCellView Create()
    method IssueCellView (line 47) | public IssueCellView()
    method IssueCellView (line 51) | public IssueCellView(IntPtr handle)
    method Bind (line 56) | public void Bind(string title, string status, string priority, string ...
    class SeperatorIssues (line 67) | private class SeperatorIssues : UIView
      method SeperatorIssues (line 69) | public SeperatorIssues()
      method SeperatorIssues (line 73) | public SeperatorIssues(IntPtr handle)
      method Draw (line 78) | public override void Draw(CGRect rect)

FILE: CodeHub.iOS/TableViewCells/IssueCellView.designer.cs
  class IssueCellView (line 12) | [Register ("IssueCellView")]
    method ReleaseDesignerOutlets (line 48) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/MilestoneTableViewCell.cs
  class MilestoneTableViewCell (line 9) | public class MilestoneTableViewCell : UITableViewCell
    method Init (line 14) | public void Init(string title, int openIssues, int closedIssues, DateT...
    method SetSelected (line 19) | public override void SetSelected(bool selected, bool animated)
    method SetHighlighted (line 24) | public override void SetHighlighted(bool highlighted, bool animated)
    method MilestoneTableViewCell (line 37) | public MilestoneTableViewCell()

FILE: CodeHub.iOS/TableViewCells/MultilinedCellView.cs
  class MultilinedCellView (line 7) | public partial class MultilinedCellView : UITableViewCell
    method MultilinedCellView (line 24) | public MultilinedCellView(IntPtr handle)
    method Create (line 32) | public static MultilinedCellView Create()
    method LayoutSubviews (line 40) | public override void LayoutSubviews()
    method AwakeFromNib (line 51) | public override void AwakeFromNib()

FILE: CodeHub.iOS/TableViewCells/MultilinedCellView.designer.cs
  class MultilinedCellView (line 12) | [Register ("MultilinedCellView")]
    method ReleaseDesignerOutlets (line 21) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/NewsCellView.cs
  class NewsCellView (line 10) | public partial class NewsCellView : UITableViewCell
    class Link (line 15) | public class Link
    method NewsCellView (line 22) | public NewsCellView(IntPtr handle) : base(handle)
    class LabelDelegate (line 26) | class LabelDelegate : Xamarin.TTTAttributedLabel.TTTAttributedLabelDel...
      method LabelDelegate (line 31) | public LabelDelegate(List<Link> links, Action<NSUrl> webLinkClicked)
      method DidSelectLinkWithURL (line 37) | public override void DidSelectLinkWithURL (Xamarin.TTTAttributedLabe...
    method Set (line 59) | public void Set(Uri imgUrl, string time, UIImage actionImage,
    method Create (line 95) | public static NewsCellView Create()

FILE: CodeHub.iOS/TableViewCells/NewsCellView.designer.cs
  class NewsCellView (line 12) | [Register ("NewsCellView")]
    method ReleaseDesignerOutlets (line 33) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/PullRequestCellView.cs
  class PullRequestCellView (line 10) | public partial class PullRequestCellView : UITableViewCell
    method PullRequestCellView (line 15) | public PullRequestCellView()
    method PullRequestCellView (line 19) | public PullRequestCellView(IntPtr handle)
    method Create (line 24) | public static PullRequestCellView Create()
    method AwakeFromNib (line 31) | public override void AwakeFromNib()
    method Set (line 44) | public void Set(string title, DateTimeOffset time, GitHubAvatar avatar)
    method Dispose (line 51) | protected override void Dispose(bool disposing)

FILE: CodeHub.iOS/TableViewCells/PullRequestCellView.designer.cs
  class PullRequestCellView (line 12) | [Register ("PullRequestCellView")]
    method ReleaseDesignerOutlets (line 27) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/TableViewCells/RepositoryCellView.cs
  class RepositoryCellView (line 10) | public partial class RepositoryCellView : ReactiveTableViewCell<Reposito...
    method RepositoryCellView (line 16) | public RepositoryCellView(IntPtr handle)
    method AwakeFromNib (line 22) | public override void AwakeFromNib()
    method Dispose (line 60) | protected override void Dispose(bool disposing)

FILE: CodeHub.iOS/TableViewCells/RepositoryCellView.designer.cs
  class RepositoryCellView (line 12) | [Register("RepositoryCellView")]
    method ReleaseDesignerOutlets (line 45) | void ReleaseDesignerOutlets()

FILE: CodeHub.iOS/TableViewCells/UserTableViewCell.cs
  class UserTableViewCell (line 10) | public class UserTableViewCell : ReactiveTableViewCell<UserItemViewModel>
    method UserTableViewCell (line 16) | public UserTableViewCell(IntPtr handle)
    method LayoutSubviews (line 33) | public override void LayoutSubviews()

FILE: CodeHub.iOS/TableViewSources/DialogTableViewSource.cs
  class DialogTableViewSource (line 11) | public class DialogTableViewSource : UITableViewSource
    method DialogTableViewSource (line 33) | public DialogTableViewSource(UITableView container)
    method RowsInSection (line 39) | public override nint RowsInSection(UITableView tableview, nint section)
    method NumberOfSections (line 44) | public override nint NumberOfSections(UITableView tableView)
    method TitleForHeader (line 49) | public override string TitleForHeader(UITableView tableView, nint sect...
    method TitleForFooter (line 54) | public override string TitleForFooter(UITableView tableView, nint sect...
    method GetCell (line 59) | public override UITableViewCell GetCell(UITableView tableView, NSIndex...
    method RowDeselected (line 66) | public override void RowDeselected(UITableView tableView, NSIndexPath ...
    method RowSelected (line 73) | public override void RowSelected(UITableView tableView, NSIndexPath in...
    method GetViewForHeader (line 81) | public override UIView GetViewForHeader(UITableView tableView, nint se...
    method GetHeightForHeader (line 87) | public override nfloat GetHeightForHeader(UITableView tableView, nint ...
    method GetViewForFooter (line 93) | public override UIView GetViewForFooter(UITableView tableView, nint se...
    method GetHeightForFooter (line 99) | public override nfloat GetHeightForFooter(UITableView tableView, nint ...
    method Scrolled (line 105) | public override void Scrolled(UIScrollView scrollView)
    method GetHeightForRow (line 110) | public override nfloat GetHeightForRow(UITableView tableView, NSIndexP...

FILE: CodeHub.iOS/TableViewSources/FeedbackTableViewSource.cs
  class FeedbackTableViewSource (line 8) | public class FeedbackTableViewSource : ReactiveTableViewSource<FeedbackI...
    method FeedbackTableViewSource (line 10) | public FeedbackTableViewSource(UITableView tableView, IReactiveNotifyC...

FILE: CodeHub.iOS/TableViewSources/GistTableViewSource.cs
  class GistTableViewSource (line 8) | public class GistTableViewSource : ReactiveTableViewSource<GistItemViewM...
    method GistTableViewSource (line 10) | public GistTableViewSource(UITableView tableView, IReactiveNotifyColle...

FILE: CodeHub.iOS/TableViewSources/ReactiveTableViewSource.cs
  class ReactiveTableViewSource (line 12) | public abstract class ReactiveTableViewSource<TViewModel> : ReactiveUI.R...
    method Scrolled (line 27) | public override void Scrolled(UIScrollView scrollView)
    method ReactiveTableViewSource (line 37) | protected ReactiveTableViewSource(UITableView tableView, nfloat height...
    method ReactiveTableViewSource (line 44) | protected ReactiveTableViewSource(UITableView tableView, IReactiveNoti...
    method WillDisplay (line 52) | public override void WillDisplay(UITableView tableView, UITableViewCel...
    method RowSelected (line 62) | public override void RowSelected(UITableView tableView, Foundation.NSI...
    method Dispose (line 70) | protected override void Dispose(bool disposing)
  type IInformsEnd (line 78) | public interface IInformsEnd

FILE: CodeHub.iOS/TableViewSources/RepositoryTableViewSource.cs
  class RepositoryTableViewSource (line 9) | public class RepositoryTableViewSource : ReactiveTableViewSource<Reposit...
    method RepositoryTableViewSource (line 13) | public RepositoryTableViewSource(UITableView tableView, IReactiveNotif...
    method RepositoryTableViewSource (line 19) | public RepositoryTableViewSource(UITableView tableView)

FILE: CodeHub.iOS/TableViewSources/UserTableViewSource.cs
  class UserTableViewSource (line 7) | public class UserTableViewSource : ReactiveTableViewSource<UserItemViewM...
    method UserTableViewSource (line 9) | public UserTableViewSource(UIKit.UITableView tableView, IReactiveNotif...

FILE: CodeHub.iOS/Theme.cs
  class Theme (line 7) | public class Theme
    method CreateBackgroundImage (line 11) | private static UIImage CreateBackgroundImage(UIColor color)
    method Setup (line 21) | public static void Setup()

FILE: CodeHub.iOS/TouchViewPresenter.cs
  class IosViewPresenter (line 12) | public class IosViewPresenter : MvxBaseIosViewPresenter
    method IosViewPresenter (line 18) | public IosViewPresenter(UIWindow window)
    method ChangePresentation (line 23) | public override void ChangePresentation(MvxPresentationHint hint)
    method Show (line 34) | public override void Show(MvxViewModelRequest request)
    method PresentModalViewController (line 62) | public override bool PresentModalViewController(UIViewController viewC...

FILE: CodeHub.iOS/Transitions/SlideDownTransition.cs
  class SlideDownTransition (line 6) | public class SlideDownTransition : UIViewControllerTransitioningDelegate
    method GetAnimationControllerForPresentedController (line 10) | public override IUIViewControllerAnimatedTransitioning GetAnimationCon...
    method GetAnimationControllerForDismissedController (line 17) | public override IUIViewControllerAnimatedTransitioning GetAnimationCon...
    class TransitionAnimator (line 23) | private class TransitionAnimator : UIViewControllerAnimatedTransitioning
      method TransitionDuration (line 27) | public override double TransitionDuration(IUIViewControllerContextTr...
      method AnimateTransition (line 32) | public override void AnimateTransition(IUIViewControllerContextTrans...

FILE: CodeHub.iOS/UrlRouterProvider.cs
  class UrlRouteProvider (line 12) | public static class UrlRouteProvider
    method Handle (line 30) | public static bool Handle(string path)
    class Route (line 59) | private class Route
      method Route (line 64) | public Route(string path, Type viewModelType)

FILE: CodeHub.iOS/Utilities/EasyLayout.cs
  class Layout (line 33) | public static class Layout
    method ConstrainLayout (line 44) | public static NSLayoutConstraint[] ConstrainLayout (this UIView view, ...
    method ConstrainLayout (line 59) | public static NSLayoutConstraint[] ConstrainLayout (this UIView view, ...
    method CompileConstraint (line 79) | static NSLayoutConstraint CompileConstraint (BinaryExpression expr, UI...
    method GetRight (line 110) | static Tuple<UIView, NSLayoutAttribute, float, float> GetRight (Expres...
    method IsConstant (line 172) | static bool IsConstant (Expression expr)
    method ConstantValue (line 194) | static float ConstantValue (Expression expr)
    method GetViewAndAttribute (line 199) | static Tuple<UIView, NSLayoutAttribute> GetViewAndAttribute (Expressio...
    method Eval (line 269) | static object Eval (Expression expr)
    method FindConstraints (line 298) | static void FindConstraints (Expression expr, List<BinaryExpression> c...
    method GetBaseline (line 315) | public static nfloat GetBaseline (this CoreGraphics.CGRect viewFrame)
    method GetCenterX (line 323) | public static nfloat GetCenterX (this CoreGraphics.CGRect viewFrame)
    method GetCenterY (line 331) | public static nfloat GetCenterY (this CoreGraphics.CGRect viewFrame)

FILE: CodeHub.iOS/Utilities/Graphics.cs
  class Graphics (line 8) | public static class Graphics
    method ImageFromFont (line 11) | public static UIImage ImageFromFont(UIFont font, char character, UICol...
    method MakeRoundedRectPath (line 42) | public static CGPath MakeRoundedRectPath (CGRect rect, float radius)
    method FillRoundedRect (line 62) | public static void FillRoundedRect (CGContext ctx, CGRect rect, float ...
    method MakeRoundedPath (line 69) | public static CGPath MakeRoundedPath (float size, float radius)

FILE: CodeHub.iOS/Utilities/Hud.cs
  class Hud (line 8) | public class Hud : IHud
    method Hud (line 11) | public Hud(UIView window)
    method Show (line 15) | public void Show(string text)
    method ShowSuccess (line 21) | public static void ShowSuccess(string text)
    method ShowFailure (line 27) | public static void ShowFailure(string text)
    method Hide (line 33) | public void Hide()
  class HudExtensions (line 39) | public static class HudExtensions
    method SubscribeStatus (line 41) | public static IDisposable SubscribeStatus(this IObservable<bool> @this...
    method Activate (line 69) | public static IDisposable Activate(this IHud hud, string text)
  type IHud (line 76) | public interface IHud
    method Show (line 78) | void Show(string text);
    method Hide (line 80) | void Hide();

FILE: CodeHub.iOS/Utilities/NetworkActivity.cs
  class NetworkActivity (line 7) | public static class NetworkActivity
    method PushNetworkActive (line 23) | public static void PushNetworkActive ()
    method PopNetworkActive (line 31) | public static void PopNetworkActive ()
    method ActivateNetwork (line 43) | public static IDisposable ActivateNetwork()

FILE: CodeHub.iOS/Utilities/ReactiveCommandExtensions.cs
  class ReactiveCommandExtensions (line 10) | public static class ReactiveCommandExtensions
    method ToBarButtonItem (line 12) | public static IDisposable ToBarButtonItem(this IObservable<ReactiveCom...
    method ToBarButtonItem (line 17) | public static IDisposable ToBarButtonItem(this IObservable<ReactiveCom...
    method ToBarButtonItem (line 22) | public static IDisposable ToBarButtonItem(this IObservable<ReactiveCom...

FILE: CodeHub.iOS/Utilities/ShaType.cs
  type ShaType (line 3) | public enum ShaType

FILE: CodeHub.iOS/Utilities/UIImageExtensions.cs
  class UIImageHelper (line 7) | public static class UIImageHelper
    method FromFileAuto (line 16) | public static UIImage FromFileAuto(string filename, string extension =...
    method LoadImageFromFile (line 31) | private static UIImage LoadImageFromFile(string filename, string exten...

FILE: CodeHub.iOS/Utilities/UIImageViewExtensions.cs
  class UIImageViewExtensions (line 10) | public static class UIImageViewExtensions
    method SetAvatar (line 12) | public static void SetAvatar(this UIImageView @this, GitHubAvatar avat...

FILE: CodeHub.iOS/Utilities/UIKitExtensions.cs
  class UIKitExtensions (line 11) | public static class UIKitExtensions
    method GetChangedObservable (line 13) | public static IObservable<int> GetChangedObservable(this UISegmentedCo...
    method GetChangedObservable (line 18) | public static IObservable<string> GetChangedObservable(this UITextFiel...
    method GetChangedObservable (line 23) | public static IObservable<string> GetChangedObservable(this UITextView...
    method GetClickedObservable (line 28) | public static IObservable<Unit> GetClickedObservable(this UIButton @this)
    method GetClickedObservable (line 33) | public static IObservable<UIBarButtonItem> GetClickedObservable(this U...
    method GetChangedObservable (line 38) | public static IObservable<Unit> GetChangedObservable(this UIRefreshCon...
    method GetChangedObservable (line 43) | public static IObservable<string> GetChangedObservable(this UISearchBa...
    method GetSearchObservable (line 48) | public static IObservable<Unit> GetSearchObservable(this UISearchBar @...
    method SetLoading (line 53) | public static void SetLoading(this UIActivityIndicatorView @this, bool...
    method DisableInteraction (line 61) | public static IDisposable DisableInteraction(this UIApplication applic...
    method GetVersion (line 67) | public static string GetVersion(this UIApplication _)
    method LastItemVisible (line 90) | public static bool LastItemVisible(this UITableView tableView)
    method PushViewController (line 105) | public static void PushViewController(this UIViewController This, UIVi...
    method PresentModalViewController (line 108) | public static void PresentModalViewController(this UIViewController Th...
  class UIFontExtensions (line 119) | public static class UIFontExtensions
    method MakeBold (line 121) | public static UIFont MakeBold(this UIFont font)
    method MakeItalic (line 130) | public static UIFont MakeItalic(this UIFont font)

FILE: CodeHub.iOS/Utilities/UIWindowExtensions.cs
  class UIWindowExtensions (line 4) | public static class UIWindowExtensions
    method GetVisibleViewController (line 6) | public static UIViewController GetVisibleViewController(this UIWindow ...

FILE: CodeHub.iOS/Utilities/ViewControllerExtensions.cs
  class ViewControllerExtensions (line 8) | public static class ViewControllerExtensions
    method ShowError (line 10) | public static void ShowError(this UIViewController viewController, str...
    method CreateHud (line 15) | public static IHud CreateHud(this UIViewController controller)
    method DoWorkAsync (line 20) | public async static Task<T> DoWorkAsync<T>(this UIViewController contr...
    method DoWorkAsync (line 52) | public async static Task DoWorkAsync(this UIViewController controller,...

FILE: CodeHub.iOS/ViewControllers/Accounts/AccountsViewController.cs
  class AccountsViewController (line 16) | public class AccountsViewController : DialogViewController
    method AccountsViewController (line 21) | public AccountsViewController() : base(UITableViewStyle.Plain)
    method AddAccount (line 30) | private void AddAccount()
    method ViewDidLoad (line 35) | public override void ViewDidLoad()
    method SelectAccount (line 41) | private async Task SelectAccount(Account account)
    method ViewWillAppear (line 47) | public override void ViewWillAppear(bool animated)
    method CreateSizingSource (line 67) | public override DialogViewController.Source CreateSizingSource()
    method Delete (line 72) | private void Delete(Element element)
    method SetCancelButton (line 90) | private void SetCancelButton()
    class EditSource (line 98) | private class EditSource : DialogViewController.Source
      method EditSource (line 100) | public EditSource(AccountsViewController dvc) : base (dvc)
      method CanEditRow (line 104) | public override bool CanEditRow(UITableView tableView, NSIndexPath i...
      method EditingStyleForRow (line 109) | public override UITableViewCellEditingStyle EditingStyleForRow(UITab...
      method CommitEditingStyle (line 114) | public override void CommitEditingStyle(UITableView tableView, UITab...
    class AccountElement (line 134) | protected class AccountElement : Element
      method AccountElement (line 142) | public AccountElement(Account account, bool currentAccount)
      method GetCell (line 148) | public override UITableViewCell GetCell(UITableView tv)
      method Selected (line 159) | public override void Selected (UITableView tableView, NSIndexPath in...
    class AccountCellView (line 166) | public class AccountCellView : UITableViewCell
      method AccountCellView (line 171) | public AccountCellView()
      method LayoutSubviews (line 185) | public override void LayoutSubviews()

FILE: CodeHub.iOS/ViewControllers/Accounts/AddAccountViewController.cs
  class AddAccountViewController (line 13) | public partial class AddAccountViewController : BaseViewController
    method AddAccountViewController (line 21) | public AddAccountViewController()
    method ViewDidLoad (line 35) | public override void ViewDidLoad()
    method SelectAuthenticationScheme (line 119) | private void SelectAuthenticationScheme(int scheme)
    method ViewWillAppear (line 142) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 149) | public override void ViewWillDisappear(bool animated)
    method OnKeyboardHideNotification (line 156) | private void OnKeyboardHideNotification(NSNotification notification)
    method OnKeyboardNotification (line 162) | private void OnKeyboardNotification (NSNotification notification)

FILE: CodeHub.iOS/ViewControllers/Accounts/AddAccountViewController.designer.cs
  class AddAccountViewController (line 12) | [Register ("AddAccountView")]
    method ReleaseDesignerOutlets (line 48) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Accounts/NewAccountViewController.cs
  class NewAccountViewController (line 10) | public class NewAccountViewController : BaseViewController
    method NewAccountViewController (line 16) | public NewAccountViewController(IFeaturesService featuresService = null)
    method ViewDidLoad (line 24) | public override void ViewDidLoad()
    method DotComButtonTouch (line 60) | private void DotComButtonTouch ()
    method EnterpriseButtonTouch (line 65) | private void EnterpriseButtonTouch ()
    class AccountButton (line 77) | private class AccountButton : UIButton
      method AccountButton (line 83) | public AccountButton(string text, UIImage image)

FILE: CodeHub.iOS/ViewControllers/Accounts/OAuthLoginViewController.cs
  class OAuthLoginViewController (line 16) | public class OAuthLoginViewController : BaseWebViewController
    method OAuthLoginViewController (line 27) | public OAuthLoginViewController(IAlertDialogService alertDialogService...
    method ViewDidLoad (line 41) | public override void ViewDidLoad()
    method ShouldStartLoad (line 55) | protected override bool ShouldStartLoad(WKWebView webView, WKNavigatio...
    method OnLoadError (line 85) | protected override void OnLoadError(NSError e)
    method LoadRequest (line 94) | private void LoadRequest()

FILE: CodeHub.iOS/ViewControllers/Application/EnterpriseSupportViewController.cs
  class EnterpriseSupportViewController (line 11) | public class EnterpriseSupportViewController : BaseViewController
    method EnterpriseSupportViewController (line 20) | public EnterpriseSupportViewController(IAlertDialogService alertDialog...
    method SubmitFeedback (line 30) | private void SubmitFeedback()
    method GoToGitHub (line 53) | private void GoToGitHub()
    method ViewDidLoad (line 59) | public override void ViewDidLoad()
    method WillRotate (line 139) | public override void WillRotate(UIInterfaceOrientation toInterfaceOrie...

FILE: CodeHub.iOS/ViewControllers/Application/FeedbackComposerViewController.cs
  class FeedbackComposerViewController (line 14) | public class FeedbackComposerViewController : TableViewController
    method FeedbackComposerViewController (line 18) | public FeedbackComposerViewController() : base(UITableViewStyle.Plain)
    method ViewDidLoad (line 24) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Application/FeedbackViewController.cs
  class FeedbackViewController (line 15) | public class FeedbackViewController : TableViewController
    method FeedbackViewController (line 26) | public FeedbackViewController()
    method ViewDidLoad (line 33) | public override void ViewDidLoad()
    method LoadData (line 67) | private void LoadData()
    method setHasError (line 80) | private void setHasError(Exception error)
    method SetHasItems (line 89) | private void SetHasItems(bool hasItems)

FILE: CodeHub.iOS/ViewControllers/Application/MenuViewController.cs
  class MenuViewController (line 20) | public class MenuViewController : ViewModelDrivenDialogViewController
    method MenuViewController (line 51) | public MenuViewController()
    method PromptPushNotifications (line 70) | private static async Task PromptPushNotifications()
    method UpdateProfilePicture (line 103) | private void UpdateProfilePicture()
    method CreateMenuRoot (line 117) | private void CreateMenuRoot()
    method ViewWillAppear (line 205) | public override void ViewWillAppear(bool animated)
    method GoToSearch (line 224) | private void GoToSearch()
    method GoToSettings (line 230) | private void GoToSettings()
    method GoToRepository (line 236) | private void GoToRepository(string owner, string name)
    method GoToSupport (line 242) | private void GoToSupport()
    method GoToOwnedRepositories (line 250) | private void GoToOwnedRepositories()
    method GoToStarredRepositories (line 256) | private void GoToStarredRepositories()
    method GoToTrendingRepositories (line 262) | private void GoToTrendingRepositories()
    method GoToOwnedGists (line 268) | private void GoToOwnedGists()
    method GoToStarredGists (line 275) | private void GoToStarredGists()
    method GoToPublicGists (line 281) | private void GoToPublicGists()
    method GoToUpgrades (line 287) | private void GoToUpgrades()
    method DidRotate (line 293) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOri...
    method ProfileButtonClicked (line 299) | private void ProfileButtonClicked()
    method ViewDidLoad (line 307) | public override void ViewDidLoad()
    class PinnedRepoElement (line 334) | private class PinnedRepoElement : MenuElement
      method PinnedRepoElement (line 338) | public PinnedRepoElement(Core.Data.PinnedRepository pinnedRepo)
    method DeletePinnedRepo (line 355) | private void DeletePinnedRepo(PinnedRepoElement el)
    method CreateSizingSource (line 370) | public override DialogViewController.Source CreateSizingSource()
    class EditSource (line 375) | private class EditSource : Source
      method EditSource (line 378) | public EditSource(MenuViewController dvc)
      method CanEditRow (line 384) | public override bool CanEditRow(UITableView tableView, Foundation.NS...
      method EditingStyleForRow (line 397) | public override UITableViewCellEditingStyle EditingStyleForRow(UITab...
      method CommitEditingStyle (line 408) | public override void CommitEditingStyle(UITableView tableView, UITab...

FILE: CodeHub.iOS/ViewControllers/Application/StartupViewController.cs
  class StartupViewController (line 13) | public class StartupViewController : BaseViewController
    method ViewWillLayoutSubviews (line 23) | public override void ViewWillLayoutSubviews()
    method ViewDidLoad (line 32) | public override void ViewDidLoad()
    method GoToMenu (line 74) | private void GoToMenu()
    method GetInitialMenuViewController (line 92) | private UIViewController GetInitialMenuViewController()
    method GoToNewAccount (line 127) | private void GoToNewAccount()
    method GoToAccounts (line 134) | private void GoToAccounts()
    method UpdatedImage (line 141) | public void UpdatedImage(Uri uri)
    method AssignUnknownUserImage (line 164) | private void AssignUnknownUserImage()
    method ViewWillAppear (line 172) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 181) | public override void ViewWillDisappear(bool animated)
    method ViewDidAppear (line 187) | public override void ViewDidAppear(bool animated)
    method ShouldAutorotate (line 193) | public override bool ShouldAutorotate()
    method ViewDidDisappear (line 198) | public override void ViewDidDisappear(bool animated)
    method PreferredStatusBarStyle (line 204) | public override UIStatusBarStyle PreferredStatusBarStyle()
    method GetSupportedInterfaceOrientations (line 209) | public override UIInterfaceOrientationMask GetSupportedInterfaceOrient...
    method PresentViewController (line 216) | public override void PresentViewController(UIViewController viewContro...

FILE: CodeHub.iOS/ViewControllers/Application/SupportViewController.cs
  class SupportViewController (line 16) | public class SupportViewController : BaseDialogViewController
    method ViewDidLoad (line 22) | public override void ViewDidLoad()
    method SendEmail (line 77) | private void SendEmail()
    method GoToRepository (line 101) | private void GoToRepository()
    class BigButtonElement (line 104) | private class BigButtonElement : ButtonElement, IElementSizing
      method BigButtonElement (line 106) | public BigButtonElement(string name, Octicon img) : base(name, img.T...
      method GetHeight (line 107) | public nfloat GetHeight(UITableView tableView, Foundation.NSIndexPat...

FILE: CodeHub.iOS/ViewControllers/Application/UpgradeViewController.cs
  class UpgradeViewController (line 15) | public class UpgradeViewController : BaseWebViewController
    method UpgradeViewController (line 23) | public UpgradeViewController() : base(false, false)
    method ViewDidLoad (line 28) | public override void ViewDidLoad()
    method Load (line 42) | private async Task Load()
    method ShouldStartLoad (line 80) | protected override bool ShouldStartLoad(WebKit.WKWebView webView, WebK...
    method Activate (line 121) | private async Task Activate(Func<Task> activation)
    method Present (line 136) | public static UpgradeViewController Present(UIViewController parent)

FILE: CodeHub.iOS/ViewControllers/BaseDialogViewController.cs
  class BaseDialogViewController (line 10) | public abstract class BaseDialogViewController : TableViewController
    method BaseDialogViewController (line 53) | protected BaseDialogViewController()
    method ViewWillAppear (line 72) | public override void ViewWillAppear(bool animated)
    method DidRotate (line 83) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOri...
    method CreateTableViewSource (line 91) | protected virtual DialogTableViewSource CreateTableViewSource()
    method RefreshHeaderView (line 96) | protected void RefreshHeaderView(string text = null, string subtext = ...
    method ViewDidLoad (line 104) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/BaseViewController.cs
  class BaseViewController (line 10) | public abstract class BaseViewController : ReactiveViewController, IActi...
    method OnActivation (line 35) | public void OnActivation(Action<Action<IDisposable>> d)
    method BaseViewController (line 40) | protected BaseViewController()
    method BaseViewController (line 45) | protected BaseViewController(string nib, NSBundle bundle)
    method CommonConstructor (line 51) | private void CommonConstructor()
    method ViewWillAppear (line 56) | public override void ViewWillAppear(bool animated)
    method ViewDidAppear (line 62) | public override void ViewDidAppear(bool animated)
    method ViewWillDisappear (line 68) | public override void ViewWillDisappear(bool animated)
    method ViewDidDisappear (line 74) | public override void ViewDidDisappear(bool animated)
    method ViewDidLoad (line 80) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/BaseWebViewController.cs
  class BaseWebViewController (line 9) | public abstract class BaseWebViewController : BaseViewController
    method GoBack (line 20) | protected virtual void GoBack()
    method Refresh (line 25) | protected virtual void Refresh()
    method GoForward (line 30) | protected virtual void GoForward()
    method BaseWebViewController (line 35) | protected BaseWebViewController()
    method BaseWebViewController (line 40) | protected BaseWebViewController(bool navigationToolbar, bool showPageA...
    class NavigationDelegate (line 68) | private class NavigationDelegate : WKNavigationDelegate
      method NavigationDelegate (line 72) | public NavigationDelegate(BaseWebViewController webView)
      method DidFinishNavigation (line 77) | public override void DidFinishNavigation(WKWebView webView, WKNaviga...
      method DidStartProvisionalNavigation (line 82) | public override void DidStartProvisionalNavigation(WKWebView webView...
      method DidFailNavigation (line 87) | public override void DidFailNavigation(WKWebView webView, WKNavigati...
      method DecidePolicy (line 92) | public override void DecidePolicy(WKWebView webView, WKNavigationAct...
    method ShouldStartLoad (line 99) | protected virtual bool ShouldStartLoad (WKWebView webView, WKNavigatio...
    method ActivateLoadingIndicator (line 104) | private void ActivateLoadingIndicator()
    method DeactivateLoadingIndicator (line 111) | private void DeactivateLoadingIndicator()
    method OnLoadError (line 118) | protected virtual void OnLoadError (NSError error)
    method OnLoadStarted (line 128) | protected virtual void OnLoadStarted (object sender, EventArgs e)
    method OnLoadFinished (line 136) | protected virtual void OnLoadFinished(object sender, EventArgs e)
    method ViewWillDisappear (line 155) | public override void ViewWillDisappear(bool animated)
    method ViewDidLoad (line 162) | public override void ViewDidLoad()
    method ViewWillLayoutSubviews (line 171) | public override void ViewWillLayoutSubviews()
    method JavaScriptStringEncode (line 177) | protected static string JavaScriptStringEncode(string data)
    method UrlDecode (line 182) | protected static string UrlDecode(string data)
    method LoadFile (line 187) | protected string LoadFile(string path)
    method LoadContent (line 197) | protected void LoadContent(string content)
    method ViewWillAppear (line 202) | public override void ViewWillAppear(bool animated)
    method ViewDidDisappear (line 238) | public override void ViewDidDisappear(bool animated)
    method DidRotate (line 246) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOri...

FILE: CodeHub.iOS/ViewControllers/Composer.cs
  class Composer (line 10) | public class Composer : BaseViewController
    method Composer (line 25) | public Composer () : base (null, null)
    method ImageFromColor (line 47) | private UIImage ImageFromColor(UIColor color)
    method CreateAccessoryButton (line 58) | public static UIButton CreateAccessoryButton(UIImage image, Action act...
    method CreateAccessoryButton (line 73) | public static UIButton CreateAccessoryButton(string title, Action action)
    method CalculateHeight (line 89) | private float CalculateHeight(UIInterfaceOrientation orientation)
    method WillRotate (line 100) | public override void WillRotate(UIInterfaceOrientation toInterfaceOrie...
    method SetAccesoryButtons (line 115) | public void SetAccesoryButtons(IEnumerable<UIButton> buttons)
    method KeyboardChange (line 135) | void KeyboardChange(NSNotification notification)
    method ViewWillAppear (line 149) | public override void ViewWillAppear (bool animated)
    method ViewWillDisappear (line 162) | public override void ViewWillDisappear(bool animated)
    method PresentAsModal (line 171) | public void PresentAsModal(UIViewController parent, Action<string> onS...

FILE: CodeHub.iOS/ViewControllers/DialogViewController.cs
  class DialogViewController (line 26) | public class DialogViewController : TableViewController
    method DidRotate (line 38) | public override void DidRotate (UIInterfaceOrientation fromInterfaceOr...
    method StartSearch (line 50) | public void StartSearch ()
    method CreateOriginals (line 59) | private void CreateOriginals(RootElement root)
    method FinishSearch (line 70) | public virtual void FinishSearch ()
    method PerformFilter (line 84) | public void PerformFilter (string text)
    method SearchButtonClicked (line 114) | public virtual void SearchButtonClicked (string text)
    class SearchDelegate (line 119) | protected class SearchDelegate : UISearchBarDelegate {
      method SearchDelegate (line 122) | public SearchDelegate (DialogViewController container)
      method OnEditingStarted (line 127) | public override void OnEditingStarted (UISearchBar searchBar)
      method OnEditingStopped (line 133) | public override void OnEditingStopped (UISearchBar searchBar)
      method TextChanged (line 139) | public override void TextChanged (UISearchBar searchBar, string sear...
      method CancelButtonClicked (line 144) | public override void CancelButtonClicked (UISearchBar searchBar)
      method SearchButtonClicked (line 156) | public override void SearchButtonClicked (UISearchBar searchBar)
    method DidScroll (line 162) | protected virtual void DidScroll(CGPoint p)
    class Source (line 166) | public class Source : UITableViewSource {
      method Source (line 176) | public Source (DialogViewController container)
      method RowsInSection (line 181) | public override nint RowsInSection (UITableView tableview, nint sect...
      method NumberOfSections (line 188) | public override nint NumberOfSections (UITableView tableView)
      method TitleForHeader (line 193) | public override string TitleForHeader (UITableView tableView, nint s...
      method TitleForFooter (line 198) | public override string TitleForFooter (UITableView tableView, nint s...
      method GetCell (line 203) | public override UITableViewCell GetCell (UITableView tableView, NSIn...
      method RowDeselected (line 210) | public override void RowDeselected (UITableView tableView, NSIndexPa...
      method RowSelected (line 215) | public override void RowSelected (UITableView tableView, NSIndexPath...
      method GetViewForHeader (line 220) | public override UIView GetViewForHeader (UITableView tableView, nint...
      method GetHeightForHeader (line 226) | public override nfloat GetHeightForHeader (UITableView tableView, ni...
      method GetViewForFooter (line 232) | public override UIView GetViewForFooter (UITableView tableView, nint...
      method GetHeightForFooter (line 238) | public override nfloat GetHeightForFooter (UITableView tableView, ni...
      method Scrolled (line 244) | public override void Scrolled (UIScrollView scrollView)
      method GetHeightForRow (line 249) | public override nfloat GetHeightForRow (UITableView tableView, NSInd...
    method CreateSearchDelegate (line 259) | protected virtual IUISearchBarDelegate CreateSearchDelegate()
    method SetupSearch (line 264) | void SetupSearch ()
    method Deselected (line 279) | public virtual void Deselected (NSIndexPath indexPath)
    method Selected (line 287) | public virtual void Selected (NSIndexPath indexPath)
    method CreateSizingSource (line 295) | public virtual Source CreateSizingSource()
    method LoadView (line 301) | public override void LoadView ()
    method ViewWillAppear (line 308) | public override void ViewWillAppear (bool animated)
    method ReloadData (line 326) | public void ReloadData ()
    method DialogViewController (line 331) | public DialogViewController (UITableViewStyle style, bool pushing = true)

FILE: CodeHub.iOS/ViewControllers/Events/BaseEventsViewController.cs
  class BaseEventsViewController (line 13) | public abstract class BaseEventsViewController : ViewModelCollectionDriv...
    method BaseEventsViewController (line 42) | protected BaseEventsViewController()
    method ViewDidLoad (line 48) | public override void ViewDidLoad()
    method CreateElement (line 75) | private static Element CreateElement(Tuple<EventModel, BaseEventsViewM...
    method ChooseImage (line 120) | private static EventType ChooseImage(EventModel eventModel)
    type EventType (line 171) | public enum EventType

FILE: CodeHub.iOS/ViewControllers/Events/NewsViewController.cs
  class NewsViewController (line 5) | public class NewsViewController : BaseEventsViewController
    method NewsViewController (line 7) | public NewsViewController()
    method Create (line 12) | public static NewsViewController Create()

FILE: CodeHub.iOS/ViewControllers/Events/OrganizationEventsViewController.cs
  class OrganizationEventsViewController (line 3) | public class OrganizationEventsViewController : BaseEventsViewController

FILE: CodeHub.iOS/ViewControllers/Events/RepositoryEventsViewController.cs
  class RepositoryEventsViewController (line 5) | public class RepositoryEventsViewController : BaseEventsViewController
    method RepositoryEventsViewController (line 7) | public RepositoryEventsViewController()
    method RepositoryEventsViewController (line 11) | public RepositoryEventsViewController(string username, string repository)

FILE: CodeHub.iOS/ViewControllers/Events/UserEventsViewController.cs
  class UserEventsViewController (line 5) | public class UserEventsViewController : BaseEventsViewController
    method UserEventsViewController (line 7) | public UserEventsViewController()
    method UserEventsViewController (line 11) | public UserEventsViewController(string username)

FILE: CodeHub.iOS/ViewControllers/FilterViewController.cs
  class FilterViewController (line 10) | public abstract class FilterViewController : DialogViewController
    method FilterViewController (line 12) | protected FilterViewController()
    method ApplyButtonPressed (line 30) | public abstract void ApplyButtonPressed();
    method CloseViewController (line 32) | public void CloseViewController()
    method ViewWillAppear (line 37) | public override void ViewWillAppear(bool animated)
    class EnumChoiceElement (line 43) | public class EnumChoiceElement<T> : StringElement where T : struct, IC...
      method EnumChoiceElement (line 57) | public EnumChoiceElement(string title, T defaultVal)
    method CreateEnumElement (line 65) | public EnumChoiceElement<T> CreateEnumElement<T>(string title, T value...
    class MultipleChoiceElement (line 97) | public class MultipleChoiceElement<T> : StringElement
      method MultipleChoiceElement (line 100) | public MultipleChoiceElement(string title, T obj)
    method CreateMultipleChoiceElement (line 108) | protected MultipleChoiceElement<T> CreateMultipleChoiceElement<T>(stri...
    method CreateCaptionForMultipleChoice (line 123) | private static string CreateCaptionForMultipleChoice<T>(T o)

FILE: CodeHub.iOS/ViewControllers/Filters/IssueMilestonesFilterViewController.cs
  class IssueMilestonesFilterViewController (line 10) | public class IssueMilestonesFilterViewController : DialogViewController
    method ViewDidLoad (line 17) | public async override void ViewDidLoad()
    method IssueMilestonesFilterViewController (line 35) | public IssueMilestonesFilterViewController(string user, string repo, b...

FILE: CodeHub.iOS/ViewControllers/Filters/IssuesFilterViewController.cs
  class IssuesFilterViewController (line 9) | public class IssuesFilterViewController : FilterViewController
    method IssuesFilterViewController (line 22) | public IssuesFilterViewController(string user, string repo, IFilterabl...
    method ApplyButtonPressed (line 29) | public override void ApplyButtonPressed()
    method CreateFilterModel (line 34) | private IssuesFilterModel CreateFilterModel()
    method RefreshMilestone (line 48) | private void RefreshMilestone()
    method ViewDidLoad (line 56) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Filters/MyIssuesFilterViewController.cs
  class MyIssuesFilterViewController (line 9) | public class MyIssuesFilterViewController : FilterViewController
    method MyIssuesFilterViewController (line 20) | public MyIssuesFilterViewController(IFilterableViewModel<MyIssuesFilte...
    method ApplyButtonPressed (line 25) | public override void ApplyButtonPressed()
    method CreateFilterModel (line 30) | private MyIssuesFilterModel CreateFilterModel()
    method ViewDidLoad (line 41) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Gists/GistCreateViewController.cs
  class GistCreateViewController (line 13) | public class GistCreateViewController : DialogViewController
    method GistCreateViewController (line 17) | public GistCreateViewController() : base(UITableViewStyle.Grouped)
    method Show (line 23) | public static GistCreateViewController Show(UIViewController parent)
    method ViewDidLoad (line 37) | public override void ViewDidLoad()
    method AddFile (line 60) | private void AddFile()
    method ViewWillAppear (line 86) | public override void ViewWillAppear(bool animated)
    method UpdateView (line 92) | protected void UpdateView()
    method ChangeDescription (line 148) | private void ChangeDescription()
    method CreateSizingSource (line 163) | public override DialogViewController.Source CreateSizingSource()
    method Delete (line 168) | private void Delete(Element element)
    class EditSource (line 175) | private class EditSource : Source
      method EditSource (line 177) | public EditSource(GistCreateViewController dvc)
      method CanEditRow (line 182) | public override bool CanEditRow(UITableView tableView, Foundation.NS...
      method EditingStyleForRow (line 187) | public override UITableViewCellEditingStyle EditingStyleForRow(UITab...
      method CommitEditingStyle (line 194) | public override void CommitEditingStyle(UITableView tableView, UITab...

FILE: CodeHub.iOS/ViewControllers/Gists/GistEditViewController.cs
  class GistEditViewController (line 14) | public class GistEditViewController : DialogViewController
    method GistEditViewController (line 20) | public GistEditViewController(Gist gist)
    method Discard (line 34) | private void Discard()
    method Save (line 39) | private async Task Save()
    method IsDuplicateName (line 69) | private bool IsDuplicateName(string name)
    method GenerateName (line 77) | private string GenerateName()
    method AddFile (line 91) | private void AddFile()
    method ViewDidLoad (line 106) | public override void ViewDidLoad()
    method ViewWillAppear (line 127) | public override void ViewWillAppear(bool animated)
    method UpdateView (line 136) | protected void UpdateView()
    method MakeCallback (line 167) | private static Action<object> MakeCallback(GistEditViewController ctrl...
    method ChangeDescription (line 203) | private void ChangeDescription()
    method CreateSizingSource (line 218) | public override DialogViewController.Source CreateSizingSource()
    method Delete (line 223) | private void Delete(Element element, Section section)
    class FileElement (line 238) | private class FileElement : StringElement
      method FileElement (line 242) | public FileElement(string name, string key, GistFileUpdate file)
    class EditSource (line 252) | private class EditSource : Source
      method EditSource (line 254) | public EditSource(GistEditViewController dvc)
      method CanEditRow (line 259) | public override bool CanEditRow(UITableView tableView, Foundation.NS...
      method EditingStyleForRow (line 264) | public override UITableViewCellEditingStyle EditingStyleForRow(UITab...
      method CommitEditingStyle (line 271) | public override void CommitEditingStyle(UITableView tableView, UITab...

FILE: CodeHub.iOS/ViewControllers/Gists/GistFileModifyViewController.cs
  class GistFileEditViewController (line 12) | public class GistFileEditViewController :  GistFileModifyViewController
  class GistFileAddViewController (line 16) | public class GistFileAddViewController : GistFileModifyViewController
  class GistFileModifyViewController (line 20) | public abstract class GistFileModifyViewController : DialogViewController
    method GistFileModifyViewController (line 40) | protected GistFileModifyViewController()
    method ViewDidLoad (line 53) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Gists/GistFileViewController.cs
  class GistFileViewController (line 17) | public class GistFileViewController : BaseWebViewController
    method GistFileViewController (line 38) | public GistFileViewController(
    method HandleLoadError (line 88) | private UserError HandleLoadError(Exception error)
    method Load (line 94) | private async Task Load()
    method LoadSource (line 111) | async Task LoadSource(Uri fileUri, bool isMarkdown)
    method LoadSource (line 118) | async Task LoadSource(string content, string filename, bool isMarkdown)
    method PresentOpenIn (line 139) | private void PresentOpenIn(UIBarButtonItem barButtonItem)
    method Share (line 149) | private void Share(UIBarButtonItem barButtonItem)
    method ShowInBrowser (line 161) | private void ShowInBrowser()
    method CreateActionSheet (line 171) | private void CreateActionSheet(UIBarButtonItem barButtonItem)

FILE: CodeHub.iOS/ViewControllers/Gists/GistViewController.cs
  class GistViewController (line 19) | public class GistViewController : PrettyDialogViewController
    method FromGist (line 32) | public static GistViewController FromGist(Gist gist)
    method GistViewController (line 40) | public GistViewController()
    method ViewDidLoad (line 44) | public override void ViewDidLoad()
    method RenderGist (line 109) | public void RenderGist()
    method GoToGist (line 144) | private void GoToGist(GistFile model)
    method Fork (line 154) | private async Task Fork()
    method Compose (line 166) | private async Task Compose()
    method ShareButtonTap (line 183) | void ShareButtonTap (object sender)

FILE: CodeHub.iOS/ViewControllers/Gists/GistsViewController.cs
  class GistsViewController (line 15) | public class GistsViewController : TableViewController
    method CreatePublicGistsViewController (line 27) | public static GistsViewController CreatePublicGistsViewController()
    method CreateStarredGistsViewController (line 37) | public static GistsViewController CreateStarredGistsViewController()
    method CreateUserGistsViewController (line 43) | public static GistsViewController CreateUserGistsViewController(string...
    method GistsViewController (line 73) | public GistsViewController(GistsViewModel viewModel)
    method ViewDidLoad (line 80) | public override void ViewDidLoad()
    method SetItemsPresent (line 129) | private void SetItemsPresent(bool hasItems)

FILE: CodeHub.iOS/ViewControllers/MarkdownComposerViewController.cs
  class MarkdownComposerViewController (line 14) | public class MarkdownComposerViewController : Composer
    method MarkdownComposerViewController (line 20) | public MarkdownComposerViewController(IMarkdownService markdownService...
    method SegmentValueChanged (line 40) | void SegmentValueChanged()
    method LoadPreview (line 66) | private async Task LoadPreview(WKWebView previewView)

FILE: CodeHub.iOS/ViewControllers/MessageComposerViewController.cs
  class MessageComposerViewController (line 9) | public class MessageComposerViewController : BaseViewController, IActiva...
    method MessageComposerViewController (line 17) | public MessageComposerViewController()
    method ViewDidLoad (line 43) | public override void ViewDidLoad()
    method ViewDidLayoutSubviews (line 49) | public override void ViewDidLayoutSubviews()
    method KeyboardWillShow (line 55) | void KeyboardWillShow (NSNotification notification)
    method KeyboardWillHide (line 63) | void KeyboardWillHide (NSNotification notification)
    method ResizeTextView (line 69) | private void ResizeTextView()
    method ViewWillAppear (line 74) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 83) | public override void ViewWillDisappear(bool animated)
    method ViewDidDisappear (line 89) | public override void ViewDidDisappear(bool animated)
    method ViewDidAppear (line 97) | public override void ViewDidAppear(bool animated)
    method CalculateHeight (line 103) | private static float CalculateHeight(UIInterfaceOrientation orientation)
    method WillRotate (line 112) | public override void WillRotate(UIInterfaceOrientation toInterfaceOrie...

FILE: CodeHub.iOS/ViewControllers/MultipleChoiceViewController.cs
  class MultipleChoiceViewController (line 9) | public class MultipleChoiceViewController : DialogViewController
    method OnValueSelected (line 13) | protected void OnValueSelected(System.Reflection.PropertyInfo field)
    method MultipleChoiceViewController (line 23) | public MultipleChoiceViewController(string title, object obj)

FILE: CodeHub.iOS/ViewControllers/Organizations/OrganizationViewController.cs
  class OrganizationViewController (line 13) | public class OrganizationViewController : PrettyDialogViewController
    method ViewDidLoad (line 15) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Organizations/OrganizationsViewController.cs
  class OrganizationsViewController (line 10) | public class OrganizationsViewController : ViewModelCollectionDrivenDial...
    method OrganizationsViewController (line 12) | public OrganizationsViewController()
    method OrganizationsViewController (line 19) | public OrganizationsViewController(string username) : this()
    method ViewDidLoad (line 26) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Organizations/TeamsViewController.cs
  class TeamsViewController (line 10) | public class TeamsViewController : ViewModelCollectionDrivenDialogViewCo...
    method TeamsViewController (line 12) | public TeamsViewController()
    method ViewDidLoad (line 19) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/PullRequests/PullRequestDiffViewController.cs
  class PullRequestDiffViewController (line 21) | public class PullRequestDiffViewController : BaseWebViewController
    method PullRequestDiffViewController (line 36) | public PullRequestDiffViewController(
    method ViewDidLoad (line 80) | public override void ViewDidLoad()
    method Render (line 91) | private async Task Render()
    class JavascriptComment (line 118) | private class JavascriptComment
    class JavascriptReplyComment (line 124) | private class JavascriptReplyComment
    method ShouldStartLoad (line 129) | protected override bool ShouldStartLoad(WKWebView webView, WKNavigatio...
    method PromptForComment (line 152) | private void PromptForComment(JavascriptComment model)
    method ShowCommentComposer (line 173) | private void ShowCommentComposer(int line)
    method ShowReplyCommentComposer (line 184) | private void ShowReplyCommentComposer(int replyToId)
    method ShowComposer (line 195) | private void ShowComposer(Func<string, Task> workFn)

FILE: CodeHub.iOS/ViewControllers/Repositories/LanguagesViewController.cs
  class LanguagesViewController (line 15) | public class LanguagesViewController : DialogViewController
    method LanguagesViewController (line 26) | public LanguagesViewController()
    method ViewDidLoad (line 33) | public override void ViewDidLoad()
    method Load (line 39) | private async Task Load()
    method LoadLanguages (line 53) | private async Task LoadLanguages()

FILE: CodeHub.iOS/ViewControllers/Repositories/PrivateRepositoryViewController.cs
  class PrivateRepositoryViewController (line 9) | public partial class PrivateRepositoryViewController : BaseViewController
    method PrivateRepositoryViewController (line 11) | public PrivateRepositoryViewController() : base("PrivateRepositoryView...
    method ViewDidLoad (line 15) | public override void ViewDidLoad()
  class PrivateRepositoryViewControllerExtensions (line 31) | public static class PrivateRepositoryViewControllerExtensions
    method ShowPrivateView (line 33) | public static IDisposable ShowPrivateView(this UIViewController @this)

FILE: CodeHub.iOS/ViewControllers/Repositories/PrivateRepositoryViewController.designer.cs
  class PrivateRepositoryViewController (line 12) | [Register ("PrivateRepositoryViewController")]
    method ReleaseDesignerOutlets (line 27) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Repositories/ReadmeViewController.cs
  class ReadmeViewController (line 17) | public class ReadmeViewController : BaseWebViewController
    method ReadmeViewController (line 29) | public ReadmeViewController(
    method SetErrorView (line 84) | private void SetErrorView()
    method ConvertToWebView (line 98) | private async Task<string> ConvertToWebView(Octokit.Readme readme)
    method ShouldStartLoad (line 105) | protected override bool ShouldStartLoad(WebKit.WKWebView webView, WebK...
    method ShareButtonPress (line 117) | private void ShareButtonPress(UIBarButtonItem barButtonItem)

FILE: CodeHub.iOS/ViewControllers/Repositories/RepositoriesViewController.cs
  class RepositoriesViewController (line 13) | public class RepositoriesViewController : TableViewController
    method CreateMineViewController (line 25) | public static RepositoriesViewController CreateMineViewController()
    method CreateUserViewController (line 31) | public static RepositoriesViewController CreateUserViewController(stri...
    method CreateStarredViewController (line 37) | public static RepositoriesViewController CreateStarredViewController()
    method CreateWatchedViewController (line 43) | public static RepositoriesViewController CreateWatchedViewController()
    method CreateForkedViewController (line 49) | public static RepositoriesViewController CreateForkedViewController(st...
    method CreateOrganizationViewController (line 55) | public static RepositoriesViewController CreateOrganizationViewControl...
    method RepositoriesViewController (line 61) | public RepositoriesViewController(RepositoriesViewModel viewModel)
    method ViewDidLoad (line 71) | public override void ViewDidLoad()
    method LoadData (line 113) | private void LoadData()
    method setHasError (line 126) | private void setHasError(Exception error)
    method SetHasItems (line 135) | private void SetHasItems(bool hasItems)

FILE: CodeHub.iOS/ViewControllers/Repositories/RepositoryViewController.cs
  class RepositoryViewController (line 22) | public class RepositoryViewController : PrettyDialogViewController
    method ViewDidLoad (line 33) | public override void ViewDidLoad()
    method ShowExtraMenu (line 128) | private void ShowExtraMenu(UIBarButtonItem barButtonItem)
    method CreateCodeHubViewController (line 193) | public static RepositoryViewController CreateCodeHubViewController()
    method RepositoryViewController (line 196) | public RepositoryViewController(Octokit.Repository repository)
    method RepositoryViewController (line 201) | public RepositoryViewController(
    method GoToSourceCode (line 212) | private void GoToSourceCode()
    method GoToReadme (line 226) | private void GoToReadme()
    method GoToForkedRepository (line 232) | private void GoToForkedRepository(Octokit.Repository repo)
    method GoToCommits (line 240) | private void GoToCommits()
    method RepositoryViewController (line 259) | public RepositoryViewController()
    method Render (line 269) | public void Render()

FILE: CodeHub.iOS/ViewControllers/Repositories/TrendingRepositoriesViewController.cs
  class TrendingRepositoriesViewController (line 16) | public class TrendingRepositoriesViewController : TableViewController
    method TrendingRepositoriesViewController (line 23) | public TrendingRepositoriesViewController()
    method ViewDidLoad (line 29) | public override void ViewDidLoad()
    method ShowLanguages (line 73) | private void ShowLanguages()
    method ViewWillAppear (line 91) | public override void ViewWillAppear(bool animated)
    method CreateHeaderView (line 102) | private static UILabel CreateHeaderView(string name)
    method Loading (line 114) | private void Loading(bool searching)

FILE: CodeHub.iOS/ViewControllers/Search/ExploreViewController.cs
  class ExploreViewController (line 8) | public class ExploreViewController : BaseViewController
    method ExploreViewController (line 18) | public ExploreViewController()
    method HandleSegmentChange (line 34) | private void HandleSegmentChange(int segmentId)

FILE: CodeHub.iOS/ViewControllers/Search/RepositoryExploreViewController.cs
  class RepositoryExploreViewController (line 13) | public class RepositoryExploreViewController : TableViewController
    method RepositoryExploreViewController (line 23) | public RepositoryExploreViewController()
    method ViewDidLoad (line 29) | public override void ViewDidLoad()
    method SearchComplete (line 55) | private void SearchComplete()
    method Searching (line 69) | private void Searching(bool searching)

FILE: CodeHub.iOS/ViewControllers/Search/UserExploreViewController.cs
  class UserExploreViewController (line 13) | public class UserExploreViewController : TableViewController
    method UserExploreViewController (line 23) | public UserExploreViewController()
    method ViewDidLoad (line 29) | public override void ViewDidLoad()
    method SearchComplete (line 55) | private void SearchComplete()
    method Searching (line 69) | private void Searching(bool searching)

FILE: CodeHub.iOS/ViewControllers/Settings/DefaultStartupViewController.cs
  class DefaultStartupViewController (line 13) | public class DefaultStartupViewController : TableViewController
    method DefaultStartupViewController (line 41) | public DefaultStartupViewController(
    method ViewDidLoad (line 53) | public override void ViewDidLoad()
    method Render (line 67) | private void Render(DialogTableViewSource tableViewSource)
    method CreateElement (line 74) | private Element CreateElement(string title)
    method ElementSelected (line 83) | private void ElementSelected(string value)

FILE: CodeHub.iOS/ViewControllers/Settings/SettingsViewController.cs
  class SettingsViewController (line 18) | public class SettingsViewController : BaseDialogViewController
    method SettingsViewController (line 27) | public SettingsViewController()
    method RegisterPushNotifications (line 44) | private async Task RegisterPushNotifications(bool enabled)
    method ViewDidLoad (line 67) | public override void ViewDidLoad()
    method CreateTable (line 77) | private void CreateTable()

FILE: CodeHub.iOS/ViewControllers/Settings/SyntaxHighlighterViewController.cs
  class SyntaxHighlighterViewController (line 20) | public class SyntaxHighlighterViewController : BaseWebViewController
    method SyntaxHighlighterViewController (line 36) | public SyntaxHighlighterViewController(
    method ViewDidLoad (line 48) | public override void ViewDidLoad()
    method LoadTheme (line 97) | private async Task LoadTheme(string theme)
    method SetSelectedTheme (line 112) | private async Task SetSelectedTheme(string theme)
    method ViewWillLayoutSubviews (line 119) | public override void ViewWillLayoutSubviews()
    class PickerModel (line 126) | private class PickerModel : UIPickerViewModel
      method PickerModel (line 133) | public PickerModel(IEnumerable<string> values)
      method GetComponentCount (line 138) | public override nint GetComponentCount(UIPickerView picker) => 1;
      method Selected (line 140) | public override void Selected(UIPickerView picker, nint row, nint co...
      method GetRowsInComponent (line 142) | public override nint GetRowsInComponent(UIPickerView picker, nint co...
      method GetTitle (line 144) | public override string GetTitle(UIPickerView picker, nint row, nint ...

FILE: CodeHub.iOS/ViewControllers/Source/AddSourceViewController.cs
  class AddSourceViewController (line 15) | public class AddSourceViewController : TableViewController
    method AddSourceViewController (line 31) | public AddSourceViewController(
    method ViewDidLoad (line 71) | public override void ViewDidLoad()
    method Commit (line 81) | private void Commit()
    method CommitThis (line 99) | private async Task CommitThis(string message)

FILE: CodeHub.iOS/ViewControllers/Source/BranchesAndTagsViewController.cs
  class BranchesAndTagsViewController (line 7) | public class BranchesAndTagsViewController : BaseViewController
    type SelectedView (line 16) | public enum SelectedView
    method BranchesAndTagsViewController (line 22) | public BranchesAndTagsViewController(
    method SegmentValueChanged (line 47) | private void SegmentValueChanged(int id)
    method AddTable (line 63) | private void AddTable(UIViewController viewController)
    method RemoveIfLoaded (line 70) | private static void RemoveIfLoaded(UIViewController viewController)

FILE: CodeHub.iOS/ViewControllers/Source/BranchesViewController.cs
  class BranchesViewController (line 18) | public class BranchesViewController : DialogViewController
    method BranchesViewController (line 27) | public BranchesViewController(
    method SetErrorView (line 63) | private void SetErrorView()
    method ItemsLoaded (line 77) | private void ItemsLoaded(IEnumerable<Octokit.Branch> branches)
    method CreateElement (line 83) | private Element CreateElement(Octokit.Branch branch)

FILE: CodeHub.iOS/ViewControllers/Source/CommitDiffViewController.cs
  class CommitDiffViewController (line 21) | public class CommitDiffViewController : BaseWebViewController
    method CommitDiffViewController (line 35) | public CommitDiffViewController(
    method ViewDidLoad (line 77) | public override void ViewDidLoad()
    method Render (line 88) | private async Task Render()
    class JavascriptComment (line 115) | private class JavascriptComment
    class JavascriptReplyComment (line 121) | private class JavascriptReplyComment
    method ShouldStartLoad (line 126) | protected override bool ShouldStartLoad(WKWebView webView, WKNavigatio...
    method PromptForComment (line 149) | private void PromptForComment(JavascriptComment model)
    method ShowCommentComposer (line 170) | private void ShowCommentComposer(int line)
    method ShowComposer (line 186) | private void ShowComposer(Func<string, Task> workFn)

FILE: CodeHub.iOS/ViewControllers/Source/FileSourceViewController.cs
  class FileSourceViewController (line 21) | public class FileSourceViewController : BaseWebViewController
    method FileSourceViewController (line 57) | public FileSourceViewController(
    method HandleLoadError (line 122) | private UserError HandleLoadError(Exception error)
    method Load (line 128) | private async Task Load(CancellationToken cancelToken)
    method EditSource (line 165) | private void EditSource()
    method LoadSource (line 174) | async Task LoadSource(Uri fileUri, bool isMarkdown)
    method LoadSource (line 181) | async Task LoadSource(string content, string filename, bool isMarkdown)
    method PresentOpenIn (line 202) | private void PresentOpenIn(UIBarButtonItem barButtonItem)
    method Share (line 212) | private void Share(UIBarButtonItem barButtonItem)
    method ShowInBrowser (line 224) | private void ShowInBrowser()
    method CreateActionSheet (line 234) | private void CreateActionSheet(UIBarButtonItem barButtonItem)

FILE: CodeHub.iOS/ViewControllers/Source/SourceTreeViewController.cs
  class SourceTreeViewController (line 19) | public class SourceTreeViewController : DialogViewController
    method SourceTreeViewController (line 46) | public SourceTreeViewController(
    method SetLoading (line 138) | private void SetLoading(bool isLoading)
    method SetErrorView (line 145) | private void SetErrorView()
    method HandleLoadError (line 159) | private UserError HandleLoadError(Exception error)
    method ViewWillAppear (line 170) | public override void ViewWillAppear(bool animated)
    method SetElements (line 187) | private void SetElements(IEnumerable<Octokit.RepositoryContent> items)
    method ShowBranchSelector (line 198) | private void ShowBranchSelector()
    method GoToSourceTree (line 225) | private void GoToSourceTree(Octokit.RepositoryContent content)
    method GoToSubModule (line 231) | private void GoToSubModule(Octokit.RepositoryContent content)
    method GoToFile (line 258) | private void GoToFile(Octokit.RepositoryContent content)
    method ShowAddSource (line 269) | private void ShowAddSource()
    method CreateElement (line 282) | private Element CreateElement(Octokit.RepositoryContent content)

FILE: CodeHub.iOS/ViewControllers/Source/TagsViewController.cs
  class TagsViewController (line 17) | public class TagsViewController : DialogViewController
    method TagsViewController (line 24) | public TagsViewController(
    method SetErrorView (line 53) | private void SetErrorView()
    method ItemsLoaded (line 67) | private void ItemsLoaded(IEnumerable<Octokit.RepositoryTag> tags)
    method CreateElement (line 73) | private Element CreateElement(Octokit.RepositoryTag tag)

FILE: CodeHub.iOS/ViewControllers/TableViewController.cs
  class TableViewController (line 8) | public class TableViewController : BaseViewController
    method TableViewController (line 30) | public TableViewController(UITableViewStyle style)
    method ViewDidLoad (line 37) | public override void ViewDidLoad()
    method ViewWillAppear (line 51) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 62) | public override void ViewWillDisappear(bool animated)
    method OnKeyboardHideNotification (line 74) | private void OnKeyboardHideNotification(NSNotification notification)
    method OnKeyboardNotification (line 80) | private void OnKeyboardNotification (NSNotification notification)

FILE: CodeHub.iOS/ViewControllers/ThemedNavigationController.cs
  class ThemedNavigationController (line 5) | public class ThemedNavigationController : UINavigationController
    method ThemedNavigationController (line 7) | public ThemedNavigationController(UIViewController ctrl)

FILE: CodeHub.iOS/ViewControllers/Users/UserViewController.cs
  class UserViewController (line 11) | public class UserViewController : PrettyDialogViewController
    method UserViewController (line 21) | public UserViewController(string username, Octokit.User user = null)
    method UserViewController (line 29) | public UserViewController(Octokit.User user)
    method UserViewController (line 34) | public UserViewController()
    method ViewDidLoad (line 40) | public override void ViewDidLoad()
    method ViewWillAppear (line 92) | public override void ViewWillAppear(bool animated)
    method ViewDidDisappear (line 99) | public override void ViewDidDisappear(bool animated)
    method ShowExtraMenu (line 105) | private void ShowExtraMenu()

FILE: CodeHub.iOS/ViewControllers/Users/UsersViewController.cs
  class UsersViewController (line 13) | public class UsersViewController : TableViewController
    method CreateWatchersViewController (line 23) | public static UsersViewController CreateWatchersViewController(string ...
    method CreateFollowersViewController (line 29) | public static UsersViewController CreateFollowersViewController(string...
    method CreateFollowingViewController (line 35) | public static UsersViewController CreateFollowingViewController(string...
    method CreateOrganizationMembersViewController (line 41) | public static UsersViewController CreateOrganizationMembersViewControl...
    method CreateStargazersViewController (line 47) | public static UsersViewController CreateStargazersViewController(strin...
    method CreateTeamMembersViewController (line 53) | public static UsersViewController CreateTeamMembersViewController(int id)
    method CreateCollaboratorsViewController (line 59) | public static UsersViewController CreateCollaboratorsViewController(st...
    method UsersViewController (line 65) | public UsersViewController(UsersViewModel viewModel)
    method ViewDidLoad (line 72) | public override void ViewDidLoad()
    method SetItemsPresent (line 119) | private void SetItemsPresent(bool hasItems)

FILE: CodeHub.iOS/ViewControllers/ViewModelCollectionDrivenDialogViewController.cs
  class ViewModelCollectionDrivenDialogViewController (line 16) | public abstract class ViewModelCollectionDrivenDialogViewController : Vi...
    method ViewModelCollectionDrivenDialogViewController (line 26) | protected ViewModelCollectionDrivenDialogViewController(bool push = true)
    method BindCollection (line 32) | protected void BindCollection<TElement>(CollectionViewModel<TElement> ...
    method CreateEmptyHandler (line 82) | private void CreateEmptyHandler(bool x)
    method RenderList (line 116) | protected ICollection<Section> RenderList<T>(IEnumerable<T> items, Fun...
    method CreateSection (line 135) | protected virtual Section CreateSection(string text)
    method RenderGroupedItems (line 140) | protected ICollection<Section> RenderGroupedItems<T>(IEnumerable<IGrou...
    method RenderSections (line 166) | private static ICollection<Section> RenderSections(IEnumerable<Section...

FILE: CodeHub.iOS/ViewControllers/ViewModelDrivenDialogViewController.cs
  class PrettyDialogViewController (line 16) | public abstract class PrettyDialogViewController : ViewModelDrivenDialog...
    method PrettyDialogViewController (line 37) | protected PrettyDialogViewController()
    method ViewWillAppear (line 56) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 66) | public override void ViewWillDisappear(bool animated)
    method RefreshHeaderView (line 73) | protected void RefreshHeaderView()
    method DidRotate (line 79) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOri...
    method ViewDidLoad (line 87) | public override void ViewDidLoad()
    method DidScroll (line 102) | protected override void DidScroll(CoreGraphics.CGPoint p)
  class ViewModelDrivenDialogViewController (line 115) | public abstract class ViewModelDrivenDialogViewController : DialogViewCo...
    method ViewDidLoad (line 119) | public override void ViewDidLoad()
    method ViewModelDrivenDialogViewController (line 174) | protected ViewModelDrivenDialogViewController(bool push = true, UITabl...
    method HandleRefreshRequested (line 180) | private void HandleRefreshRequested(object sender, EventArgs e)
    method ViewWillAppear (line 191) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 208) | public override void ViewWillDisappear(bool animated)
    method ViewDidDisappear (line 230) | public override void ViewDidDisappear(bool animated)
    method ViewDidAppear (line 239) | public override void ViewDidAppear(bool animated)
    method Dispose (line 245) | protected override void Dispose(bool disposing)
    method ViewDidLayoutSubviews (line 254) | public override void ViewDidLayoutSubviews()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/AboutViewController.cs
  class AboutViewController (line 3) | public partial class AboutViewController : BaseViewController
    method AboutViewController (line 5) | public AboutViewController()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/AboutViewController.designer.cs
  class AboutViewController (line 12) | [Register ("AboutViewController")]
    method ReleaseDesignerOutlets (line 16) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/CardPageViewController.cs
  class CardPageViewController (line 5) | public partial class CardPageViewController : BaseViewController
    method CardPageViewController (line 9) | public CardPageViewController(UIViewController viewController)
    method ViewDidLoad (line 15) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/CardPageViewController.designer.cs
  class CardPageViewController (line 12) | [Register ("CardPageViewController")]
    method ReleaseDesignerOutlets (line 18) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/FeedbackViewController.cs
  class FeedbackViewController (line 6) | public partial class FeedbackViewController : BaseViewController
    method FeedbackViewController (line 8) | public FeedbackViewController()
    method ViewDidLoad (line 13) | public override void ViewDidLoad()
    method ShowWebPage (line 28) | private void ShowWebPage(string url)

FILE: CodeHub.iOS/ViewControllers/Walkthrough/FeedbackViewController.designer.cs
  class FeedbackViewController (line 12) | [Register ("FeedbackViewController")]
    method ReleaseDesignerOutlets (line 18) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/GoProViewController.cs
  class GoProViewController (line 9) | public partial class GoProViewController : BaseViewController
    method GoProViewController (line 11) | public GoProViewController()
    method ViewDidLoad (line 16) | public override void ViewDidLoad()
    method ViewWillAppear (line 27) | public override void ViewWillAppear(bool animated)
    method TellMeMore (line 39) | private void TellMeMore()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/GoProViewController.designer.cs
  class GoProViewController (line 12) | [Register ("GoProViewController")]
    method ReleaseDesignerOutlets (line 24) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/OrgViewController.cs
  class OrgViewController (line 6) | public partial class OrgViewController : BaseViewController
    method OrgViewController (line 8) | public OrgViewController()
    method ViewDidLoad (line 13) | public override void ViewDidLoad()
    method TellMeMore (line 23) | private void TellMeMore()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/OrgViewController.designer.cs
  class OrgViewController (line 12) | [Register ("OrgViewController")]
    method ReleaseDesignerOutlets (line 24) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/PromoteViewController.cs
  class PromoteViewController (line 6) | public partial class PromoteViewController : BaseViewController
    method PromoteViewController (line 11) | public PromoteViewController()
    method ViewDidLoad (line 16) | public override void ViewDidLoad()
    method StarCodeHub (line 34) | private void StarCodeHub()
    method WatchCodeHub (line 44) | private void WatchCodeHub()
    method Alert (line 55) | private void Alert()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/PromoteViewController.designer.cs
  class PromoteViewController (line 12) | [Register ("PromoteViewController")]
    method ReleaseDesignerOutlets (line 21) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/WelcomePageViewController.cs
  class WelcomePageViewController (line 8) | public class WelcomePageViewController : BaseViewController
    method OnWantsToDismiss (line 18) | protected void OnWantsToDismiss() => WantsToDimiss?.Invoke();
    method GetPages (line 20) | private IEnumerable<UIViewController> GetPages()
    method WelcomePageViewController (line 30) | public WelcomePageViewController()
    method ViewDidLoad (line 35) | public override void ViewDidLoad()
    method ViewWillAppear (line 56) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 66) | public override void ViewWillDisappear(bool animated)
    method ViewDidDisappear (line 72) | public override void ViewDidDisappear(bool animated)
    method Transition (line 80) | private void Transition(UIViewController e)
    method WillTransition (line 88) | private void WillTransition(object sender, UIPageViewControllerTransit...
    method GoToNext (line 93) | private void GoToNext(object sender, EventArgs args)
    method GetSupportedInterfaceOrientations (line 108) | public override UIInterfaceOrientationMask GetSupportedInterfaceOrient...
    method ShouldAutorotate (line 114) | public override bool ShouldAutorotate()
    class PageDataSource (line 119) | private class PageDataSource : UIPageViewControllerDataSource
      method PageDataSource (line 123) | public PageDataSource(IEnumerable<UIViewController> pages)
      method GetPresentationCount (line 128) | public override nint GetPresentationCount(UIPageViewController pageV...
      method GetPresentationIndex (line 133) | public override nint GetPresentationIndex(UIPageViewController pageV...
      method GetNextViewController (line 138) | public override UIViewController GetNextViewController(UIPageViewCon...
      method GetPreviousViewController (line 144) | public override UIViewController GetPreviousViewController(UIPageVie...

FILE: CodeHub.iOS/ViewControllers/Walkthrough/WelcomeViewController.cs
  class WelcomeViewController (line 6) | public partial class WelcomeViewController : BaseViewController
    method WelcomeViewController (line 10) | public WelcomeViewController()
    method ViewDidLoad (line 15) | public override void ViewDidLoad()

FILE: CodeHub.iOS/ViewControllers/Walkthrough/WelcomeViewController.designer.cs
  class WelcomeViewController (line 12) | [Register ("WelcomeViewController")]
    method ReleaseDesignerOutlets (line 18) | void ReleaseDesignerOutlets ()

FILE: CodeHub.iOS/ViewControllers/WebBrowserViewController.cs
  class WebBrowserViewController (line 9) | public class WebBrowserViewController : MvxViewController, IMvxModalIosView
    method HandleAction (line 11) | void HandleAction()
    method WebBrowserViewController (line 18) | public WebBrowserViewController()
    method WebBrowserViewController (line 22) | public WebBrowserViewController(string url)
    method ViewWillAppear (line 29) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 46) | public override void ViewWillDisappear(bool animated)
    method WillRotate (line 53) | public override void WillRotate(UIInterfaceOrientation toInterfaceOrie...
    method ViewDidLoad (line 72) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/AddRemoveView.cs
  class AddRemoveView (line 8) | public class AddRemoveView : UIView
    method AddRemoveView (line 14) | public AddRemoveView()
    method AddRemoveView (line 19) | public AddRemoveView(IntPtr ptr)
    method Draw (line 25) | public override void Draw(CoreGraphics.CGRect rect)

FILE: CodeHub.iOS/Views/BlurredAlertView.cs
  class BlurredAlertView (line 8) | public class BlurredAlertView : UIViewController
    method Display (line 13) | public static void Display(string text, Action dismissed = null)
    method BlurredAlertView (line 39) | private BlurredAlertView(string text)
    method ViewDidLoad (line 65) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/ButtonAccessoryView.cs
  class ButtonAccessoryView (line 8) | public class ButtonAccessoryView : UIView
    method ButtonAccessoryView (line 12) | public ButtonAccessoryView(IEnumerable<UIButton> buttons)
    method CreateAccessoryButton (line 31) | public static UIButton CreateAccessoryButton(UIImage image, Action act...
    method CreateAccessoryButton (line 40) | public static UIButton CreateAccessoryButton(string title, Action action)
    method ImageFromColor (line 56) | private static UIImage ImageFromColor(UIColor color)

FILE: CodeHub.iOS/Views/EmptyListView.cs
  class EmptyListView (line 6) | public class EmptyListView : UIView
    method EmptyListView (line 14) | public EmptyListView(UIImage image, string emptyText)
    method LayoutSubviews (line 38) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/ExtendedUITextView.cs
  class ExtendedUITextView (line 6) | public class ExtendedUITextView : UITextView
    method ExtendedUITextView (line 42) | public ExtendedUITextView()

FILE: CodeHub.iOS/Views/ImageAndTitleHeaderView.cs
  class ImageAndTitleHeaderView (line 12) | public class ImageAndTitleHeaderView : UIView
    method ImageAndTitleHeaderView (line 132) | public ImageAndTitleHeaderView()
    method MakeHandler (line 180) | public static EventHandler MakeHandler(ImageAndTitleHeaderView view)
    method SetImage (line 186) | public void SetImage(string imageUri, UIImage placeholder)
    method SetSubImage (line 206) | public void SetSubImage(UIImage image)
    method LayoutSubviews (line 232) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/Issues/BaseIssuesView.cs
  class BaseIssuesView (line 9) | public abstract class BaseIssuesView : ViewModelCollectionDrivenDialogVi...
    method BaseIssuesView (line 17) | protected BaseIssuesView()
    method CreateElement (line 22) | protected IssueElement CreateElement(IssueModel x)

FILE: CodeHub.iOS/Views/Issues/IssueAddView.cs
  class IssueAddView (line 11) | public class IssueAddView : ViewModelDrivenDialogViewController
    method IssueAddView (line 13) | public IssueAddView()
    method ViewDidLoad (line 18) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/Issues/IssueAssignedToView.cs
  class IssueAssignedToView (line 12) | public class IssueAssignedToView : ViewModelCollectionDrivenDialogViewCo...
    method IssueAssignedToView (line 14) | public IssueAssignedToView()
    method ViewDidLoad (line 21) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/Issues/IssueEditView.cs
  class IssueEditView (line 11) | public class IssueEditView : ViewModelDrivenDialogViewController
    method IssueEditView (line 13) | public IssueEditView()
    method ViewDidLoad (line 18) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/Issues/IssueLabelsView.cs
  class IssueLabelsView (line 11) | public class IssueLabelsView : ViewModelCollectionDrivenDialogViewContro...
    method IssueLabelsView (line 13) | public IssueLabelsView()
    method ViewDidLoad (line 22) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/Issues/IssueMilestonesView.cs
  class IssueMilestonesView (line 11) | public class IssueMilestonesView : ViewModelCollectionDrivenDialogViewCo...
    method IssueMilestonesView (line 13) | public IssueMilestonesView()
    method ViewDidLoad (line 22) | public override void ViewDidLoad()

FILE: CodeHub.iOS/Views/Issues/IssueView.cs
  class IssueView (line 22) | public class IssueView : PrettyDialogViewController
    method IssueView (line 41) | public IssueView(string owner, string repository, int id)
    method IssueView (line 48) | public IssueView()
    method DidScroll (line 52) | protected override void DidScroll(CoreGraphics.CGPoint p)
    method ViewDidLoad (line 60) | public override void ViewDidLoad()
    method CreateEventBody (line 151) | private static string CreateEventBody(string eventType, string commitId)
    method RenderComments (line 171) | public async Task RenderComments()
    method Render (line 201) | protected virtual void Render()
    method AddCommentTapped (line 230) | void AddCommentTapped()
    method ShowExtraMenu (line 256) | private void ShowExtraMenu(UIBarButtonItem item)
    method DidRotate (line 299) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOri...

FILE: CodeHub.iOS/Views/Issues/IssuesView.cs
  class IssuesView (line 11) | public class IssuesView : BaseIssuesView
    method ViewDidLoad (line 22) | public override void ViewDidLoad()
    method ViewWillAppear (line 41) | public override void ViewWillAppear(bool animated)
    method SegmentValueChanged (line 65) | void SegmentValueChanged (object sender, EventArgs e)
    method ViewWillDisappear (line 92) | public override void ViewWillDisappear(bool animated)
    method ViewDidDisappear (line 99) | public override void ViewDidDisappear(bool animated)
    class CustomUISegmentedControl (line 105) | private class CustomUISegmentedControl : UISegmentedControl
      method CustomUISegmentedControl (line 108) | public CustomUISegmentedControl(object[] args, int multipleTouchIndex)
      method TouchesEnded (line 114) | public override void TouchesEnded(Foundation.NSSet touches, UIEvent ...

FILE: CodeHub.iOS/Views/Issues/MyIssuesView.cs
  class MyIssuesView (line 7) | public class MyIssuesView : BaseIssuesView
    method Create (line 12) | public static MyIssuesView Create()
    method ViewDidLoad (line 15) | public override void ViewDidLoad()
    method ViewWillAppear (line 49) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 56) | public override void ViewWillDisappear(bool animated)

FILE: CodeHub.iOS/Views/LoadingIndicatorView.cs
  class LoadingIndicatorView (line 6) | public sealed class LoadingIndicatorView : UIActivityIndicatorView
    method LoadingIndicatorView (line 10) | public LoadingIndicatorView(bool active = true)

FILE: CodeHub.iOS/Views/MarkdownAccessoryView.cs
  class MarkdownAccessoryView (line 10) | public class MarkdownAccessoryView : ButtonAccessoryView
    method MarkdownAccessoryView (line 12) | public MarkdownAccessoryView(UITextView controller)
    method CreateButtons (line 17) | private static IEnumerable<UIButton> CreateButtons(UITextView controller)

FILE: CodeHub.iOS/Views/MenuSectionView.cs
  class MenuSectionView (line 6) | public sealed class MenuSectionView : UIView
    method MenuSectionView (line 8) | public MenuSectionView(string caption)

FILE: CodeHub.iOS/Views/MilestoneView.cs
  class MilestoneView (line 7) | public class MilestoneView : UIView
    method Init (line 14) | public void Init(string title, int openIssues, int closedIssues, DateT...
    method MilestoneView (line 36) | public MilestoneView()

FILE: CodeHub.iOS/Views/NotificationsView.cs
  class NotificationsView (line 12) | public class NotificationsView : ViewModelCollectionDrivenDialogViewCont...
    method Create (line 17) | public static NotificationsView Create()
    method NotificationsView (line 20) | public NotificationsView()
    method ViewDidLoad (line 29) | public override void ViewDidLoad()
    method MakeCallback (line 79) | private static Action<object> MakeCallback(WeakReference<Notifications...
    method CreateSection (line 84) | protected override Section CreateSection(string text)
    class MarkReadSection (line 89) | private class MarkReadSection : UITableViewHeaderFooterView
      method MarkReadSection (line 92) | public MarkReadSection(string text, NotificationsView parent, bool b...
      method LayoutSubviews (line 109) | public override void LayoutSubviews()
    method ViewWillAppear (line 118) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 125) | public override void ViewWillDisappear(bool animated)

FILE: CodeHub.iOS/Views/ProfileButton.cs
  class ProfileButton (line 10) | public class ProfileButton : UIButton
    method ProfileButton (line 29) | public ProfileButton()
    method LayoutSubviews (line 40) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/ProgressBarView.cs
  class ProgressBarView (line 7) | public class ProgressBarView : UIView
    method ProgressBarView (line 25) | public ProgressBarView()
    method LayoutSubviews (line 45) | public override void LayoutSubviews()
    class ProgressBarIndicator (line 51) | private class ProgressBarIndicator : UIView
      method ProgressBarIndicator (line 53) | public ProgressBarIndicator()
      method Draw (line 59) | public override void Draw(CGRect rect)

FILE: CodeHub.iOS/Views/PullRequests/PullRequestCommitsView.cs
  class PullRequestCommitsView (line 5) | public class PullRequestCommitsView : CommitsView

FILE: CodeHub.iOS/Views/PullRequests/PullRequestFilesView.cs
  class PullRequestFilesView (line 11) | public class PullRequestFilesView : ViewModelCollectionDrivenDialogViewC...
    method PullRequestFilesView (line 19) | public PullRequestFilesView()
    method ViewDidLoad (line 26) | public override void ViewDidLoad()
    method GoToFile (line 43) | private void GoToFile(GitHubSharp.Models.CommitModel.CommitFileModel f...
    method CreateSizingSource (line 60) | public override DialogViewController.Source CreateSizingSource()
    class CustomSource (line 65) | private class CustomSource : DialogViewController.Source
      method CustomSource (line 67) | public CustomSource(PullRequestFilesView parent)
      method WillDisplayHeaderView (line 72) | public override void WillDisplayHeaderView(UITableView tableView, UI...

FILE: CodeHub.iOS/Views/PullRequests/PullRequestView.cs
  class PullRequestView (line 22) | public class PullRequestView : PrettyDialogViewController
    method DidScroll (line 40) | protected override void DidScroll(CoreGraphics.CGPoint p)
    method ViewDidLoad (line 48) | public override void ViewDidLoad()
    method CreateEventBody (line 156) | private static string CreateEventBody(string eventType, string commitId)
    method RenderComments (line 176) | public async Task RenderComments()
    method AddCommentTapped (line 205) | void AddCommentTapped()
    method ShowExtraMenu (line 230) | private void ShowExtraMenu()
    method Render (line 273) | private void Render()

FILE: CodeHub.iOS/Views/PullRequests/PullRequestsView.cs
  class PullRequestsView (line 10) | public class PullRequestsView : ViewModelCollectionDrivenDialogViewContr...
    method PullRequestsView (line 14) | public PullRequestsView()
    method ViewDidLoad (line 25) | public override void ViewDidLoad()
    method MakeCallback (line 43) | private static Action MakeCallback(WeakReference<PullRequestsViewModel...

FILE: CodeHub.iOS/Views/RetryListView.cs
  class RetryListView (line 7) | public class RetryListView : UIView
    method RetryListView (line 17) | public RetryListView(UIImage image, string text, Action retryAction)
    method LayoutSubviews (line 60) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/ScrollingToolbarView.cs
  class ScrollingToolbarView (line 8) | public class ScrollingToolbarView : UIView
    method ScrollingToolbarView (line 15) | static ScrollingToolbarView()
    method ScrollingToolbarView (line 21) | public ScrollingToolbarView(CGRect rect, IEnumerable<UIButton> buttons)
    method LayoutSubviews (line 46) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/SlideUpTitleView.cs
  class SlideUpTitleView (line 7) | public class SlideUpTitleView : UIView
    method GetWidth (line 37) | private static nfloat GetWidth() => UIScreen.MainScreen.Bounds.Width -...
    method SlideUpTitleView (line 39) | public SlideUpTitleView(float height)

FILE: CodeHub.iOS/Views/Source/ChangesetView.cs
  class ChangesetView (line 18) | public class ChangesetView : PrettyDialogViewController
    method ViewDidLoad (line 26) | public override void ViewDidLoad()
    method FileClicked (line 62) | private void FileClicked(GitHubSharp.Models.CommitModel.CommitFileMode...
    method Render (line 82) | public void Render()
    method AddCommentTapped (line 179) | void AddCommentTapped()
    method ShowExtraMenu (line 203) | private void ShowExtraMenu()

FILE: CodeHub.iOS/Views/Source/ChangesetsView.cs
  class ChangesetsView (line 5) | public class ChangesetsView : CommitsView
    method ChangesetsView (line 7) | public ChangesetsView()
    method ChangesetsView (line 12) | public ChangesetsView(string owner, string repository, string branch)

FILE: CodeHub.iOS/Views/Source/CommitsView.cs
  class CommitsView (line 12) | public abstract class CommitsView : ViewModelCollectionDrivenDialogViewC...
    method ViewDidLoad (line 14) | public override void ViewDidLoad()
    method MakeCallback (line 33) | private static Action MakeCallback(WeakReference<CommitsViewModel> wea...

FILE: CodeHub.iOS/Views/Source/EditSourceView.cs
  class EditSourceView (line 13) | public class EditSourceView : BaseViewController
    method EditSourceView (line 19) | public EditSourceView()
    method ViewDidLoad (line 34) | public override void ViewDidLoad()
    method Commit (line 55) | private void Commit()
    method CommitThis (line 71) | private async Task CommitThis(string content, string message)
    method KeyboardChange (line 89) | void KeyboardChange(NSNotification notification)
    method ViewWillAppear (line 103) | public override void ViewWillAppear(bool animated)
    method ViewWillDisappear (line 116) | public override void ViewWillDisappear(bool animated)

FILE: CodeHub.iOS/Views/SourceTitleView.cs
  class SourceTitleView (line 5) | public sealed class SourceTitleView : UIButton
    method SourceTitleView (line 46) | public SourceTitleView()
    method LayoutSubviews (line 70) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/TrendingTitleButton.cs
  class TrendingTitleButton (line 5) | public class TrendingTitleButton : UIButton
    method TrendingTitleButton (line 34) | public TrendingTitleButton()
    method LayoutSubviews (line 46) | public override void LayoutSubviews()

FILE: CodeHub.iOS/Views/UILabelWithLinks.cs
  class UILabelWithLinks (line 6) | [Register("UILabelWithLinks")]
    method UILabelWithLinks (line 9) | public UILabelWithLinks(IntPtr ptr)
    method UILabelWithLinks (line 14) | public UILabelWithLinks(NSCoder coder)

FILE: CodeHub.iOS/WebResources/highlight.pack.js
  function n (line 2) | function n(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac...
  function t (line 2) | function t(e){return e.nodeName.toLowerCase()}
  function r (line 2) | function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}
  function a (line 2) | function a(e){return k.test(e)}
  function i (line 2) | function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentN...
  function o (line 2) | function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n...
  function u (line 2) | function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i...
  function c (line 2) | function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r...
  function l (line 2) | function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map...
  function s (line 2) | function s(e){function n(e){return e&&e.source||e}function t(t,r){return...
  function f (line 2) | function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++...
  function g (line 2) | function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return...
  function p (line 2) | function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){ret...
  function h (line 2) | function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)...
  function d (line 2) | function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElem...
  function b (line 2) | function b(e){I=o(I,e)}
  function v (line 2) | function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("...
  function m (line 2) | function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener(...
  function N (line 2) | function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e)...
  function R (line 2) | function R(){return x(y)}
  function w (line 2) | function w(e){return e=(e||"").toLowerCase(),y[e]||y[L[e]]}
  function b (line 2) | function b(e,b){var r=[{b:e,e:b}];return r[0].c=r,r}

FILE: CodeHub.iOS/WebResources/marked.js
  function Lexer (line 6) | function Lexer(options){this.tokens=[];this.tokens.links={};this.options...
  function InlineLexer (line 6) | function InlineLexer(links,options){this.options=options||marked.default...
  function Renderer (line 6) | function Renderer(options){this.options=options||{}}
  function Parser (line 6) | function Parser(options){this.tokens=[];this.token=null;this.options=opt...
  function escape (line 6) | function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:...
  function unescape (line 6) | function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){...
  function replace (line 6) | function replace(regex,opt){regex=regex.source;opt=opt||"";return functi...
  function noop (line 6) | function noop(){}
  function merge (line 6) | function merge(obj){var i=1,target,key;for(;i<arguments.length;i++){targ...
  function marked (line 6) | function marked(src,opt,callback){if(callback||typeof opt==="function"){...

FILE: CodeHub.iOS/XCallback/XCallbackProvider.cs
  class XCallbackProvider (line 12) | public static class XCallbackProvider
    method Handle (line 14) | public static bool Handle(XCallbackQuery query)

FILE: CodeHub.iOS/XCallback/XCallbackQuery.cs
  class XCallbackQuery (line 8) | public class XCallbackQuery
    method XCallbackQuery (line 16) | public XCallbackQuery(string urlString)
    method ExpandErrorUrl (line 38) | public string ExpandErrorUrl(int errorCode, string errorMessage)
    method ExpandSuccessUrl (line 43) | public string ExpandSuccessUrl(IDictionary<string, string> parameters)

FILE: CodeHub/Octicons.cs
  class Octicon (line 3) | public class Octicon
    method Octicon (line 7) | public Octicon(char characterCode)

FILE: CodeHub/WebViews/CommentsModel.cs
  class Comment (line 8) | public class Comment
    method Comment (line 20) | public Comment(string avatar, string name, string body, DateTimeOffset...
  class CommentsModel (line 29) | public class CommentsModel
    method CommentsModel (line 35) | public CommentsModel(IEnumerable<Comment> comments, int fontSize)

FILE: CodeHub/WebViews/CommentsWebView.cs
  class CommentsWebView (line 20) | [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocess...
    method Execute (line 33) | public override void Execute()
  class CommentsWebViewBase (line 217) | public abstract class CommentsWebViewBase
    method GenerateString (line 228) | public string GenerateString ()
    method Generate (line 241) | public void Generate (System.IO.TextWriter writer)
    method WriteLiteral (line 252) | protected void WriteLiteral (string value)
    method WriteLiteralTo (line 262) | protected static void WriteLiteralTo (System.IO.TextWriter writer, str...
    method Write (line 272) | protected void Write (object value)
    method WriteTo (line 283) | protected static void WriteTo (System.IO.TextWriter writer, object value)
    method WriteAttribute (line 308) | protected void WriteAttribute (string name, string prefix, string suff...
    method WriteAttributeTo (line 324) | protected static void WriteAttributeTo (System.IO.TextWriter writer, s...
    method Execute (line 387) | public abstract void Execute ();

FILE: CodeHub/WebViews/DiffCommentModel.cs
  class DiffCommentModel (line 3) | public class DiffCommentModel

FILE: CodeHub/WebViews/DiffModel.cs
  class DiffModel (line 8) | public class DiffModel
    method DiffModel (line 18) | public DiffModel(
    method ParsePatchLines (line 30) | static IEnumerable<Context> ParsePatchLines(IEnumerable<string> patchL...
    class Context (line 87) | public class Context
      method Context (line 92) | public Context(string content, IEnumerable<Line> lines)
    class Line (line 99) | public class Line
      method Line (line 108) | public Line(int? baseLine, int? newLine, LineEquality lineEquality, ...
    type LineEquality (line 123) | public enum LineEquality

FILE: CodeHub/WebViews/DiffWebView.cs
  class DiffWebView (line 20) | [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocess...
    method Execute (line 33) | public override void Execute()
  class DiffWebViewBase (line 554) | public abstract class DiffWebViewBase
    method GenerateString (line 565) | public string GenerateString ()
    method Generate (line 578) | public void Generate (System.IO.TextWriter writer)
    method WriteLiteral (line 589) | protected void WriteLiteral (string value)
    method WriteLiteralTo (line 599) | protected static void WriteLiteralTo (System.IO.TextWriter writer, str...
    method Write (line 609) | protected void Write (object value)
    method WriteTo (line 620) | protected static void WriteTo (System.IO.TextWriter writer, object value)
    method WriteAttribute (line 645) | protected void WriteAttribute (string name, string prefix, string suff...
    method WriteAttributeTo (line 661) | protected static void WriteAttributeTo (System.IO.TextWriter writer, s...
    method Execute (line 724) | public abstract void Execute ();

FILE: CodeHub/WebViews/MarkdownModel.cs
  class MarkdownModel (line 3) | public class MarkdownModel
    method MarkdownModel (line 11) | public MarkdownModel(string body, int fontSize, bool continuousResize ...

FILE: CodeHub/WebViews/MarkdownWebView.cs
  class MarkdownWebView (line 20) | [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocess...
    method Execute (line 33) | public override void Execute()
  class MarkdownWebViewBase (line 179) | public abstract class MarkdownWebViewBase
    method GenerateString (line 190) | public string GenerateString ()
    method Generate (line 203) | public void Generate (System.IO.TextWriter writer)
    method WriteLiteral (line 214) | protected void WriteLiteral (string value)
    method WriteLiteralTo (line 224) | protected static void WriteLiteralTo (System.IO.TextWriter writer, str...
    method Write (line 234) | protected void Write (object value)
    method WriteTo (line 245) | protected static void WriteTo (System.IO.TextWriter writer, object value)
    method WriteAttribute (line 270) | protected void WriteAttribute (string name, string prefix, string suff...
    method WriteAttributeTo (line 286) | protected static void WriteAttributeTo (System.IO.TextWriter writer, s...
    method Execute (line 349) | public abstract void Execute ();

FILE: CodeHub/WebViews/SyntaxHighlighterModel.cs
  class SyntaxHighlighterModel (line 3) | public class SyntaxHighlighterModel
    method SyntaxHighlighterModel (line 11) | public SyntaxHighlighterModel(string content, string theme, int fontSi...
    method CalculateLanguage (line 25) | private static string CalculateLanguage(string extension)

FILE: CodeHub/WebViews/SyntaxHighlighterWebView.cs
  class SyntaxHighlighterWebView (line 20) | [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocess...
    method Execute (line 33) | public override void Execute()
  class SyntaxHighlighterWebViewBase (line 189) | public abstract class SyntaxHighlighterWebViewBase
    method GenerateString (line 200) | public string GenerateString ()
    method Generate (line 213) | public void Generate (System.IO.TextWriter writer)
    method WriteLiteral (line 224) | protected void WriteLiteral (string value)
    method WriteLiteralTo (line 234) | protected static void WriteLiteralTo (System.IO.TextWriter writer, str...
    method Write (line 244) | protected void Write (object value)
    method WriteTo (line 255) | protected static void WriteTo (System.IO.TextWriter writer, object value)
    method WriteAttribute (line 280) | protected void WriteAttribute (string name, string prefix, string suff...
    method WriteAttributeTo (line 296) | protected static void WriteAttributeTo (System.IO.TextWriter writer, s...
    method Execute (line 359) | public abstract void Execute ();

FILE: CodeHub/WebViews/UpgradeDetailsModel.cs
  class UpgradeDetailsModel (line 3) | public class UpgradeDetailsModel
    method UpgradeDetailsModel (line 9) | public UpgradeDetailsModel(string price, bool isPurchased)

FILE: CodeHub/WebViews/UpgradeDetailsWebView.cs
  class UpgradeDetailsWebView (line 20) | [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocess...
    method Execute (line 33) | public override void Execute()
  class UpgradeDetailsWebViewBase (line 277) | public abstract class UpgradeDetailsWebViewBase
    method GenerateString (line 288) | public string GenerateString ()
    method Generate (line 301) | public void Generate (System.IO.TextWriter writer)
    method WriteLiteral (line 312) | protected void WriteLiteral (string value)
    method WriteLiteralTo (line 322) | protected static void WriteLiteralTo (System.IO.TextWriter writer, str...
    method Write (line 332) | protected void Write (object value)
    method WriteTo (line 343) | protected static void WriteTo (System.IO.TextWriter writer, object value)
    method WriteAttribute (line 368) | protected void WriteAttribute (string name, string prefix, string suff...
    method WriteAttributeTo (line 384) | protected static void WriteAttributeTo (System.IO.TextWriter writer, s...
    method Execute (line 447) | public abstract void Execute ();
Condensed preview — 459 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,665K chars).
[
  {
    "path": ".gitignore",
    "chars": 43,
    "preview": "*/bin\n*/obj\n*.suo\n*.userprefs\npackages\n.vs\n"
  },
  {
    "path": "CodeHub/CodeHub.csproj",
    "chars": 4079,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "CodeHub/Octicons.cs",
    "chars": 9970,
    "preview": "namespace CodeHub\n{\n    public class Octicon\n    {\n        public char CharacterCode { get; private set; }\n\n        pub"
  },
  {
    "path": "CodeHub/Properties/AssemblyInfo.cs",
    "chars": 992,
    "preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\n\n// Information about this assembly is defined by the f"
  },
  {
    "path": "CodeHub/WebViews/CommentsModel.cs",
    "chars": 915,
    "preview": "using System.Collections.Generic;\nusing System;\nusing System.Linq;\nusing Humanizer;\n\nnamespace CodeHub.WebViews\n{\n    p"
  },
  {
    "path": "CodeHub/WebViews/CommentsWebView.cs",
    "chars": 13008,
    "preview": "#pragma warning disable 1591\n// ------------------------------------------------------------------------------\n//  <auto"
  },
  {
    "path": "CodeHub/WebViews/CommentsWebView.cshtml",
    "chars": 3680,
    "preview": "@model CommentsModel\n<html><head>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1"
  },
  {
    "path": "CodeHub/WebViews/DiffCommentModel.cs",
    "chars": 309,
    "preview": "namespace CodeHub.WebViews\n{\n    public class DiffCommentModel\n    {\n        public int Id;\n        public int? GroupId"
  },
  {
    "path": "CodeHub/WebViews/DiffModel.cs",
    "chars": 4456,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.RegularExpressions;\n\nnamespace Cod"
  },
  {
    "path": "CodeHub/WebViews/DiffWebView.cs",
    "chars": 22559,
    "preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
  },
  {
    "path": "CodeHub/WebViews/DiffWebView.cshtml",
    "chars": 8715,
    "preview": "@model DiffModel\n<!DOCTYPE html>\n<html>\n  <head>\n    <title></title>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewpor"
  },
  {
    "path": "CodeHub/WebViews/MarkdownModel.cs",
    "chars": 412,
    "preview": "namespace CodeHub.WebViews\n{\n    public class MarkdownModel\n    {\n        public string Body { get; }\n\n        public i"
  },
  {
    "path": "CodeHub/WebViews/MarkdownWebView.cs",
    "chars": 10211,
    "preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
  },
  {
    "path": "CodeHub/WebViews/MarkdownWebView.cshtml",
    "chars": 2001,
    "preview": "@model MarkdownModel\n<html><head>\n<meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0; maximum-scale=1"
  },
  {
    "path": "CodeHub/WebViews/SyntaxHighlighterModel.cs",
    "chars": 1652,
    "preview": "namespace CodeHub.WebViews\n{\n    public class SyntaxHighlighterModel\n    {\n        public string Content { get; }\n     "
  },
  {
    "path": "CodeHub/WebViews/SyntaxHighlighterWebView.cs",
    "chars": 10572,
    "preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
  },
  {
    "path": "CodeHub/WebViews/SyntaxHighlighterWebView.cshtml",
    "chars": 1694,
    "preview": "@model SyntaxHighlighterModel\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset='utf-8'>\n<meta name=\"viewport\" content=\" @(Mo"
  },
  {
    "path": "CodeHub/WebViews/UpgradeDetailsModel.cs",
    "chars": 315,
    "preview": "namespace CodeHub.WebViews\n{\n    public class UpgradeDetailsModel\n    {\n        public string Price { get; }\n\n        p"
  },
  {
    "path": "CodeHub/WebViews/UpgradeDetailsWebView.cs",
    "chars": 16779,
    "preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
  },
  {
    "path": "CodeHub/WebViews/UpgradeDetailsWebView.cshtml",
    "chars": 7398,
    "preview": "@model UpgradeDetailsModel\n<html><head>\n<meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0; maximum-s"
  },
  {
    "path": "CodeHub/packages.config",
    "chars": 158,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n  <package id=\"Humanizer.Core\" version=\"2.2.0\" targetFramework=\"porta"
  },
  {
    "path": "CodeHub.Core/App.cs",
    "chars": 459,
    "preview": "using System.Net;\nusing MvvmCross.Core.ViewModels;\n\nnamespace CodeHub.Core\n{\n    /// <summary>\n    /// Define the App ty"
  },
  {
    "path": "CodeHub.Core/CodeHub.Core.csproj",
    "chars": 16625,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "CodeHub.Core/Data/Account.cs",
    "chars": 2991,
    "preview": "using System.Collections.Generic;\nusing Newtonsoft.Json;\n\nnamespace CodeHub.Core.Data\n{\n    public class Account\n    {\n"
  },
  {
    "path": "CodeHub.Core/Data/ImgurResponse.cs",
    "chars": 271,
    "preview": "namespace CodeHub.Core.Data\n{\n    public class ImgurResponse\n    {\n        public ImgurDataModel Data { get; set; }\n\n  "
  },
  {
    "path": "CodeHub.Core/Data/Language.cs",
    "chars": 966,
    "preview": "using System.Diagnostics;\n\nnamespace CodeHub.Core.Data\n{\n    [DebuggerDisplay(\"{Name}\")]\n    public class Language\n    {"
  },
  {
    "path": "CodeHub.Core/Data/LanguageRepository.cs",
    "chars": 781,
    "preview": "using System.Threading.Tasks;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing GitHubSharp;\n\nnamespace Co"
  },
  {
    "path": "CodeHub.Core/Data/TrendingRepository.cs",
    "chars": 1163,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing System.Net.Http;\n\nnamespace CodeHub"
  },
  {
    "path": "CodeHub.Core/Extensions/CommandExtensions.cs",
    "chars": 815,
    "preview": "using System;\nusing System.Reactive.Linq;\n\n// ReSharper disable once CheckNamespace\nnamespace ReactiveUI\n{\n    public st"
  },
  {
    "path": "CodeHub.Core/Extensions/ExceptionExtensions.cs",
    "chars": 305,
    "preview": "namespace System\n{\n    public static class ExceptionExtensions\n    {\n        public static Exception GetInnerException("
  },
  {
    "path": "CodeHub.Core/Extensions/GitHubClientExtensions.cs",
    "chars": 417,
    "preview": "using System;\r\nusing System.Collections.Generic;\r\nusing CodeHub.Core.Utils;\n\nnamespace Octokit\n{\n    public static clas"
  },
  {
    "path": "CodeHub.Core/Extensions/ObservableExtensions.cs",
    "chars": 669,
    "preview": "// Analysis disable once CheckNamespace\nnamespace System\n{\n    using System;\n    using System.Windows.Input;\n    using "
  },
  {
    "path": "CodeHub.Core/Extensions/ReactiveListExtensions.cs",
    "chars": 420,
    "preview": "using System.Collections.Generic;\n\n// ReSharper disable once CheckNamespace\nnamespace ReactiveUI\n{\n    public static cla"
  },
  {
    "path": "CodeHub.Core/Extensions/StringExtensions.cs",
    "chars": 449,
    "preview": "// Analysis disable once CheckNamespace\nnamespace System\n{\n    public static class StringExtensions\n    {\n        publi"
  },
  {
    "path": "CodeHub.Core/Extensions/TaskExtensions.cs",
    "chars": 1427,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Reactive.Threading.Tasks;\nusing System.Reactive.Linq;\nusing Re"
  },
  {
    "path": "CodeHub.Core/Filters/BaseIssuesFilterModel.cs",
    "chars": 494,
    "preview": "using CodeHub.Core.ViewModels;\n\nnamespace CodeHub.Core.Filters\n{\n    public abstract class BaseIssuesFilterModel<T> : Fi"
  },
  {
    "path": "CodeHub.Core/Filters/IssuesFilterModel.cs",
    "chars": 2805,
    "preview": "using System;\r\n\r\nnamespace CodeHub.Core.Filters\n{\n    public class IssuesFilterModel : BaseIssuesFilterModel<IssuesFilte"
  },
  {
    "path": "CodeHub.Core/Filters/MyIssuesFilterModel.cs",
    "chars": 2290,
    "preview": "using System;\r\nusing System.ComponentModel;\r\n\r\nnamespace CodeHub.Core.Filters\n{\n    public class MyIssuesFilterModel : B"
  },
  {
    "path": "CodeHub.Core/Filters/NotificationsFilterModel.cs",
    "chars": 1678,
    "preview": "using CodeHub.Core.ViewModels;\r\n\r\nnamespace CodeHub.Core.Filters\n{\n    public class NotificationsFilterModel : FilterMod"
  },
  {
    "path": "CodeHub.Core/Interactions.cs",
    "chars": 1059,
    "preview": "using System;\r\nusing System.Reactive;\nusing System.Threading.Tasks;\nusing ReactiveUI;\n\nnamespace CodeHub.Core\n{\r\n    pu"
  },
  {
    "path": "CodeHub.Core/Messages/GistAddMessage.cs",
    "chars": 218,
    "preview": "namespace CodeHub.Core.Messages\n{\n    public class GistAddMessage\n    {\n        public Octokit.Gist Gist { get; }\n\n     "
  },
  {
    "path": "CodeHub.Core/Messages/IssueAddMessage.cs",
    "chars": 247,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class IssueAddMessage\n    {\n        public Issue"
  },
  {
    "path": "CodeHub.Core/Messages/IssueEditMessage.cs",
    "chars": 249,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class IssueEditMessage\n    {\n        public Issu"
  },
  {
    "path": "CodeHub.Core/Messages/LogoutMessage.cs",
    "chars": 81,
    "preview": "namespace CodeHub.Core.Messages\n{\n    public class LogoutMessage\n    {\n    }\n}\n\n"
  },
  {
    "path": "CodeHub.Core/Messages/NotificationCountMessage.cs",
    "chars": 224,
    "preview": "namespace CodeHub.Core.Messages\n{\n    public class NotificationCountMessage\n    {\n        public int Count { get; }\n\n   "
  },
  {
    "path": "CodeHub.Core/Messages/PullRequestEditMessage.cs",
    "chars": 297,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class PullRequestEditMessage\n    {\n        publi"
  },
  {
    "path": "CodeHub.Core/Messages/SelectIssueLabelsMessage.cs",
    "chars": 348,
    "preview": "using System.Collections.Generic;\r\nusing System.Linq;\nusing GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    p"
  },
  {
    "path": "CodeHub.Core/Messages/SelectedAssignedToMessage.cs",
    "chars": 271,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class SelectedAssignedToMessage\n    {\n        pu"
  },
  {
    "path": "CodeHub.Core/Messages/SelectedMilestoneMessage.cs",
    "chars": 289,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class SelectedMilestoneMessage\n    {\n        pub"
  },
  {
    "path": "CodeHub.Core/Messages/SourceEditMessage.cs",
    "chars": 211,
    "preview": "using GitHubSharp.Models;\n\nnamespace CodeHub.Core.Messages\n{\n    public class SourceEditMessage\n    {\n        public str"
  },
  {
    "path": "CodeHub.Core/PresentationValues.cs",
    "chars": 344,
    "preview": "namespace CodeHub.Core\r\n{\r\n    public class PresentationValues\r\n    {\r\n        /// <summary>\r\n        /// Some sort of p"
  },
  {
    "path": "CodeHub.Core/Properties/AssemblyInfo.cs",
    "chars": 1432,
    "preview": "using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n// General In"
  },
  {
    "path": "CodeHub.Core/Secrets.cs",
    "chars": 562,
    "preview": "using System;\n\nnamespace CodeHub.Core\n{\n    public static class Secrets\n    {\n        public static string GithubOAuthI"
  },
  {
    "path": "CodeHub.Core/Services/AccountsService.cs",
    "chars": 1591,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Reactive.Linq;\nusing System.Reactive.Threading.Tasks;\n"
  },
  {
    "path": "CodeHub.Core/Services/ApplicationService.cs",
    "chars": 2328,
    "preview": "using CodeHub.Core.Data;\nusing GitHubSharp;\nusing System;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Utilities;\n\nn"
  },
  {
    "path": "CodeHub.Core/Services/IAccountsService.cs",
    "chars": 453,
    "preview": "using System.Collections.Generic;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Data;\n\nnamespace CodeHub.Core.Service"
  },
  {
    "path": "CodeHub.Core/Services/IAlertDialogService.cs",
    "chars": 1738,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Reactive.Disposables;\nusing ReactiveUI;\n\nnamespace CodeHub.Core"
  },
  {
    "path": "CodeHub.Core/Services/IApplicationService.cs",
    "chars": 503,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Data;\n\nnamespace CodeHub.Core.Services\n{\n    public inter"
  },
  {
    "path": "CodeHub.Core/Services/IFeaturesService.cs",
    "chars": 245,
    "preview": "using System.Threading.Tasks;\n\nnamespace CodeHub.Core.Services\n{\n    public interface IFeaturesService\n    {\n        boo"
  },
  {
    "path": "CodeHub.Core/Services/IImgurService.cs",
    "chars": 193,
    "preview": "using System.Threading.Tasks;\nusing CodeHub.Core.Data;\n\nnamespace CodeHub.Core.Services\n{\n    public interface IImgurSe"
  },
  {
    "path": "CodeHub.Core/Services/IMarkdownService.cs",
    "chars": 158,
    "preview": "using System.Threading.Tasks;\n\nnamespace CodeHub.Core.Services\n{\n    public interface IMarkdownService\n    {\n        Tas"
  },
  {
    "path": "CodeHub.Core/Services/IMessageService.cs",
    "chars": 217,
    "preview": "using System;\nusing System.Collections.Generic;\n\nnamespace CodeHub.Core.Services\n{\n    public interface IMessageService"
  },
  {
    "path": "CodeHub.Core/Services/INetworkActivityService.cs",
    "chars": 489,
    "preview": "using System;\nusing System.Reactive.Disposables;\n\nnamespace CodeHub.Core.Services\n{\n    public interface INetworkActivi"
  },
  {
    "path": "CodeHub.Core/Services/IPushNotificationsService.cs",
    "chars": 180,
    "preview": "using System.Threading.Tasks;\n\nnamespace CodeHub.Core.Services\n{\n    public interface IPushNotificationsService\n    {\n  "
  },
  {
    "path": "CodeHub.Core/Services/IViewModelTxService.cs",
    "chars": 143,
    "preview": "namespace CodeHub.Core.Services\n{\n    public interface IViewModelTxService\n    {\n        void Add(object obj);\n\n        "
  },
  {
    "path": "CodeHub.Core/Services/ImgurService.cs",
    "chars": 1264,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Net.Http;\nusing Newtonsoft.Json;\nusing CodeHub.Core.Data;\n\nnam"
  },
  {
    "path": "CodeHub.Core/Services/LoginService.cs",
    "chars": 6378,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Text;\nusing Syst"
  },
  {
    "path": "CodeHub.Core/Services/MessageService.cs",
    "chars": 1730,
    "preview": "using System;\nusing System.Collections.Generic;\n\nnamespace CodeHub.Core.Services\n{\n    public class MessageService : IM"
  },
  {
    "path": "CodeHub.Core/Services/ViewModelTxService.cs",
    "chars": 294,
    "preview": "namespace CodeHub.Core.Services\n{\n    public class ViewModelTxService : IViewModelTxService\n    {\n        private object"
  },
  {
    "path": "CodeHub.Core/Settings.cs",
    "chars": 2175,
    "preview": "using Plugin.Settings;\nusing Plugin.Settings.Abstractions;\n\nnamespace CodeHub.Core\n{\n    public static class Settings\n "
  },
  {
    "path": "CodeHub.Core/Utils/CustomObservableCollection.cs",
    "chars": 3171,
    "preview": "using System;\nusing System.Collections.ObjectModel;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing"
  },
  {
    "path": "CodeHub.Core/Utils/DateTimeExtensions.cs",
    "chars": 249,
    "preview": "namespace System\n{\n    public static class DateTimeExtensions\n    {\n        public static int TotalDaysAgo(this DateTime"
  },
  {
    "path": "CodeHub.Core/Utils/Emojis.cs",
    "chars": 32508,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Text.RegularExpressions;\n\nnamespace CodeHub.Core.Utilities"
  },
  {
    "path": "CodeHub.Core/Utils/FilterGroup.cs",
    "chars": 943,
    "preview": "using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CodeHub.Core.ViewModels;\r\n\r\nnamespace CodeHub.Core.Utils\n{\n"
  },
  {
    "path": "CodeHub.Core/Utils/GitHubAvatar.cs",
    "chars": 1286,
    "preview": "using System;\r\nusing CodeHub.Core.Utilities;\r\n\r\nnamespace CodeHub.Core.Utilities\r\n{\r\n    public class GitHubAvatar\r\n   "
  },
  {
    "path": "CodeHub.Core/Utils/GitHubExtensions.cs",
    "chars": 1516,
    "preview": "using System;\nusing GitHubSharp.Models;\nusing System.Text;\nusing System.Security.Cryptography;\n\n\npublic static class Gi"
  },
  {
    "path": "CodeHub.Core/Utils/GitHubList.cs",
    "chars": 980,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing Octokit;\n\nnamespace CodeHub.Core.Ut"
  },
  {
    "path": "CodeHub.Core/Utils/OctokitClientFactory.cs",
    "chars": 1352,
    "preview": "using System;\nusing Octokit.Internal;\nusing Splat;\nusing Octokit;\nusing System.Net.Http;\nusing CodeHub.Core.Services;\n\n"
  },
  {
    "path": "CodeHub.Core/Utils/OctokitNetworkClient.cs",
    "chars": 1117,
    "preview": "using Octokit.Internal;\nusing Octokit;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Services;\nusing System;\n\nnamesp"
  },
  {
    "path": "CodeHub.Core/Utils/RepositoryIdentifier.cs",
    "chars": 618,
    "preview": "using System.Linq;\n\nnamespace CodeHub.Core.Utils\n{\n    public class RepositoryIdentifier\n    {\n        public string Own"
  },
  {
    "path": "CodeHub.Core/Utils/ViewModelExtensions.cs",
    "chars": 271,
    "preview": "using CodeHub.Core.Services;\nusing CodeHub.Core.ViewModels;\nusing MvvmCross.Platform;\n\npublic static class ViewModelExte"
  },
  {
    "path": "CodeHub.Core/Utils/WeakReferenceExtensions.cs",
    "chars": 215,
    "preview": "using System;\n\npublic static class WeakReferenceExtensions\n{\n    public static T Get<T>(this WeakReference<T> @this) wh"
  },
  {
    "path": "CodeHub.Core/ViewModels/Accounts/AddAccountViewModel.cs",
    "chars": 5044,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Services;\nusing CodeHub.Core.Messages;\nusing System.React"
  },
  {
    "path": "CodeHub.Core/ViewModels/Accounts/OAuthLoginViewModel.cs",
    "chars": 1984,
    "preview": "using System;\nusing ReactiveUI;\nusing CodeHub.Core.Messages;\nusing CodeHub.Core.Services;\nusing Splat;\nusing System.Reac"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/FeedbackComposerViewModel.cs",
    "chars": 2571,
    "preview": "using ReactiveUI;\nusing System.Reactive;\nusing CodeHub.Core.Services;\nusing System;\nusing System.Linq;\nusing System.Rea"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/FeedbackItemViewModel.cs",
    "chars": 1031,
    "preview": "using System;\nusing ReactiveUI;\nusing Humanizer;\nusing System.Reactive;\n\nnamespace CodeHub.Core.ViewModels.App\n{\n    pu"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/FeedbackViewModel.cs",
    "chars": 2132,
    "preview": "using System;\nusing ReactiveUI;\nusing CodeHub.Core.Services;\nusing System.Reactive;\nusing Splat;\nusing Octokit;\n\nnamesp"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/MenuViewModel.cs",
    "chars": 6942,
    "preview": "using System.Collections.Generic;\nusing System.Windows.Input;\nusing CodeHub.Core.Data;\nusing CodeHub.Core.Services;\nusin"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/StartupViewModel.cs",
    "chars": 4353,
    "preview": "using System;\nusing CodeHub.Core.Services;\nusing System.Linq;\nusing System.Windows.Input;\nusing Dumb = MvvmCross.Core.Vi"
  },
  {
    "path": "CodeHub.Core/ViewModels/App/SupportViewModel.cs",
    "chars": 1865,
    "preview": "using System;\nusing ReactiveUI;\nusing CodeHub.Core.Services;\nusing System.Reactive.Linq;\nusing System.Reactive;\nusing S"
  },
  {
    "path": "CodeHub.Core/ViewModels/BaseViewModel.cs",
    "chars": 4057,
    "preview": "using CodeHub.Core.Services;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing MvvmCross.Platform;\nusin"
  },
  {
    "path": "CodeHub.Core/ViewModels/Changesets/ChangesetViewModel.cs",
    "chars": 4162,
    "preview": "using System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing CodeHub.Core.Services;\nusing CodeHub.Core.ViewModels."
  },
  {
    "path": "CodeHub.Core/ViewModels/Changesets/ChangesetsViewModel.cs",
    "chars": 982,
    "preview": "using GitHubSharp;\nusing System.Collections.Generic;\nusing GitHubSharp.Models;\nusing CodeHub.Core.Services;\n\nnamespace C"
  },
  {
    "path": "CodeHub.Core/ViewModels/Changesets/CommitsViewModel.cs",
    "chars": 2665,
    "preview": "using GitHubSharp.Models;\nusing System.Windows.Input;\nusing System.Threading.Tasks;\nusing GitHubSharp;\nusing System.Coll"
  },
  {
    "path": "CodeHub.Core/ViewModels/CollectionViewModel.cs",
    "chars": 4274,
    "preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Specialized;\r\nusing System.Linq;\r\nusing CodeH"
  },
  {
    "path": "CodeHub.Core/ViewModels/Events/BaseEventsViewModel.cs",
    "chars": 26678,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing System.Windows.In"
  },
  {
    "path": "CodeHub.Core/ViewModels/Events/NewsViewModel.cs",
    "chars": 431,
    "preview": "using System.Collections.Generic;\r\nusing GitHubSharp.Models;\r\n\r\nnamespace CodeHub.Core.ViewModels.Events\n{\n    public cl"
  },
  {
    "path": "CodeHub.Core/ViewModels/Events/OrganizationEventsViewModel.cs",
    "chars": 1004,
    "preview": "using System.Collections.Generic;\r\nusing GitHubSharp;\r\nusing GitHubSharp.Models;\r\n\r\nnamespace CodeHub.Core.ViewModels.Ev"
  },
  {
    "path": "CodeHub.Core/ViewModels/Events/RepositoryEventsViewModel.cs",
    "chars": 945,
    "preview": "using System.Collections.Generic;\r\nusing GitHubSharp;\r\nusing GitHubSharp.Models;\r\n\r\nnamespace CodeHub.Core.ViewModels.Ev"
  },
  {
    "path": "CodeHub.Core/ViewModels/Events/UserEventsViewModel.cs",
    "chars": 737,
    "preview": "using System.Collections.Generic;\r\nusing GitHubSharp;\r\nusing GitHubSharp.Models;\r\n\r\nnamespace CodeHub.Core.ViewModels.Ev"
  },
  {
    "path": "CodeHub.Core/ViewModels/FilterGroup.cs",
    "chars": 679,
    "preview": "using System.Collections.Generic;\r\nusing System.Linq;\r\n\r\nnamespace CodeHub.Core.ViewModels\n{\n    public class FilterGrou"
  },
  {
    "path": "CodeHub.Core/ViewModels/FilterModel.cs",
    "chars": 165,
    "preview": "using System;\r\n\r\nnamespace CodeHub.Core.ViewModels\n{\n    [Serializable]\n    public abstract class FilterModel<TF>\n    {\n"
  },
  {
    "path": "CodeHub.Core/ViewModels/FilterableCollectionViewModel.cs",
    "chars": 1330,
    "preview": "using CodeHub.Core.Data;\nusing CodeHub.Core.Services;\nusing MvvmCross.Platform;\n\nnamespace CodeHub.Core.ViewModels\n{\n   "
  },
  {
    "path": "CodeHub.Core/ViewModels/Gists/GistCreateViewModel.cs",
    "chars": 2555,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Messages;\nusing Reactiv"
  },
  {
    "path": "CodeHub.Core/ViewModels/Gists/GistItemViewModel.cs",
    "chars": 1414,
    "preview": "using System;\nusing ReactiveUI;\nusing CodeHub.Core.Utilities;\nusing Humanizer;\nusing System.Reactive;\nusing Octokit;\nus"
  },
  {
    "path": "CodeHub.Core/ViewModels/Gists/GistViewModel.cs",
    "chars": 3489,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing CodeHub.Core.ViewModels.User;\nusing MvvmCr"
  },
  {
    "path": "CodeHub.Core/ViewModels/Gists/GistsViewModel.cs",
    "chars": 5746,
    "preview": "using System.Collections.Generic;\nusing System.Threading.Tasks;\nusing ReactiveUI;\nusing CodeHub.Core.Services;\nusing Sys"
  },
  {
    "path": "CodeHub.Core/ViewModels/ICanGoToViewModel.cs",
    "chars": 190,
    "preview": "using System.Reactive;\nusing ReactiveUI;\n\nnamespace CodeHub.Core.ViewModels\n{\n    public interface ICanGoToViewModel\n  "
  },
  {
    "path": "CodeHub.Core/ViewModels/IFilterableViewModel.cs",
    "chars": 249,
    "preview": "namespace CodeHub.Core.ViewModels\n{\n    public interface IFilterableViewModel<TFilter> where TFilter : FilterModel<TFilt"
  },
  {
    "path": "CodeHub.Core/ViewModels/IListViewModel.cs",
    "chars": 381,
    "preview": "using System;\nusing System.Reactive;\nusing ReactiveUI;\n\nnamespace CodeHub.Core.ViewModels\n{\n    public interface IListV"
  },
  {
    "path": "CodeHub.Core/ViewModels/ILoadableViewModel.cs",
    "chars": 191,
    "preview": "using ReactiveUI;\nusing System.Reactive;\n\nnamespace CodeHub.Core.ViewModels\n{\n    public interface ILoadableViewModel\n "
  },
  {
    "path": "CodeHub.Core/ViewModels/IProvidesSearchKeyword.cs",
    "chars": 138,
    "preview": "namespace CodeHub.Core.ViewModels\n{\n    public interface IProvidesSearchKeyword\n    {\n        string SearchKeyword { ge"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/BaseIssuesViewModel.cs",
    "chars": 3351,
    "preview": "using System;\nusing CodeHub.Core.ViewModels;\nusing GitHubSharp.Models;\nusing CodeHub.Core.Filters;\nusing System.Windows."
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueAddViewModel.cs",
    "chars": 2016,
    "preview": "using System;\nusing MvvmCross.Core.ViewModels;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Messages;\nusing System.L"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueAssignedToViewModel.cs",
    "chars": 3368,
    "preview": "using System;\nusing GitHubSharp.Models;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Messages;\nusing MvvmCross.Core."
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueEditViewModel.cs",
    "chars": 4590,
    "preview": "using MvvmCross.Core.ViewModels;\nusing System.Threading.Tasks;\nusing GitHubSharp.Models;\nusing System;\nusing CodeHub.Cor"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueLabelsViewModel.cs",
    "chars": 3920,
    "preview": "using System.Threading.Tasks;\nusing GitHubSharp.Models;\nusing System.Collections.Generic;\nusing CodeHub.Core.Messages;\nu"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueMilestonesViewModel.cs",
    "chars": 3447,
    "preview": "using System.Threading.Tasks;\nusing GitHubSharp.Models;\nusing CodeHub.Core.Messages;\nusing System;\nusing CodeHub.Core.Se"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueModifyViewModel.cs",
    "chars": 3798,
    "preview": "using System;\nusing GitHubSharp.Models;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing System.Thread"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssueViewModel.cs",
    "chars": 9622,
    "preview": "using System.Threading.Tasks;\nusing GitHubSharp.Models;\nusing System.Windows.Input;\nusing CodeHub.Core.Messages;\nusing C"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/IssuesViewModel.cs",
    "chars": 4081,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Filters;\nusing GitHubSharp.Models;\nusing System.Windows.I"
  },
  {
    "path": "CodeHub.Core/ViewModels/Issues/MyIssuesViewModel.cs",
    "chars": 3281,
    "preview": "using System.Threading.Tasks;\nusing CodeHub.Core.Filters;\nusing GitHubSharp.Models;\nusing System.Collections.Generic;\nus"
  },
  {
    "path": "CodeHub.Core/ViewModels/LoadableViewModel.cs",
    "chars": 2389,
    "preview": "using GitHubSharp;\nusing System.Threading.Tasks;\nusing MvvmCross.Core.ViewModels;\nusing CodeHub.Core.ViewModels;\nusing S"
  },
  {
    "path": "CodeHub.Core/ViewModels/MarkdownAccessoryViewModel.cs",
    "chars": 2455,
    "preview": "using System;\nusing ReactiveUI;\nusing CodeHub.Core.Services;\nusing System.IO;\nusing System.Threading.Tasks;\nusing Syste"
  },
  {
    "path": "CodeHub.Core/ViewModels/Notifications/NotificationsViewModel.cs",
    "chars": 8214,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewMode"
  },
  {
    "path": "CodeHub.Core/ViewModels/Organizations/OrganizationViewModel.cs",
    "chars": 1330,
    "preview": "using System.Threading.Tasks;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing CodeHub.Core.ViewModels"
  },
  {
    "path": "CodeHub.Core/ViewModels/Organizations/OrganizationsViewModel.cs",
    "chars": 1188,
    "preview": "using System.Threading.Tasks;\nusing System.Windows.Input;\nusing CodeHub.Core.ViewModels;\nusing GitHubSharp.Models;\nusing"
  },
  {
    "path": "CodeHub.Core/ViewModels/Organizations/TeamsViewModel.cs",
    "chars": 836,
    "preview": "using GitHubSharp.Models;\nusing System.Threading.Tasks;\n\nnamespace CodeHub.Core.ViewModels.Organizations\n{\n    public cl"
  },
  {
    "path": "CodeHub.Core/ViewModels/PullRequests/PullRequestCommitsViewModel.cs",
    "chars": 1092,
    "preview": "using GitHubSharp.Models;\nusing GitHubSharp;\nusing System.Collections.Generic;\nusing CodeHub.Core.ViewModels.Changesets;"
  },
  {
    "path": "CodeHub.Core/ViewModels/PullRequests/PullRequestFilesViewModel.cs",
    "chars": 1804,
    "preview": "using System.Linq;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing CodeHub.Core.Services;\nusing CodeHub."
  },
  {
    "path": "CodeHub.Core/ViewModels/PullRequests/PullRequestViewModel.cs",
    "chars": 13155,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing GitHubSha"
  },
  {
    "path": "CodeHub.Core/ViewModels/PullRequests/PullRequestsViewModel.cs",
    "chars": 2845,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewModels;\nusing GitHubSha"
  },
  {
    "path": "CodeHub.Core/ViewModels/Repositories/RepositoriesViewModel.cs",
    "chars": 6780,
    "preview": "using ReactiveUI;\nusing System.Reactive;\nusing CodeHub.Core.Services;\nusing Octokit;\nusing Splat;\nusing System;\nusing Sy"
  },
  {
    "path": "CodeHub.Core/ViewModels/Repositories/RepositoryItemViewModel.cs",
    "chars": 1596,
    "preview": "using ReactiveUI;\nusing System;\nusing CodeHub.Core.Utilities;\nusing System.Diagnostics;\nusing System.Reactive;\n\nnamespa"
  },
  {
    "path": "CodeHub.Core/ViewModels/Repositories/RepositoryViewModel.cs",
    "chars": 7815,
    "preview": "using System.Collections.Generic;\nusing System.Threading.Tasks;\nusing System.Windows.Input;\nusing MvvmCross.Core.ViewMod"
  },
  {
    "path": "CodeHub.Core/ViewModels/Repositories/TrendingRepositoriesViewModel.cs",
    "chars": 3498,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Collections.Generic;\nusing CodeHub.Core.Data;\nusing ReactiveUI;"
  },
  {
    "path": "CodeHub.Core/ViewModels/Search/ExploreViewModel.cs",
    "chars": 656,
    "preview": "using ReactiveUI;\n\nnamespace CodeHub.Core.ViewModels.Search\n{\n    public class ExploreViewModel : ReactiveObject\n    {\n"
  },
  {
    "path": "CodeHub.Core/ViewModels/Search/RepositoryExploreViewModel.cs",
    "chars": 2659,
    "preview": "using System;\nusing System.Reactive;\nusing CodeHub.Core.Services;\nusing ReactiveUI;\nusing Octokit;\nusing System.Reactive"
  },
  {
    "path": "CodeHub.Core/ViewModels/Search/UserExploreViewModel.cs",
    "chars": 2082,
    "preview": "using System;\nusing CodeHub.Core.Services;\nusing ReactiveUI;\nusing Octokit;\nusing CodeHub.Core.ViewModels.Users;\nusing "
  },
  {
    "path": "CodeHub.Core/ViewModels/Source/EditSourceViewModel.cs",
    "chars": 2384,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing CodeHub.Core.Messages;\nusing CodeHub.Core.Services;\nusing MvvmCross.Co"
  },
  {
    "path": "CodeHub.Core/ViewModels/Users/UserItemViewModel.cs",
    "chars": 665,
    "preview": "using ReactiveUI;\nusing System;\nusing CodeHub.Core.Utilities;\nusing System.Reactive;\n\nnamespace CodeHub.Core.ViewModels"
  },
  {
    "path": "CodeHub.Core/ViewModels/Users/UserViewModel.cs",
    "chars": 2833,
    "preview": "using System.Threading.Tasks;\nusing System.Windows.Input;\nusing CodeHub.Core.Services;\nusing CodeHub.Core.ViewModels.Eve"
  },
  {
    "path": "CodeHub.Core/ViewModels/Users/UsersViewModel.cs",
    "chars": 5840,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reactive;\nusing System.Reactive.Linq;\nusing System.Threadi"
  },
  {
    "path": "CodeHub.Core/ViewModels/ViewModelExtensions.cs",
    "chars": 3798,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing MvvmCross.Core.ViewModels;\nusing GitHubSharp;\nusing System.Collections"
  },
  {
    "path": "CodeHub.Core/ViewModels/WebBrowserViewModel.cs",
    "chars": 348,
    "preview": "namespace CodeHub.Core.ViewModels\n{\n    public class WebBrowserViewModel : BaseViewModel\n    {\n        public string Url"
  },
  {
    "path": "CodeHub.Core/packages.config",
    "chars": 3303,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n  <package id=\"akavache\" version=\"5.0.0\" targetFramework=\"xamarinios1"
  },
  {
    "path": "CodeHub.iOS/AkavacheSqliteLinkerOverride.cs",
    "chars": 464,
    "preview": "using System;\nusing Akavache.Sqlite3;\n\n// Note: This class file is *required* for iOS to work correctly, and is \n// also"
  },
  {
    "path": "CodeHub.iOS/AppDelegate.cs",
    "chars": 12569,
    "preview": "using System.Collections.Generic;\nusing System;\nusing MvvmCross.Core.ViewModels;\nusing Foundation;\nusing UIKit;\nusing Co"
  },
  {
    "path": "CodeHub.iOS/CodeHub.iOS.csproj",
    "chars": 39602,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "CodeHub.iOS/DialogElements/BooleanElement.cs",
    "chars": 3099,
    "preview": "using System;\nusing UIKit;\nusing CodeHub.iOS.DialogElements;\nusing System.Reactive.Subjects;\nusing System.Reactive.Linq;"
  },
  {
    "path": "CodeHub.iOS/DialogElements/ChangesetElement.cs",
    "chars": 2307,
    "preview": "using CodeHub.iOS.Views;\r\n\r\nnamespace CodeHub.iOS.DialogElements\n{\n    public class ChangesetElement : StringElement\n   "
  },
  {
    "path": "CodeHub.iOS/DialogElements/CommentElement.cs",
    "chars": 990,
    "preview": "using UIKit;\r\nusing CodeHub.iOS.TableViewCells;\r\nusing System;\r\nusing CodeHub.Core.Utilities;\n\nnamespace CodeHub.iOS.Dia"
  },
  {
    "path": "CodeHub.iOS/DialogElements/CommitElement.cs",
    "chars": 1694,
    "preview": "using System;\nusing GitHubSharp.Models;\nusing Foundation;\nusing UIKit;\nusing CodeHub.Core.Utilities;\nusing CodeHub.iOS."
  },
  {
    "path": "CodeHub.iOS/DialogElements/DummyInputElement.cs",
    "chars": 876,
    "preview": "using UIKit;\nusing CoreGraphics;\nusing CodeHub.iOS.DialogElements;\n\nnamespace CodeHub.iOS.DialogElements\n{\n    class Dum"
  },
  {
    "path": "CodeHub.iOS/DialogElements/Element.cs",
    "chars": 2313,
    "preview": "using System;\r\nusing Foundation;\r\nusing UIKit;\r\n\r\nnamespace CodeHub.iOS.DialogElements\r\n{\r\n    public abstract class El"
  },
  {
    "path": "CodeHub.iOS/DialogElements/EntryElement.cs",
    "chars": 12102,
    "preview": "using System;\r\nusing UIKit;\r\nusing CoreGraphics;\r\nusing Foundation;\r\nusing System.Reactive.Linq;\r\nusing System.Reactive"
  },
  {
    "path": "CodeHub.iOS/DialogElements/ExpandingInputElement.cs",
    "chars": 5295,
    "preview": "using System;\nusing UIKit;\nusing Foundation;\nusing CoreGraphics;\nusing System.Reactive.Linq;\nusing CodeHub.iOS.Views;\nus"
  },
  {
    "path": "CodeHub.iOS/DialogElements/HtmlElement.cs",
    "chars": 5918,
    "preview": "using System;\nusing UIKit;\nusing Foundation;\nusing CoreGraphics;\nusing System.Reactive.Subjects;\nusing System.Reactive.L"
  },
  {
    "path": "CodeHub.iOS/DialogElements/IElementSizing.cs",
    "chars": 223,
    "preview": "using UIKit;\r\nusing Foundation;\r\nusing System;\r\n\r\nnamespace CodeHub.iOS.DialogElements\r\n{\r\n    public interface IElemen"
  },
  {
    "path": "CodeHub.iOS/DialogElements/IssueElement.cs",
    "chars": 2080,
    "preview": "using System;\r\nusing UIKit;\nusing Foundation;\r\nusing CodeHub.iOS.TableViewCells;\r\n\r\nnamespace CodeHub.iOS.DialogElements"
  },
  {
    "path": "CodeHub.iOS/DialogElements/LabelElement.cs",
    "chars": 1531,
    "preview": "using CoreGraphics;\nusing UIKit;\n\nnamespace CodeHub.iOS.DialogElements\n{\n    public class LabelElement : StringElement\n "
  },
  {
    "path": "CodeHub.iOS/DialogElements/LoadMoreElement.cs",
    "chars": 6334,
    "preview": "//\n// This cell does not perform cell recycling, do not use as\n// sample code for new elements. \n//\nusing System;\nusing "
  },
  {
    "path": "CodeHub.iOS/DialogElements/MenuElement.cs",
    "chars": 4051,
    "preview": "using System;\nusing UIKit;\nusing CoreGraphics;\n\nnamespace CodeHub.iOS.DialogElements\n{\n    public class MenuElement : S"
  },
  {
    "path": "CodeHub.iOS/DialogElements/MilestoneElement.cs",
    "chars": 1453,
    "preview": "using System;\nusing Foundation;\nusing UIKit;\nusing CodeHub.iOS.TableViewCells;\n\nnamespace CodeHub.iOS.DialogElements\n{\n "
  },
  {
    "path": "CodeHub.iOS/DialogElements/MultilinedElement.cs",
    "chars": 2075,
    "preview": "using UIKit;\r\nusing CodeHub.iOS.TableViewCells;\r\nusing System.Reactive.Subjects;\r\nusing System;\r\nusing System.Reactive.L"
  },
  {
    "path": "CodeHub.iOS/DialogElements/NewsFeedElement.cs",
    "chars": 4301,
    "preview": "using System;\nusing System.Collections.Generic;\nusing CoreGraphics;\nusing Foundation;\nusing UIKit;\nusing CodeHub.iOS.Tab"
  },
  {
    "path": "CodeHub.iOS/DialogElements/OwnerDrawnElement.cs",
    "chars": 3884,
    "preview": "using System;\nusing CoreGraphics;\nusing UIKit;\nusing Foundation;\n\nnamespace CodeHub.iOS.DialogElements\n{\n    public abst"
  },
  {
    "path": "CodeHub.iOS/DialogElements/PaginateElement.cs",
    "chars": 645,
    "preview": "using UIKit;\n\nnamespace CodeHub.iOS.DialogElements\n{\n    public class PaginateElement : LoadMoreElement\n    {\n        st"
  },
  {
    "path": "CodeHub.iOS/DialogElements/PullRequestElement.cs",
    "chars": 1117,
    "preview": "using System;\nusing GitHubSharp.Models;\nusing Foundation;\nusing CodeHub.iOS.Cells;\nusing UIKit;\nusing CodeHub.Core.Util"
  },
  {
    "path": "CodeHub.iOS/DialogElements/RootElement.cs",
    "chars": 5162,
    "preview": "using System;\nusing Foundation;\nusing System.Collections.Generic;\nusing UIKit;\nusing System.Collections.ObjectModel;\nus"
  },
  {
    "path": "CodeHub.iOS/DialogElements/Section.cs",
    "chars": 8863,
    "preview": "using System.Collections.Generic;\r\nusing UIKit;\r\nusing CoreGraphics;\r\nusing Foundation;\r\nusing System.Collections.Objec"
  },
  {
    "path": "CodeHub.iOS/DialogElements/SplitButtonElement.cs",
    "chars": 6082,
    "preview": "using UIKit;\nusing CoreGraphics;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reactiv"
  },
  {
    "path": "CodeHub.iOS/DialogElements/SplitViewElement.cs",
    "chars": 5690,
    "preview": "using System;\r\nusing UIKit;\r\nusing CoreGraphics;\r\n\r\nnamespace CodeHub.iOS.DialogElements\r\n{\r\n    public class SplitView"
  },
  {
    "path": "CodeHub.iOS/DialogElements/StringElement.cs",
    "chars": 7927,
    "preview": "using System;\r\nusing UIKit;\r\nusing Foundation;\r\nusing SDWebImage;\r\nusing System.Reactive.Subjects;\r\nusing System.Reacti"
  },
  {
    "path": "CodeHub.iOS/DialogElements/UserElement.cs",
    "chars": 2252,
    "preview": "using System;\r\nusing UIKit;\r\nusing CodeHub.iOS;\r\nusing CodeHub.Core.Utilities;\r\n\r\nnamespace CodeHub.iOS.DialogElements\n{"
  },
  {
    "path": "CodeHub.iOS/Entitlements.plist",
    "chars": 190,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs"
  },
  {
    "path": "CodeHub.iOS/Images/Images.cs",
    "chars": 3522,
    "preview": "using UIKit;\nusing MonoTouch.UIKit;\n\nnamespace CodeHub.iOS\n{\n    public static class Images\n    {\n        public static "
  },
  {
    "path": "CodeHub.iOS/Info.plist",
    "chars": 2710,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "CodeHub.iOS/Launch.storyboard",
    "chars": 3160,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "CodeHub.iOS/LinkerPleaseInclude.cs",
    "chars": 244,
    "preview": "using MvvmCross.Platform.IoC;\n\nnamespace CodeHub.iOS\n{\n    [Preserve]\n    public class LinkerPleaseInclude\n    {\n      "
  },
  {
    "path": "CodeHub.iOS/OcticonExtensions.cs",
    "chars": 1972,
    "preview": "using System;\nusing UIKit;\nusing System.IO;\nusing Foundation;\nusing CodeHub.iOS;\n\n// Analysis disable once CheckNamespa"
  },
  {
    "path": "CodeHub.iOS/Properties/AssemblyInfo.cs",
    "chars": 1430,
    "preview": "using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n// General In"
  },
  {
    "path": "CodeHub.iOS/Resources/Images.xcassets/AppIcons.appiconset/Contents.json",
    "chars": 3896,
    "preview": "{\n  \"images\": [\n    {\n      \"size\": \"20x20\",\n      \"scale\": \"2x\",\n      \"idiom\": \"iphone\"\n    },\n    {\n      \"size\": \"20"
  },
  {
    "path": "CodeHub.iOS/Resources/Images.xcassets/Avatar.imageset/Contents.json",
    "chars": 1230,
    "preview": "{\n  \"images\": [\n    {\n      \"idiom\": \"universal\"\n    },\n    {\n      \"filename\": \"avatar.png\",\n      \"scale\": \"1x\",\n     "
  },
  {
    "path": "CodeHub.iOS/Resources/Images.xcassets/UnknownUser.imageset/Contents.json",
    "chars": 1299,
    "preview": "{\n  \"images\": [\n    {\n      \"idiom\": \"universal\"\n    },\n    {\n      \"filename\": \"login_user_unknown.png\",\n      \"scale\":"
  },
  {
    "path": "CodeHub.iOS/Services/AlertDialogService.cs",
    "chars": 5286,
    "preview": "\nusing System;\nusing CodeHub.Core.Services;\nusing UIKit;\nusing System.Threading.Tasks;\nusing Foundation;\nusing CoreGraph"
  },
  {
    "path": "CodeHub.iOS/Services/FeaturesService.cs",
    "chars": 1844,
    "preview": "using CodeHub.Core.Services;\nusing System.Threading.Tasks;\nusing UIKit;\nusing Plugin.Settings.Abstractions;\nusing Plugin"
  },
  {
    "path": "CodeHub.iOS/Services/InAppPurchaseService.cs",
    "chars": 8431,
    "preview": "using System;\nusing StoreKit;\nusing System.Threading.Tasks;\nusing Foundation;\nusing System.Collections.Generic;\nusing S"
  },
  {
    "path": "CodeHub.iOS/Services/MarkdownService.cs",
    "chars": 887,
    "preview": "using JavaScriptCore;\r\nusing Foundation;\r\nusing CodeHub.Core.Services;\r\nusing System.Threading.Tasks;\n\nnamespace CodeHub"
  },
  {
    "path": "CodeHub.iOS/Services/NetworkActivityService.cs",
    "chars": 390,
    "preview": "using CodeHub.Core.Services;\nusing CodeHub.iOS.Utilities;\n\nnamespace CodeHub.iOS.Services\n{\n    public class NetworkAct"
  },
  {
    "path": "CodeHub.iOS/Services/PushNotificationsService.cs",
    "chars": 3668,
    "preview": "using System;\nusing CodeHub.Core.Services;\nusing UIKit;\nusing System.Net.Http;\nusing System.Collections.Generic;\nusing S"
  },
  {
    "path": "CodeHub.iOS/Setup.cs",
    "chars": 3108,
    "preview": "// --------------------------------------------------------------------------------------------------------------------\n"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/CommitCellView.cs",
    "chars": 2018,
    "preview": "using System;\nusing Foundation;\nusing UIKit;\nusing CodeHub.Core.Utilities;\nusing ObjCRuntime;\nusing Humanizer;\n\nnamespac"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/CommitCellView.designer.cs",
    "chars": 1491,
    "preview": "// WARNING\n//\n// This file has been generated automatically by Xamarin Studio to store outlets and\n// actions made in th"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/CommitCellView.xib",
    "chars": 7110,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/FeedbackCellView.cs",
    "chars": 1787,
    "preview": "using System;\nusing Foundation;\nusing UIKit;\nusing CodeHub.Core.ViewModels.App;\nusing ReactiveUI;\nusing System.Reactive."
  },
  {
    "path": "CodeHub.iOS/TableViewCells/FeedbackCellView.designer.cs",
    "chars": 1055,
    "preview": "// WARNING\n//\n// This file has been generated automatically by Xamarin Studio to store outlets and\n// actions made in th"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/FeedbackCellView.xib",
    "chars": 6247,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/GistCellView.cs",
    "chars": 1813,
    "preview": "using System;\nusing Foundation;\nusing UIKit;\nusing ReactiveUI;\nusing CodeHub.Core.ViewModels.Gists;\nusing System.Reactiv"
  },
  {
    "path": "CodeHub.iOS/TableViewCells/GistCellView.designer.cs",
    "chars": 1487,
    "preview": "// WARNING\n//\n// This file has been generated automatically by Xamarin Studio to store outlets and\n// actions made in th"
  }
]

// ... and 259 more files (download for full content)

About this extraction

This page contains the full source code of the CodeHubApp/CodeHub GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 459 files (28.5 MB), approximately 370.0k tokens, and a symbol index with 1944 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!