├── .gitignore ├── Component.Common.Props ├── LICENSE.txt ├── NetCoreStack.Hisar.sln ├── NuGet.config ├── README.md ├── docs └── GeneratePackageOnBuild.PNG ├── src ├── NetCoreStack.Hisar.Server │ ├── Filters │ │ └── HisarServerExceptionFilter.cs │ ├── HisarCollectionNameSelector.cs │ ├── HisarControllerServerBase.cs │ ├── HisarServerViewComponent.cs │ ├── HisarViewComponentServerBase.cs │ ├── NetCoreStack.Hisar.Server.csproj │ └── ServiceCollectionExtensions.cs └── NetCoreStack.Hisar │ ├── Attributes │ ├── HisarCacheAttribute.cs │ ├── HisarCacheInValidatorAttribute.cs │ └── HisarRouteAttribute.cs │ ├── Enums │ └── WebPackSection.cs │ ├── Extensions │ ├── ActivatorExtensions.cs │ ├── ApplicationBuilderExtensions.cs │ ├── AssemblyExtensions.cs │ ├── AutoCompleteRequestExtensions.cs │ ├── DictionaryExtensions.cs │ ├── HisarLoggingExtensions.cs │ ├── HisarTypeExtensions.cs │ ├── HtmlHelperExtensions.cs │ ├── InMemoryCacheProviderExtensions.cs │ ├── ModelKeyGeneratorExtensions.cs │ ├── RouteExtensions.cs │ └── ServiceCollectionExtensions.cs │ ├── Filters │ └── HisarExceptionFilter.cs │ ├── Helpers │ ├── ComponentHelperBase.cs │ ├── ComponentScriptsTagHelper.cs │ ├── ExceptionFormatter.cs │ ├── HisarDefaultViewComponentHelper.cs │ ├── HisarViewComponentHelper.cs │ ├── LogHelper.cs │ ├── NugetHelper.cs │ ├── PathUtility.cs │ ├── ReferencedAssembliesResolver.cs │ └── RunningComponentHelper.cs │ ├── Infrastructure │ ├── AgentCommandInvocator.cs │ ├── ComponentDefaultEventSubscriber.cs │ ├── ComponentRoutingConvention.cs │ ├── DataStreamingInvocator.cs │ ├── DefaultCacheItemResolver.cs │ ├── DefaultComponentTypeResolver.cs │ ├── DefaultHisarExceptionFilter.cs │ ├── DefaultHisarStartup.cs │ ├── DefaultIAssemblyProviderCompilationCallback.cs │ ├── DefaultMenuItemsBuilder.cs │ ├── DefaultMenuItemsRenderer.cs │ ├── DefaultModelKeyGenerator.cs │ ├── DefaultProxyFileLocator.cs │ ├── DefaultUserRegistration.cs │ ├── DefaultUsernamePasswordValidator.cs │ ├── EngineConstants.cs │ ├── FileProviderHelper.cs │ ├── HisarControllerBase.cs │ ├── HisarMarkerService.cs │ ├── HisarViewComponentBase.cs │ ├── HostingViewComponentSelector.cs │ ├── InMemoryFileInfo.cs │ ├── NameSpaceRoutingConvention.cs │ ├── PropertyDefinitionFilter.cs │ └── TypesPart.cs │ ├── Interface │ ├── IAssemblyFileProviderFactory.cs │ ├── IAssemblyProviderResolveCallback.cs │ ├── ICacheItemResolver.cs │ ├── ICacheValueProvider.cs │ ├── IComponentEventSubscriber.cs │ ├── IComponentItemRegistrar.cs │ ├── IComponentTypeResolver.cs │ ├── IDefaultProxyFileLocator.cs │ ├── IEntityFilter.cs │ ├── IHisarExceptionFilter.cs │ ├── IMemoryCacheProvider.cs │ ├── IMenuItem.cs │ ├── IMenuItemsBuilder.cs │ ├── IMenuItemsRenderer.cs │ ├── IModelKeyGenerator.cs │ ├── IUserRegistration.cs │ ├── IUsernamePasswordValidator.cs │ └── IWebCliProxyEventHandler.cs │ ├── NetCoreStack.Hisar.csproj │ ├── Providers │ ├── CacheValueProviderBase.cs │ ├── DefaultAssemblyFileProviderFactory.cs │ ├── DefaultDataProtectorProvider.cs │ ├── DirectoryFriendlyEmbeddedFileProvider.cs │ ├── HisarAssemblyComponentsLoader.cs │ ├── HisarEmbededFileProvider.cs │ ├── InMemoryCacheProvider.cs │ ├── InMemoryCliFileProvider.cs │ ├── SharedEmbeddedFileProvider.cs │ └── StaticCliFileProvider.cs │ ├── Resources │ ├── hisar-connection.html │ └── reconnecting-hisar-websocket.js │ └── Types │ ├── BasicExceptionContext.cs │ ├── CacheItem.cs │ ├── CacheValueProviderRegistrar.cs │ ├── CliUsageMarkerService.cs │ ├── ComponentJsonDefinition.cs │ ├── ComponentPartDefinition.cs │ ├── ComponentsJson.cs │ ├── DefaultMenuItem.cs │ ├── DefaultWebCliProxyEventHandler.cs │ ├── EntityIdentityActiveBson.cs │ ├── EnumerableDirectoryContents.cs │ ├── FileChangedContext.cs │ ├── HisarConventionBasedStartup.cs │ └── WebCliServiceInformation.cs └── test ├── Admin.Hosting ├── Admin.Hosting.csproj ├── Controllers │ └── HomeController.cs ├── CustomAssemblyResolveCallback.cs ├── ExternalComponents │ └── components.json ├── HostingMenuBuilder.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── contents │ └── do-your-best.jpg │ ├── css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── custom.css │ └── font-awesome.min.css │ ├── favicon.ico │ ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 │ ├── img │ ├── back_disabled.png │ ├── back_enabled.png │ ├── back_enabled_hover.png │ ├── forward_disabled.png │ ├── forward_enabled.png │ ├── forward_enabled_hover.png │ ├── loading.gif │ └── user.png │ └── js │ ├── bootstrap.min.js │ ├── bundle.min.js │ ├── custom.js │ ├── efe.all.min.js │ ├── jquery.min.js │ ├── jquery.min.map │ └── skycons.js ├── Admin.Tabler.Hosting ├── Admin.Tabler.Hosting.csproj ├── Controllers │ └── HomeController.cs ├── ExternalComponents │ └── components.json ├── Program.cs ├── Properties │ └── launchSettings.json ├── Startup.cs ├── TablerMenuItemsRenderer.cs ├── ViewRenderService.cs ├── Views │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── MenuItemsPv.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _Localization.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── css │ └── production.css │ ├── favicons │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon.png │ ├── browserconfig.xml │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── mstile-150x150.png │ ├── safari-pinned-tab.svg │ └── site.webmanifest │ ├── fonts │ └── feather │ │ ├── feather-webfont.eot │ │ ├── feather-webfont.svg │ │ ├── feather-webfont.ttf │ │ └── feather-webfont.woff │ └── images │ ├── blank-avatar.png │ └── logo.png ├── Hisar.CommonLibrary ├── ExternalLibrary.cs └── Hisar.CommonLibrary.csproj ├── Landing.Hosting ├── Controllers │ ├── HomeController.cs │ └── TestController.cs ├── Core │ └── HostingFactory.cs ├── ExternalComponents │ └── components.json ├── Landing.Hosting.csproj ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.json └── wwwroot │ ├── css │ ├── bootstrap.css │ └── bootstrap.min.css │ ├── favicon.ico │ ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 │ └── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery.js │ └── main.js ├── NetCoreStack.Hisar.Tests ├── CollectionNameTests.cs ├── Core │ └── TestComponentTypeResolver.cs ├── ExternalComponents │ └── _placeholder ├── FileProviderTests.cs ├── HisarFixture.cs ├── HisarTestBase.cs ├── NameResolvers.cs ├── NetCoreStack.Hisar.Tests.csproj ├── Startup.cs └── appsettings.json ├── components ├── Directory.Build.props ├── Hisar.Component.Carousel │ ├── CarouselMenuBuilder.cs │ ├── CarouselViewComponent.cs │ ├── Controllers │ │ └── HomeController.cs │ ├── Hisar.Component.Carousel.csproj │ ├── Models │ │ └── CarouselViewModel.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.Component.cs │ ├── Startup.ComponentDependencies.cs │ ├── Startup.cs │ ├── ViewComponents │ │ └── SampleViewComponent.cs │ ├── Views │ │ ├── Home │ │ │ └── Index.cshtml │ │ ├── Shared │ │ │ └── Components │ │ │ │ ├── Carousel │ │ │ │ └── Default.cshtml │ │ │ │ └── Sample │ │ │ │ └── Default.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ └── wwwroot │ │ ├── css │ │ └── carousel.css │ │ ├── favicon.ico │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── img │ │ ├── banner1.svg │ │ ├── banner2.svg │ │ ├── banner4.svg │ │ ├── banner5.png │ │ └── banner6.jpg │ │ ├── js │ │ └── carousel.js │ │ └── lib │ │ └── ignore-guideline.js ├── Hisar.Component.ContentManagement │ ├── ContentCacheValueProvider.cs │ ├── Controllers │ │ ├── HomeController.cs │ │ └── PageController.cs │ ├── CustomMenuBuilder.cs │ ├── Helpers │ │ └── StringExtensions.cs │ ├── Hisar.Component.ContentManagement.csproj │ ├── IcerikViewModelComposer.cs │ ├── Models │ │ └── ContentObject.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.Component.cs │ ├── Startup.ComponentDependencies.cs │ ├── Startup.cs │ ├── Types │ │ └── ContentObjectType.cs │ ├── ViewComponents │ │ └── DefaultViewComponent.cs │ ├── ViewModels │ │ └── ContentObjectViewModel.cs │ ├── Views │ │ ├── Home │ │ │ ├── ContentObjectForm.cshtml │ │ │ └── ContentObjectList.cshtml │ │ ├── Page │ │ │ └── Index.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.KullaniciTest.json │ ├── appsettings.json │ └── wwwroot │ │ └── js │ │ └── ckeditor │ │ ├── adapters │ │ └── jquery.js │ │ ├── build-config.js │ │ ├── ckeditor.js │ │ ├── config.js │ │ ├── contents.css │ │ ├── lang │ │ ├── af.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-ch.js │ │ ├── de.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en.js │ │ ├── eo.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr.js │ │ ├── gl.js │ │ ├── gu.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── ka.js │ │ ├── km.js │ │ ├── ko.js │ │ ├── ku.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── mk.js │ │ ├── mn.js │ │ ├── ms.js │ │ ├── nb.js │ │ ├── nl.js │ │ ├── no.js │ │ ├── oc.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-latn.js │ │ ├── sr.js │ │ ├── sv.js │ │ ├── th.js │ │ ├── tr.js │ │ ├── tt.js │ │ ├── ug.js │ │ ├── uk.js │ │ ├── vi.js │ │ ├── zh-cn.js │ │ └── zh.js │ │ ├── plugins │ │ ├── a11yhelp │ │ │ └── dialogs │ │ │ │ ├── a11yhelp.js │ │ │ │ └── lang │ │ │ │ ├── _translationstatus.txt │ │ │ │ ├── af.js │ │ │ │ ├── ar.js │ │ │ │ ├── az.js │ │ │ │ ├── bg.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── cy.js │ │ │ │ ├── da.js │ │ │ │ ├── de-ch.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en-gb.js │ │ │ │ ├── en.js │ │ │ │ ├── eo.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fo.js │ │ │ │ ├── fr-ca.js │ │ │ │ ├── fr.js │ │ │ │ ├── gl.js │ │ │ │ ├── gu.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── hr.js │ │ │ │ ├── hu.js │ │ │ │ ├── id.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── km.js │ │ │ │ ├── ko.js │ │ │ │ ├── ku.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── mk.js │ │ │ │ ├── mn.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── no.js │ │ │ │ ├── oc.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── si.js │ │ │ │ ├── sk.js │ │ │ │ ├── sl.js │ │ │ │ ├── sq.js │ │ │ │ ├── sr-latn.js │ │ │ │ ├── sr.js │ │ │ │ ├── sv.js │ │ │ │ ├── th.js │ │ │ │ ├── tr.js │ │ │ │ ├── tt.js │ │ │ │ ├── ug.js │ │ │ │ ├── uk.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-cn.js │ │ │ │ └── zh.js │ │ ├── about │ │ │ └── dialogs │ │ │ │ ├── about.js │ │ │ │ ├── hidpi │ │ │ │ └── logo_ckeditor.png │ │ │ │ └── logo_ckeditor.png │ │ ├── clipboard │ │ │ └── dialogs │ │ │ │ └── paste.js │ │ ├── colordialog │ │ │ └── dialogs │ │ │ │ ├── colordialog.css │ │ │ │ └── colordialog.js │ │ ├── copyformatting │ │ │ ├── cursors │ │ │ │ ├── cursor-disabled.svg │ │ │ │ └── cursor.svg │ │ │ └── styles │ │ │ │ └── copyformatting.css │ │ ├── dialog │ │ │ └── dialogDefinition.js │ │ ├── div │ │ │ └── dialogs │ │ │ │ └── div.js │ │ ├── find │ │ │ └── dialogs │ │ │ │ └── find.js │ │ ├── flash │ │ │ ├── dialogs │ │ │ │ └── flash.js │ │ │ └── images │ │ │ │ └── placeholder.png │ │ ├── forms │ │ │ ├── dialogs │ │ │ │ ├── button.js │ │ │ │ ├── checkbox.js │ │ │ │ ├── form.js │ │ │ │ ├── hiddenfield.js │ │ │ │ ├── radio.js │ │ │ │ ├── select.js │ │ │ │ ├── textarea.js │ │ │ │ └── textfield.js │ │ │ └── images │ │ │ │ └── hiddenfield.gif │ │ ├── icons.png │ │ ├── icons_hidpi.png │ │ ├── iframe │ │ │ ├── dialogs │ │ │ │ └── iframe.js │ │ │ └── images │ │ │ │ └── placeholder.png │ │ ├── image │ │ │ ├── dialogs │ │ │ │ └── image.js │ │ │ └── images │ │ │ │ └── noimage.png │ │ ├── link │ │ │ ├── dialogs │ │ │ │ ├── anchor.js │ │ │ │ └── link.js │ │ │ └── images │ │ │ │ ├── anchor.png │ │ │ │ └── hidpi │ │ │ │ └── anchor.png │ │ ├── liststyle │ │ │ └── dialogs │ │ │ │ └── liststyle.js │ │ ├── magicline │ │ │ └── images │ │ │ │ ├── hidpi │ │ │ │ ├── icon-rtl.png │ │ │ │ └── icon.png │ │ │ │ ├── icon-rtl.png │ │ │ │ └── icon.png │ │ ├── pagebreak │ │ │ └── images │ │ │ │ └── pagebreak.gif │ │ ├── pastefromword │ │ │ └── filter │ │ │ │ └── default.js │ │ ├── preview │ │ │ └── preview.html │ │ ├── scayt │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── dialogs │ │ │ │ ├── options.js │ │ │ │ └── toolbar.css │ │ │ └── skins │ │ │ │ └── moono-lisa │ │ │ │ └── scayt.css │ │ ├── showblocks │ │ │ └── images │ │ │ │ ├── block_address.png │ │ │ │ ├── block_blockquote.png │ │ │ │ ├── block_div.png │ │ │ │ ├── block_h1.png │ │ │ │ ├── block_h2.png │ │ │ │ ├── block_h3.png │ │ │ │ ├── block_h4.png │ │ │ │ ├── block_h5.png │ │ │ │ ├── block_h6.png │ │ │ │ ├── block_p.png │ │ │ │ └── block_pre.png │ │ ├── smiley │ │ │ ├── dialogs │ │ │ │ └── smiley.js │ │ │ └── images │ │ │ │ ├── angel_smile.gif │ │ │ │ ├── angel_smile.png │ │ │ │ ├── angry_smile.gif │ │ │ │ ├── angry_smile.png │ │ │ │ ├── broken_heart.gif │ │ │ │ ├── broken_heart.png │ │ │ │ ├── confused_smile.gif │ │ │ │ ├── confused_smile.png │ │ │ │ ├── cry_smile.gif │ │ │ │ ├── cry_smile.png │ │ │ │ ├── devil_smile.gif │ │ │ │ ├── devil_smile.png │ │ │ │ ├── embaressed_smile.gif │ │ │ │ ├── embarrassed_smile.gif │ │ │ │ ├── embarrassed_smile.png │ │ │ │ ├── envelope.gif │ │ │ │ ├── envelope.png │ │ │ │ ├── heart.gif │ │ │ │ ├── heart.png │ │ │ │ ├── kiss.gif │ │ │ │ ├── kiss.png │ │ │ │ ├── lightbulb.gif │ │ │ │ ├── lightbulb.png │ │ │ │ ├── omg_smile.gif │ │ │ │ ├── omg_smile.png │ │ │ │ ├── regular_smile.gif │ │ │ │ ├── regular_smile.png │ │ │ │ ├── sad_smile.gif │ │ │ │ ├── sad_smile.png │ │ │ │ ├── shades_smile.gif │ │ │ │ ├── shades_smile.png │ │ │ │ ├── teeth_smile.gif │ │ │ │ ├── teeth_smile.png │ │ │ │ ├── thumbs_down.gif │ │ │ │ ├── thumbs_down.png │ │ │ │ ├── thumbs_up.gif │ │ │ │ ├── thumbs_up.png │ │ │ │ ├── tongue_smile.gif │ │ │ │ ├── tongue_smile.png │ │ │ │ ├── tounge_smile.gif │ │ │ │ ├── whatchutalkingabout_smile.gif │ │ │ │ ├── whatchutalkingabout_smile.png │ │ │ │ ├── wink_smile.gif │ │ │ │ └── wink_smile.png │ │ ├── specialchar │ │ │ └── dialogs │ │ │ │ ├── lang │ │ │ │ ├── _translationstatus.txt │ │ │ │ ├── af.js │ │ │ │ ├── ar.js │ │ │ │ ├── az.js │ │ │ │ ├── bg.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── cy.js │ │ │ │ ├── da.js │ │ │ │ ├── de-ch.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en-gb.js │ │ │ │ ├── en.js │ │ │ │ ├── eo.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr-ca.js │ │ │ │ ├── fr.js │ │ │ │ ├── gl.js │ │ │ │ ├── he.js │ │ │ │ ├── hr.js │ │ │ │ ├── hu.js │ │ │ │ ├── id.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── km.js │ │ │ │ ├── ko.js │ │ │ │ ├── ku.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── no.js │ │ │ │ ├── oc.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── pt.js │ │ │ │ ├── ru.js │ │ │ │ ├── si.js │ │ │ │ ├── sk.js │ │ │ │ ├── sl.js │ │ │ │ ├── sq.js │ │ │ │ ├── sv.js │ │ │ │ ├── th.js │ │ │ │ ├── tr.js │ │ │ │ ├── tt.js │ │ │ │ ├── ug.js │ │ │ │ ├── uk.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-cn.js │ │ │ │ └── zh.js │ │ │ │ └── specialchar.js │ │ ├── table │ │ │ └── dialogs │ │ │ │ └── table.js │ │ ├── tabletools │ │ │ └── dialogs │ │ │ │ └── tableCell.js │ │ ├── templates │ │ │ ├── dialogs │ │ │ │ ├── templates.css │ │ │ │ └── templates.js │ │ │ └── templates │ │ │ │ ├── default.js │ │ │ │ └── images │ │ │ │ ├── template1.gif │ │ │ │ ├── template2.gif │ │ │ │ └── template3.gif │ │ └── wsc │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── dialogs │ │ │ ├── ciframe.html │ │ │ ├── tmpFrameset.html │ │ │ ├── wsc.css │ │ │ ├── wsc.js │ │ │ └── wsc_ie.js │ │ │ └── skins │ │ │ └── moono-lisa │ │ │ └── wsc.css │ │ ├── skins │ │ └── moono-lisa │ │ │ ├── dialog.css │ │ │ ├── dialog_ie.css │ │ │ ├── dialog_ie8.css │ │ │ ├── dialog_iequirks.css │ │ │ ├── editor.css │ │ │ ├── editor_gecko.css │ │ │ ├── editor_ie.css │ │ │ ├── editor_ie8.css │ │ │ ├── editor_iequirks.css │ │ │ ├── icons.png │ │ │ ├── icons_hidpi.png │ │ │ ├── images │ │ │ ├── arrow.png │ │ │ ├── close.png │ │ │ ├── hidpi │ │ │ │ ├── close.png │ │ │ │ ├── lock-open.png │ │ │ │ ├── lock.png │ │ │ │ └── refresh.png │ │ │ ├── lock-open.png │ │ │ ├── lock.png │ │ │ ├── refresh.png │ │ │ └── spinner.gif │ │ │ └── readme.md │ │ └── styles.js ├── Hisar.Component.CoreManagement │ ├── Controllers │ │ └── HomeController.cs │ ├── CoreManagementMenuBuilder.cs │ ├── ExternalComponents │ │ └── _placeholder │ ├── Helpers │ │ ├── AssemblyInformationHelper.cs │ │ └── ComponentModelBuilderHelper.cs │ ├── Hisar.Component.CoreManagement.csproj │ ├── Models │ │ ├── AssemblyDescriptor.cs │ │ ├── ComponentControllerDescriptor.cs │ │ ├── ComponentMethodDescriptor.cs │ │ ├── ComponentMethodParameterDescriptor.cs │ │ └── ComponentViewDescriptor.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.Component.cs │ ├── Startup.ComponentDependencies.cs │ ├── Startup.cs │ ├── ViewComponents │ │ ├── ComponentListViewComponent.cs │ │ └── CoreManagementViewComponent.cs │ ├── Views │ │ ├── Home │ │ │ ├── ComponentList.cshtml │ │ │ └── Index.cshtml │ │ ├── Shared │ │ │ └── Components │ │ │ │ ├── ComponentList │ │ │ │ └── Default.cshtml │ │ │ │ └── CoreManagement │ │ │ │ ├── Default.cshtml │ │ │ │ └── PartialViews │ │ │ │ ├── Content.cshtml │ │ │ │ └── SideBar.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Production.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap-toggle.min.css │ │ ├── componentList.css │ │ ├── componentManagement.css │ │ └── highlight.min.css │ │ └── js │ │ ├── bootstrap-toggle.min.js │ │ ├── componentList.js │ │ ├── componentManagement.js │ │ ├── highlight.min.js │ │ ├── knockout-3.2.0.debug.js │ │ └── knockout-min.js ├── Hisar.Component.Guideline │ ├── AlbumViewModelComposer.cs │ ├── BsonDataInitializer.cs │ ├── BsonSampleData.cs │ ├── Controllers │ │ └── HomeController.cs │ ├── CustomCacheValueProvider.cs │ ├── CustomMenuBuilder.cs │ ├── GuidelineExceptionFilter.cs │ ├── GuidelineUserRegistration.cs │ ├── GuidelineUsernamePasswordValidator.cs │ ├── Hisar.Component.Guideline.csproj │ ├── Models │ │ ├── AlbumBson.cs │ │ ├── AlbumViewModel.cs │ │ ├── ArtistBson.cs │ │ ├── Customer.cs │ │ ├── GenreBson.cs │ │ ├── GenreViewModel.cs │ │ ├── GuidelineEntity.cs │ │ ├── GuidelineViewModel.cs │ │ ├── MappingProfile.cs │ │ ├── MaritalStatus.cs │ │ └── OrderBson.cs │ ├── Properties │ │ └── launchSettings.json │ ├── SampleService.cs │ ├── Startup.Component.cs │ ├── Startup.ComponentDependencies.cs │ ├── Startup.cs │ ├── ViewComponents │ │ ├── Sample2ViewComponent.cs │ │ ├── SampleViewComponent.cs │ │ ├── TestViewComponent.cs │ │ └── ViewComponentConventions.cs │ ├── Views │ │ ├── Home │ │ │ ├── Albums.cshtml │ │ │ ├── Index.cshtml │ │ │ └── Registration.cshtml │ │ ├── Shared │ │ │ ├── Components │ │ │ │ ├── MyTest │ │ │ │ │ └── Default.cshtml │ │ │ │ ├── Sample │ │ │ │ │ └── Default.cshtml │ │ │ │ └── Sample2 │ │ │ │ │ └── Default.cshtml │ │ │ └── Error.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.json │ └── wwwroot │ │ ├── _references.js │ │ ├── favicon.ico │ │ └── js │ │ ├── component.js │ │ └── component.min.js └── Hisar.Component.Template │ ├── Controllers │ └── HomeController.cs │ ├── CustomMenuBuilder.cs │ ├── Hisar.Component.Template.csproj │ ├── Models │ └── GuidelineViewModel.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.Component.cs │ ├── Startup.ComponentDependencies.cs │ ├── Startup.cs │ ├── ViewComponents │ └── SampleViewComponent.cs │ ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ └── Components │ │ │ └── Sample │ │ │ └── Default.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── appsettings.json │ └── wwwroot │ ├── _references.js │ ├── css │ └── guideline.css │ ├── favicon.ico │ ├── img │ └── banner1.svg │ └── js │ ├── component.js │ └── component.min.js └── shared └── Shared.Library ├── DomainBaseController.cs ├── FrameRegistrarViewComponent.cs ├── ServiceCollectionExtensions.cs ├── Shared.Library.csproj ├── SharedMenuItemsRenderer.cs ├── SharedScriptViewComponent.cs └── Views ├── Shared └── Components │ ├── FrameRegistrar │ └── Default.cshtml │ └── SharedScript │ └── Default.cshtml ├── _ViewImports.cshtml └── _ViewStart.cshtml /Component.Common.Props: -------------------------------------------------------------------------------- 1 | 2 | 3 | $(MsBuildProjectDirectory)\..\..\ 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NetCoreStack and Contributors 4 | 5 | All rights reserved. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. -------------------------------------------------------------------------------- /NuGet.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/GeneratePackageOnBuild.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/docs/GeneratePackageOnBuild.PNG -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/Filters/HisarServerExceptionFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Filters; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using NetCoreStack.Data.Interfaces; 4 | using NetCoreStack.Mvc.Types; 5 | 6 | namespace NetCoreStack.Hisar.Server 7 | { 8 | public class HisarServerExceptionFilter : IHisarExceptionFilter 9 | { 10 | private IMongoUnitOfWork GetUnitOfWork(ExceptionContext context) 11 | { 12 | return ServiceProviderServiceExtensions.GetService(context.HttpContext.RequestServices); 13 | } 14 | 15 | public void Invoke(ExceptionContext context, SystemLog systemLog) 16 | { 17 | var bsonUnitOfWork = GetUnitOfWork(context); 18 | bsonUnitOfWork.Repository().Insert(systemLog); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/HisarCollectionNameSelector.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Data; 2 | using NetCoreStack.Mvc.Types; 3 | using System; 4 | using System.Reflection; 5 | 6 | namespace NetCoreStack.Hisar.Server 7 | { 8 | public class HisarCollectionNameSelector : DefaultCollectionNameSelector 9 | { 10 | const string CollectionNameFormat = "{0}.{1}"; 11 | 12 | public override string GetCollectionName() 13 | { 14 | var entityTypeInfo = typeof(TEntity).GetTypeInfo(); 15 | var componentId = entityTypeInfo.Assembly.GetComponentId(); 16 | 17 | string name; 18 | if (entityTypeInfo.BaseType.Equals(typeof(object))) 19 | { 20 | name = GetCollectioNameFromInterface(); 21 | } 22 | else 23 | { 24 | name = GetCollectionNameFromType(typeof(TEntity)); 25 | } 26 | 27 | if (string.IsNullOrEmpty(name)) 28 | throw new ArgumentException("Collection name could not be found!"); 29 | 30 | if (entityTypeInfo == typeof(SystemLog).GetTypeInfo()) 31 | { 32 | return string.Format(CollectionNameFormat, "Hisar", name); 33 | } 34 | 35 | return string.Format(CollectionNameFormat, componentId, name); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/HisarControllerServerBase.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using NetCoreStack.Data.Interfaces; 3 | 4 | namespace NetCoreStack.Hisar.Server 5 | { 6 | public abstract class HisarControllerServerBase : HisarControllerBase 7 | { 8 | private IMongoUnitOfWork _unitOfWork; 9 | public IMongoUnitOfWork UnitOfWork 10 | { 11 | get 12 | { 13 | if (_unitOfWork == null) 14 | _unitOfWork = Resolver?.GetService(); 15 | 16 | return _unitOfWork; 17 | } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/HisarServerViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using NetCoreStack.Data.Interfaces; 3 | 4 | namespace NetCoreStack.Hisar.Server 5 | { 6 | public class HisarServerViewComponent : HisarViewComponent 7 | { 8 | private IMongoUnitOfWork _unitOfWork; 9 | public IMongoUnitOfWork UnitOfWork 10 | { 11 | get 12 | { 13 | if (_unitOfWork == null) 14 | _unitOfWork = Resolver?.GetService(); 15 | 16 | return _unitOfWork; 17 | } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/HisarViewComponentServerBase.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using NetCoreStack.Data.Interfaces; 3 | 4 | namespace NetCoreStack.Hisar.Server 5 | { 6 | public abstract class HisarViewComponentServerBase : HisarViewComponent 7 | { 8 | private IMongoUnitOfWork _unitOfWork; 9 | public IMongoUnitOfWork UnitOfWork 10 | { 11 | get 12 | { 13 | if (_unitOfWork == null) 14 | _unitOfWork = Resolver?.GetService(); 15 | 16 | return _unitOfWork; 17 | } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/NetCoreStack.Hisar.Server.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netstandard2.0 5 | http://cdn.netcorestack.com/img/netcorestack.png 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar.Server/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Configuration; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using NetCoreStack.Data; 4 | using NetCoreStack.Data.Context; 5 | 6 | namespace NetCoreStack.Hisar.Server 7 | { 8 | public static class ServiceCollectionExtensions 9 | { 10 | public static void AddHisarMongoDbContext(this IServiceCollection services, 11 | IConfiguration configuration) where TContext : MongoDbContext 12 | { 13 | services.AddSingleton(); 14 | services.AddNetCoreStackMongoDb(configuration); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Attributes/HisarCacheAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | [AttributeUsage(AttributeTargets.Class)] 6 | public class HisarCacheAttribute : Attribute 7 | { 8 | public string Key { get; set; } 9 | public string DisplayName { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Attributes/HisarCacheInValidatorAttribute.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.AspNetCore.Mvc.Filters; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using System; 5 | 6 | namespace NetCoreStack.Hisar 7 | { 8 | public class HisarCacheInValidatorAttribute : ActionFilterAttribute 9 | { 10 | public string[] Keys { get; set; } 11 | 12 | public HisarCacheInValidatorAttribute(params string[] keys) 13 | { 14 | Keys = keys ?? throw new ArgumentNullException($"Cache keys could not be null, parameter: {nameof(keys)}"); 15 | } 16 | 17 | public IMemoryCacheProvider GetCacheProvider(ActionContext context) 18 | { 19 | return context.HttpContext.RequestServices.GetService(); 20 | } 21 | 22 | public override void OnResultExecuted(ResultExecutedContext context) 23 | { 24 | if (context.Exception == null) 25 | { 26 | var cacheProvider = GetCacheProvider(context); 27 | cacheProvider.Remove(Keys); 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Attributes/HisarRouteAttribute.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Routing; 2 | using System; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] 7 | public class HisarRouteAttribute : RouteValueAttribute, IRouteTemplateProvider 8 | { 9 | public string Name { get; } 10 | 11 | public int? Order { get; } 12 | 13 | public string Template { get; } 14 | 15 | public HisarRouteAttribute(string componentName) 16 | : base("area", componentName) 17 | { 18 | if (string.IsNullOrEmpty(componentName)) 19 | { 20 | throw new ArgumentException("Component name must not be empty", nameof(componentName)); 21 | } 22 | 23 | Name = componentName; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Enums/WebPackSection.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public enum WebPackSection 4 | { 5 | Pre = 0, 6 | Post = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/ActivatorExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using System; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | internal static class ActivatorExtensions 7 | { 8 | internal static TImplementation CreateInstance(this ServiceDescriptor serviceDescriptor, params object[] args) 9 | { 10 | if (serviceDescriptor == null) 11 | { 12 | throw new ArgumentNullException(nameof(serviceDescriptor)); 13 | } 14 | 15 | var implementationType = serviceDescriptor.ImplementationType; 16 | 17 | if (implementationType == null) 18 | { 19 | throw new ArgumentNullException(nameof(implementationType)); 20 | } 21 | 22 | if (typeof(TImplementation).IsAssignableFrom(implementationType)) 23 | { 24 | return (TImplementation)Activator.CreateInstance(implementationType, args); 25 | } 26 | 27 | throw new InvalidCastException(nameof(implementationType)); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/AutoCompleteRequestExtensions.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public static class AutoCompleteRequestExtensions 8 | { 9 | public static bool HasSelectedIds(this AutoCompleteRequest request) 10 | { 11 | if (request == null) 12 | { 13 | return false; 14 | } 15 | 16 | if (request.SelectedIds == null) 17 | { 18 | return false; 19 | } 20 | 21 | if (request.SelectedIds.Any()) 22 | { 23 | return true; 24 | } 25 | 26 | return false; 27 | } 28 | 29 | public static IEnumerable GetSelectedIds(this AutoCompleteRequest request) 30 | { 31 | if (request.HasSelectedIds()) 32 | { 33 | return request.SelectedIds; 34 | } 35 | 36 | return new List(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/DictionaryExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public static class DictionaryExtensions 6 | { 7 | public static void Merge(this IDictionary instance, IDictionary from, bool replaceExisting) 8 | { 9 | foreach (KeyValuePair entry in from) 10 | { 11 | if (replaceExisting || !instance.ContainsKey(entry.Key)) 12 | { 13 | instance[entry.Key] = entry.Value; 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/HisarLoggingExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Logging; 2 | using System; 3 | using System.Threading.Tasks; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public static class HisarLoggingExtensions 8 | { 9 | public static async Task LogDbAsync(this ILogger logger, EventId eventId, Exception ex, string message, params object[] args) 10 | { 11 | await Task.CompletedTask; 12 | logger.LogCritical(eventId, ex, message, args); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/HisarTypeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public static class HisarTypeExtensions 8 | { 9 | public static HisarCacheAttribute GetCacheAttribute(this Type type) 10 | { 11 | var attr = type.GetTypeInfo().GetCustomAttribute(); 12 | return attr; 13 | } 14 | 15 | public static IEnumerable GetTypesAttributes(this Assembly assembly) where TAttribute : Attribute 16 | { 17 | List attrs = new List(); 18 | foreach (Type type in assembly.GetTypes()) 19 | { 20 | attrs.AddRange(type.GetTypeInfo().GetCustomAttributes()); 21 | } 22 | return attrs; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/ModelKeyGeneratorExtensions.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public static class ModelKeyGeneratorExtensions 6 | { 7 | public static CacheItem CreateCacheItem(this IModelKeyGenerator keyGenerator, object id) 8 | { 9 | return new CacheItem(keyGenerator.Create(id)); 10 | } 11 | 12 | public static CacheItem CreateCacheItem(this IModelKeyGenerator keyGenerator, string id) where TModel : IModelKey 13 | { 14 | return new CacheItem(keyGenerator.CreateKey(id)); 15 | } 16 | 17 | public static CacheItem CreateCacheItem(this IModelKeyGenerator keyGenerator, long id) where TModel : IModelKey 18 | { 19 | return new CacheItem(keyGenerator.CreateKey(id)); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Extensions/RouteExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Routing; 2 | using System; 3 | using System.Linq; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public static class RouteExtensions 8 | { 9 | public static bool IsDefaultRoute(this Route route) 10 | { 11 | if (route == null) 12 | { 13 | throw new ArgumentNullException(nameof(route)); 14 | } 15 | 16 | if (route.Defaults.Count == 2) 17 | { 18 | var query = route.Defaults.Where(x => x.Key.Equals("controller", StringComparison.OrdinalIgnoreCase) || 19 | x.Key.Equals("action", StringComparison.OrdinalIgnoreCase)).Count(); 20 | 21 | return query == 2 && route.Name.Equals("default", StringComparison.OrdinalIgnoreCase); 22 | } 23 | 24 | return false; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Helpers/LogHelper.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Hosting; 2 | using Microsoft.AspNetCore.Mvc.Filters; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using Microsoft.Extensions.Logging; 5 | using System; 6 | using System.IO; 7 | 8 | namespace NetCoreStack.Hisar 9 | { 10 | public static class LogHelper 11 | { 12 | private static IHostingEnvironment GetHostingEnvironment(ExceptionContext context) 13 | { 14 | return ServiceProviderServiceExtensions.GetService(context.HttpContext.RequestServices); 15 | } 16 | 17 | private static ILoggerFactory GetLoggerFactory(ExceptionContext context) 18 | { 19 | return ServiceProviderServiceExtensions.GetService(context.HttpContext.RequestServices); 20 | } 21 | 22 | public static void FallbackLog(string message) 23 | { 24 | var directory = Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "fallback_logs")); 25 | var logFile = $"log-{DateTime.Now.Date.ToString("ddMMyyyy")}-{Guid.NewGuid()}.txt"; 26 | var fullPath = Path.Combine(directory.FullName, logFile); 27 | File.AppendAllText(fullPath, message); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Helpers/PathUtility.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Linq; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | internal static class PathUtility 7 | { 8 | public static void CopyToFiles(string source, string destination) 9 | { 10 | Directory.CreateDirectory(destination); 11 | 12 | foreach (string newPath in Directory.GetFiles(source, "*.*", SearchOption.TopDirectoryOnly) 13 | .Where(file => file.ToLower().EndsWith("dll") || file.ToLower().EndsWith("nupkg"))) 14 | { 15 | File.Copy(newPath, newPath.Replace(source, destination), true); 16 | } 17 | } 18 | 19 | public static string TryGetComponentsJson(string externalComponentsDirectory) 20 | { 21 | var componentsJsonfile = Path.Combine(externalComponentsDirectory, "components.json"); 22 | var fullPath = Path.GetFullPath(componentsJsonfile); 23 | if (File.Exists(fullPath)) 24 | { 25 | return fullPath; 26 | } 27 | 28 | return string.Empty; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/AgentCommandInvocator.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.WebSockets; 2 | using System.Threading.Tasks; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | class AgentCommandInvocator : IServerWebSocketCommandInvocator 7 | { 8 | public Task InvokeAsync(WebSocketMessageContext context) 9 | { 10 | return Task.CompletedTask; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultCacheItemResolver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public class DefaultCacheItemResolver : ICacheItemResolver 7 | { 8 | public IList CacheItems { get; } 9 | 10 | public DefaultCacheItemResolver(IList cacheItems) 11 | { 12 | CacheItems = cacheItems; 13 | } 14 | 15 | public HisarCacheAttribute Resolve(string cacheName) 16 | { 17 | return CacheItems.FirstOrDefault(x => x.Key == cacheName); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultComponentTypeResolver.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public class DefaultComponentTypeResolver : IComponentTypeResolver 6 | { 7 | public virtual ComponentType Resolve(string componentId) 8 | { 9 | var componentType = ComponentType.External; 10 | 11 | if (componentId.Equals(EngineConstants.HostingComponentName, StringComparison.OrdinalIgnoreCase)) 12 | { 13 | componentType = ComponentType.Hosting; 14 | } 15 | else if (componentId.StartsWith("Core")) 16 | { 17 | componentType = ComponentType.Core; 18 | } 19 | 20 | return componentType; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultHisarExceptionFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Filters; 2 | using NetCoreStack.Mvc.Types; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public class DefaultHisarExceptionFilter : IHisarExceptionFilter 7 | { 8 | public DefaultHisarExceptionFilter() 9 | { 10 | 11 | } 12 | 13 | public void Invoke(ExceptionContext context, SystemLog systemLog) 14 | { 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultIAssemblyProviderCompilationCallback.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.Loader; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public class DefaultIAssemblyProviderCompilationCallback : IAssemblyProviderResolveCallback 8 | { 9 | public bool TryLoad(AssemblyLoadContext loadContext, Assembly entryAssembly, string fullPath, Exception ex) 10 | { 11 | return false; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultMenuItemsBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System.Collections.Generic; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public class DefaultMenuItemsBuilder : IMenuItemsBuilder 7 | { 8 | public RunningComponentHelper Component { get; } 9 | 10 | public DefaultMenuItemsBuilder() 11 | { 12 | Component = new RunningComponentHelperOfT(new DefaultComponentTypeResolver()); 13 | } 14 | 15 | public string ResolvePath(IUrlHelper urlHelper, string path) 16 | { 17 | return ComponentHelperBase.ResolveContentPath(urlHelper, Component.ComponentId, path); 18 | } 19 | 20 | public virtual IEnumerable Build(IUrlHelper urlHelper) 21 | { 22 | return new List(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultUserRegistration.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class DefaultUserRegistration : IUserRegistration 4 | { 5 | public void Register(string username, string password, string email) 6 | { 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/DefaultUsernamePasswordValidator.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class DefaultUsernamePasswordValidator : IUsernamePasswordValidator 4 | { 5 | public bool EnsureHasAnyUsers() 6 | { 7 | return true; 8 | } 9 | 10 | public bool Validate(string username, string password) 11 | { 12 | return true; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/EngineConstants.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public static class EngineConstants 4 | { 5 | public const string ViewEnginePathConvention = "HisarViewEngine"; 6 | 7 | // Reserved Component Name - Base Hosting Engine 8 | public const string HostingComponentName = "Hosting"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/HisarMarkerService.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | internal class HisarMarkerService 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/InMemoryFileInfo.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.FileProviders; 2 | using System; 3 | using System.IO; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public class InMemoryFileInfo : IFileInfo 8 | { 9 | private long? _length; 10 | 11 | public bool Exists => true; 12 | 13 | public long Length 14 | { 15 | get 16 | { 17 | if (!_length.HasValue) 18 | { 19 | _length = Stream.Length; 20 | } 21 | return _length.Value; 22 | } 23 | } 24 | 25 | public string PhysicalPath { get; } 26 | 27 | public string Name { get; } 28 | 29 | public DateTimeOffset LastModified { get; } 30 | 31 | public bool IsDirectory => false; 32 | 33 | public MemoryStream Stream { get; } 34 | 35 | public InMemoryFileInfo(string name, string physicalPath, byte[] bytes, DateTimeOffset lastModified) 36 | { 37 | Name = name; 38 | PhysicalPath = physicalPath; 39 | Stream = new MemoryStream(bytes); 40 | LastModified = lastModified; 41 | } 42 | 43 | public Stream CreateReadStream() 44 | { 45 | return Stream; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/PropertyDefinitionFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Mvc; 3 | using System.Reflection; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | internal class PropertyDefinitionFilter : IPropertyDefinitionFilter 8 | { 9 | private readonly HisarAssemblyComponentsLoader _componentsLoader; 10 | 11 | public PropertyDefinitionFilter(HisarAssemblyComponentsLoader componentsLoader) 12 | { 13 | _componentsLoader = componentsLoader; 14 | } 15 | 16 | public void Invoke(ActionContext context, PropertyInfo propertyInfo, PropertyDefinition property, bool forViewModel) 17 | { 18 | if (!string.IsNullOrEmpty(property.DataSourceUrl)) 19 | { 20 | var componentId = propertyInfo.DeclaringType.GetTypeInfo().Assembly.GetComponentId(); 21 | if (_componentsLoader.ComponentAssemblyLookup.TryGetValue(componentId, out Assembly assembly)) 22 | { 23 | var path = property.DataSourceUrl; 24 | if (path.StartsWith("/")) 25 | { 26 | path = $"/{componentId}{path}"; 27 | } 28 | else 29 | { 30 | path = $"/{componentId}/{path}"; 31 | } 32 | 33 | property.DataSourceUrl = path; 34 | } 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Infrastructure/TypesPart.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.ApplicationParts; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Reflection; 6 | 7 | namespace NetCoreStack.Hisar 8 | { 9 | public class TypesPart : ApplicationPart, IApplicationPartTypeProvider 10 | { 11 | public TypesPart(params Type[] types) 12 | { 13 | Types = types.Select(t => t.GetTypeInfo()); 14 | } 15 | 16 | public override string Name => string.Join(", ", Types.Select(t => t.FullName)); 17 | 18 | public IEnumerable Types { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IAssemblyFileProviderFactory.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.FileProviders; 2 | using System.Reflection; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public interface IAssemblyFileProviderFactory 7 | { 8 | IFileProvider CreateFileProvider(Assembly assembly); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IAssemblyProviderResolveCallback.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.Loader; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public interface IAssemblyProviderResolveCallback 8 | { 9 | bool TryLoad(AssemblyLoadContext loadContext, Assembly entryAssembly, string fullPath, Exception ex); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/ICacheItemResolver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public interface ICacheItemResolver 6 | { 7 | IList CacheItems { get; } 8 | 9 | HisarCacheAttribute Resolve(string cacheName); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/ICacheValueProvider.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public interface ICacheValueProvider 6 | { 7 | TModel TryGetValue(ActionContext context, object id, CacheItem key); 8 | } 9 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IComponentEventSubscriber.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public interface IComponentEventSubscriber 6 | { 7 | bool TryGetEventHandler(out Action handler); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IComponentItemRegistrar.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public interface IComponentItemRegistrar 4 | { 5 | void Register(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IComponentTypeResolver.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public interface IComponentTypeResolver 4 | { 5 | ComponentType Resolve(string componentId); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IDefaultProxyFileLocator.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.FileProviders; 2 | using Microsoft.Extensions.Primitives; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public interface IDefaultProxyFileLocator 7 | { 8 | IFileInfo Layout { get; set; } 9 | IFileInfo GetFileInfo(string fullname); 10 | IChangeToken CreateFileChangeToken(string fullname); 11 | void RaiseChange(string fullname); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IEntityFilter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public interface IEntityFilter 7 | { 8 | IList Invoke(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IHisarExceptionFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Filters; 2 | using NetCoreStack.Mvc.Types; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public interface IHisarExceptionFilter 7 | { 8 | void Invoke(ExceptionContext context, SystemLog systemLog); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IMemoryCacheProvider.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Contracts; 3 | using System; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public interface IMemoryCacheProvider : IDisposable 8 | { 9 | IModelKeyGenerator ModelKeyGenerator { get; } 10 | 11 | bool TryGetValue(CacheItem key, out IModelKey value); 12 | 13 | bool TryGetValue(CacheItem key, out IModelKey value); 14 | 15 | TModel Set(CacheItem key, TModel value); 16 | 17 | TModel GetOrCreate(ActionContext context, long id) where TModel : IModelKey; 18 | 19 | TModel GetOrCreate(ActionContext context, string id) where TModel : IModelKey; 20 | 21 | void Remove(params string[] keys); 22 | 23 | void Remove(string id) where TModel : IModelKey; 24 | 25 | void Remove(long id) where TModel : IModelKey; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IMenuItem.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public interface IMenuItem 4 | { 5 | string Text { get; set; } 6 | string Path { get; set; } 7 | string Icon { get; set; } 8 | string Parent { get; set; } 9 | int Order { get; set; } 10 | bool ShowInMenu { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IMenuItemsBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System.Collections.Generic; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public interface IMenuItemsBuilder 7 | { 8 | RunningComponentHelper Component { get; } 9 | string ResolvePath(IUrlHelper urlHelper, string path); 10 | IEnumerable Build(IUrlHelper urlHelper); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IMenuItemsRenderer.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Html; 2 | using Microsoft.AspNetCore.Mvc; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace NetCoreStack.Hisar 7 | { 8 | public interface IMenuItemsRenderer 9 | { 10 | IDictionary> PopulateMenuItems(IUrlHelper urlHelper); 11 | 12 | IHtmlContent Render(IUrlHelper urlHelper, Action>> filter = null); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IModelKeyGenerator.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public interface IModelKeyGenerator 6 | { 7 | string Create(object id); 8 | 9 | string CreateKey(string id) where TModel : IModelKey; 10 | 11 | string CreateKey(long id) where TModel : IModelKey; 12 | 13 | string CreateKey(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IUserRegistration.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public interface IUserRegistration 4 | { 5 | void Register(string username, string password, string email); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IUsernamePasswordValidator.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public interface IUsernamePasswordValidator 4 | { 5 | bool EnsureHasAnyUsers(); 6 | bool Validate(string username, string password); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Interface/IWebCliProxyEventHandler.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public interface IWebCliProxyEventHandler 6 | { 7 | Task FileChanged(FileChangedContext context); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Providers/CacheValueProviderBase.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public abstract class CacheValueProviderBase : ICacheValueProvider 6 | { 7 | public abstract TModel TryGetValue(ActionContext context, object id, CacheItem key); 8 | } 9 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Providers/DefaultAssemblyFileProviderFactory.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.FileProviders; 2 | using System.Reflection; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public class DefaultAssemblyFileProviderFactory : IAssemblyFileProviderFactory 7 | { 8 | public IFileProvider CreateFileProvider(Assembly assembly) 9 | { 10 | var assemblyName = assembly.GetName().Name; 11 | return new DirectoryFriendlyEmbeddedFileProvider(assembly, assemblyName + ".wwwroot"); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Providers/DefaultDataProtectorProvider.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.DataProtection; 2 | using NetCoreStack.Mvc; 3 | using NetCoreStack.Mvc.Extensions; 4 | 5 | namespace NetCoreStack.Hisar 6 | { 7 | public class DefaultDataProtectorProvider : IDataProtectorProvider 8 | { 9 | private readonly IDataProtector _protector; 10 | public DefaultDataProtectorProvider(IDataProtectionProvider provider) 11 | { 12 | _protector = provider.CreateProtector("hisar"); 13 | } 14 | 15 | public string Protect(string input) 16 | { 17 | string protectedPayload = _protector.Protect(input); 18 | return protectedPayload; 19 | } 20 | 21 | public string Unprotect(string protectedPayload) 22 | { 23 | string unprotectedPayload = _protector.Unprotect(protectedPayload); 24 | return unprotectedPayload; 25 | } 26 | 27 | public string ToBase64(string input) 28 | { 29 | return input.ToBase64(); 30 | } 31 | 32 | public string FromBase64(string payload) 33 | { 34 | return payload.FromBase64(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/BasicExceptionContext.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class BasicExceptionContext 4 | { 5 | public string LogGuid { get; set; } 6 | public string ExceptionType { get; set; } 7 | public string Message { get; set; } 8 | public string ExceptionDetail { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/CacheItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public sealed class CacheItem : IEquatable 6 | { 7 | public DateTimeOffset? AbsoluteExpiration { get; set; } 8 | public string Key { get; } 9 | 10 | public CacheItem(string key) 11 | { 12 | Key = key; 13 | } 14 | 15 | public bool Equals(CacheItem other) 16 | { 17 | return other != null && other.Key.Equals(Key, StringComparison.OrdinalIgnoreCase); 18 | } 19 | 20 | public override bool Equals(object obj) 21 | { 22 | return Equals(obj as CacheItem); 23 | } 24 | 25 | public override int GetHashCode() 26 | { 27 | return Key.GetHashCode(); 28 | } 29 | 30 | public static bool operator ==(CacheItem left, CacheItem right) 31 | { 32 | if ((object)left == null) 33 | { 34 | return ((object)right == null); 35 | } 36 | else if ((object)right == null) 37 | { 38 | return ((object)left == null); 39 | } 40 | 41 | return left.Equals(right); 42 | } 43 | 44 | public static bool operator !=(CacheItem left, CacheItem right) 45 | { 46 | return !(left == right); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/CacheValueProviderRegistrar.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using NetCoreStack.Contracts; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | public class CacheValueProviderRegistrar 7 | { 8 | private readonly IServiceCollection _services; 9 | public CacheValueProviderRegistrar(IServiceCollection services) 10 | { 11 | _services = services; 12 | } 13 | 14 | public void DefaultMap() where TValueProvider : CacheValueProviderBase where TModel : IModelKey 15 | { 16 | _services.AddScoped, TValueProvider>(); 17 | } 18 | 19 | public void ModelMap() where TValueProvider : CacheValueProviderBase where TModel : IModelKey 20 | { 21 | _services.AddScoped, TValueProvider>(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/CliUsageMarkerService.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | internal class CliUsageMarkerService 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/ComponentJsonDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class ComponentJsonDefinition 4 | { 5 | public string TargetFramework { get; set; } 6 | public string Version { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/ComponentPartDefinition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | namespace NetCoreStack.Hisar 5 | { 6 | internal class ComponentPartDefinition 7 | { 8 | public string ComponentId { get; set; } 9 | public string Name { get; set; } 10 | public Assembly Assembly { get; set; } 11 | } 12 | 13 | public sealed class ComponentPair : IEquatable 14 | { 15 | public string Title { get; } 16 | public string ComponentId { get; } 17 | public ComponentType ComponentType { get; } 18 | 19 | public ComponentPair(string componentId, string title, ComponentType componentType) 20 | { 21 | ComponentId = componentId; 22 | Title = title; 23 | ComponentType = componentType; 24 | } 25 | 26 | public override bool Equals(object obj) 27 | { 28 | return Equals(obj as ComponentPair); 29 | } 30 | 31 | public override int GetHashCode() 32 | { 33 | return ComponentId.GetHashCode(); 34 | } 35 | 36 | public bool Equals(ComponentPair other) 37 | { 38 | return other != null && other.ComponentId.Equals(ComponentId); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/ComponentsJson.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public class ComponentsJson 6 | { 7 | public Dictionary Components { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/DefaultMenuItem.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class DefaultMenuItem : IMenuItem 4 | { 5 | public string Text { get; set; } 6 | public string Path { get; set; } 7 | public string Icon { get; set; } 8 | public string Parent { get; set; } 9 | public int Order { get; set; } 10 | public bool ShowInMenu { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/DefaultWebCliProxyEventHandler.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.WebSockets; 2 | using System; 3 | using System.Threading.Tasks; 4 | using Microsoft.Extensions.DependencyInjection; 5 | using Microsoft.AspNetCore.Routing; 6 | 7 | namespace NetCoreStack.Hisar 8 | { 9 | public class DefaultWebCliProxyEventHandler : IWebCliProxyEventHandler 10 | { 11 | private readonly IServiceProvider _serviceProvider; 12 | 13 | public DefaultWebCliProxyEventHandler(IServiceProvider serviceProvider) 14 | { 15 | _serviceProvider = serviceProvider; 16 | } 17 | 18 | public async Task FileChanged(FileChangedContext context) 19 | { 20 | var connectionManager = _serviceProvider.GetService(); 21 | if (connectionManager != null) 22 | { 23 | await connectionManager.BroadcastAsync(new WebSocketMessageContext 24 | { 25 | Header = new RouteValueDictionary(new { fileChanged = true }), 26 | Command = WebSocketCommands.DataSend, 27 | Value = context 28 | }); 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/EntityIdentityActiveBson.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Data.Contracts; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public class EntityIdentityActiveBson : EntityIdentityBson 6 | { 7 | public bool Active { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/EnumerableDirectoryContents.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.FileProviders; 2 | using System; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | 6 | namespace NetCoreStack.Hisar 7 | { 8 | public class EnumerableDirectoryContents : IDirectoryContents 9 | { 10 | private readonly IEnumerable _entries; 11 | 12 | public EnumerableDirectoryContents(IEnumerable entries) 13 | { 14 | _entries = entries ?? throw new ArgumentNullException(nameof(entries)); 15 | } 16 | 17 | public bool Exists 18 | { 19 | get { return true; } 20 | } 21 | 22 | public IEnumerator GetEnumerator() 23 | { 24 | return _entries.GetEnumerator(); 25 | } 26 | 27 | IEnumerator IEnumerable.GetEnumerator() 28 | { 29 | return _entries.GetEnumerator(); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/FileChangedContext.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar 2 | { 3 | public class FileChangedContext 4 | { 5 | public string Filename { get; set; } 6 | public string FileFullName { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NetCoreStack.Hisar/Types/WebCliServiceInformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreStack.Hisar 4 | { 5 | public sealed class WebCliProxyInformation 6 | { 7 | private static readonly Lazy lazy = 8 | new Lazy(() => new WebCliProxyInformation()); 9 | 10 | public static WebCliProxyInformation Instance { get { return lazy.Value; } } 11 | 12 | public string Address { get; set; } = "localhost:1444"; 13 | 14 | public bool EnableLiveReload { get; set; } 15 | 16 | private WebCliProxyInformation() 17 | { 18 | } 19 | 20 | public Uri CreateBaseUri() 21 | { 22 | string suffix = string.Empty; 23 | if (!Address.EndsWith("/")) 24 | { 25 | suffix = "/"; 26 | } 27 | 28 | if (Address.StartsWith("http")) 29 | { 30 | return new Uri(Address); 31 | } 32 | 33 | return new Uri($"http://{Address}{suffix}"); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Admin.Hosting.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | false 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | PreserveNewest 20 | 21 | 22 | PreserveNewest 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Shared.Library; 3 | 4 | namespace Admin.Hosting.Controllers 5 | { 6 | public class HomeController : DomainBaseController 7 | { 8 | public IActionResult Index() 9 | { 10 | CreateSuccessNotificationResult("Welcome..."); 11 | return View(); 12 | } 13 | 14 | public IActionResult About() 15 | { 16 | return View(); 17 | } 18 | 19 | public IActionResult Contact() 20 | { 21 | return View(); 22 | } 23 | 24 | public IActionResult Error() 25 | { 26 | return View(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/Admin.Hosting/CustomAssemblyResolveCallback.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.Loader; 4 | 5 | namespace Admin.Hosting 6 | { 7 | public class CustomAssemblyResolveCallback : NetCoreStack.Hisar.IAssemblyProviderResolveCallback 8 | { 9 | public bool TryLoad(AssemblyLoadContext loadContext, Assembly entryAssembly, string fullPath, Exception ex) 10 | { 11 | return false; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/Admin.Hosting/ExternalComponents/components.json: -------------------------------------------------------------------------------- 1 | //{ 2 | // "components": { 3 | // "Hisar.Component.CoreManagement": { 4 | // "targetFramework": "netcoreapp2.1", 5 | // "version": "2.1.1" 6 | // } 7 | // } 8 | //} -------------------------------------------------------------------------------- /test/Admin.Hosting/HostingMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Collections.Generic; 4 | 5 | namespace Admin.Hosting 6 | { 7 | public class HostingMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | var items = new List 12 | { 13 | new DefaultMenuItem 14 | { 15 | Icon = "home", 16 | Order = 1, 17 | Path = ResolvePath(urlHelper, "/"), 18 | ShowInMenu = true, 19 | Text = "Home Page" 20 | } 21 | }; 22 | 23 | return items; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | using NetCoreStack.Hisar; 4 | 5 | namespace Admin.Hosting 6 | { 7 | public class Program 8 | { 9 | public static void Main(string[] args) 10 | { 11 | CreateWebHostBuilder(args).Build().Run(); 12 | } 13 | 14 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 15 | WebHost.CreateDefaultBuilder(args) 16 | .UseStartup>(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:56870/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Admin.Hosting": { 19 | "commandName": "Project" 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /test/Admin.Hosting/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | 
2 | 3 | @await Component.InvokeAsync("CoreManagement.ComponentList") 4 |
-------------------------------------------------------------------------------- /test/Admin.Hosting/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Admin.Hosting 2 | @using NetCoreStack.Hisar 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | 6 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 7 | -------------------------------------------------------------------------------- /test/Admin.Hosting/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/Admin.Hosting/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/Admin.Hosting/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "UploadRootPath": "hisar-upload", 4 | "Name": "Hisar Admin Hosting" 5 | }, 6 | "DbSettings": { 7 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 8 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 9 | }, 10 | "Logging": { 11 | "IncludeScopes": false, 12 | "LogLevel": { 13 | "Default": "Warning" 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/contents/do-your-best.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/contents/do-your-best.jpg -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/favicon.ico -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/back_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/back_disabled.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/back_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/back_enabled.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/back_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/back_enabled_hover.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/forward_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/forward_disabled.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/forward_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/forward_enabled.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/forward_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/forward_enabled_hover.png -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/loading.gif -------------------------------------------------------------------------------- /test/Admin.Hosting/wwwroot/img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Hosting/wwwroot/img/user.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Mvc; 7 | using Shared.Library; 8 | 9 | namespace Admin.Tabler.Hosting.Controllers 10 | { 11 | public class HomeController : DomainBaseController 12 | { 13 | public IActionResult Index() 14 | { 15 | return View(); 16 | } 17 | 18 | public IActionResult About() 19 | { 20 | ViewData["Message"] = "Your application description page."; 21 | 22 | return View(); 23 | } 24 | 25 | public IActionResult Contact() 26 | { 27 | ViewData["Message"] = "Your contact page."; 28 | 29 | return View(); 30 | } 31 | 32 | public IActionResult Privacy() 33 | { 34 | return View(); 35 | } 36 | 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/ExternalComponents/components.json: -------------------------------------------------------------------------------- 1 | //{ 2 | // "components": { 3 | // "Hisar.Component.CoreManagement": { 4 | // "targetFramework": "netcoreapp2.0", 5 | // "version": "2.0.0" 6 | // }, 7 | // "Hisar.Component.FileManager": { 8 | // "targetFramework": "netcoreapp2.0", 9 | // "version": "2.0.0" 10 | // } 11 | // } 12 | //} -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | using NetCoreStack.Hisar; 4 | 5 | namespace Admin.Tabler.Hosting 6 | { 7 | public class Program 8 | { 9 | public static void Main(string[] args) 10 | { 11 | CreateWebHostBuilder(args).Build().Run(); 12 | } 13 | 14 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 15 | WebHost.CreateDefaultBuilder(args) 16 | .UseStartup>(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:42254", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Admin.Tabler.Hosting": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "applicationUrl": "http://localhost:5000", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Contact"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/MenuItemsPv.cshtml: -------------------------------------------------------------------------------- 1 | @model IDictionary> 2 | 3 | 4 | @foreach (KeyValuePair> entry in Model) 5 | { 6 | 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/Shared/_Localization.cshtml: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Admin.Tabler.Hosting 2 | @using NetCoreStack.Hisar 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | 6 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 7 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "UploadRootPath": "hisar-upload", 4 | "Name": "Hisar Admin Hosting" 5 | }, 6 | "DbSettings": { 7 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 8 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 9 | }, 10 | "Logging": { 11 | "IncludeScopes": false, 12 | "LogLevel": { 13 | "Default": "Warning" 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "UploadRootPath": "hisar-upload", 4 | "Name": "Hisar Admin Hosting" 5 | }, 6 | "DbSettings": { 7 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 8 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 9 | }, 10 | "Logging": { 11 | "IncludeScopes": false, 12 | "LogLevel": { 13 | "Default": "Warning" 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/favicon.ico -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/favicons/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.eot -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.ttf -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/fonts/feather/feather-webfont.woff -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/images/blank-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/images/blank-avatar.png -------------------------------------------------------------------------------- /test/Admin.Tabler.Hosting/wwwroot/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Admin.Tabler.Hosting/wwwroot/images/logo.png -------------------------------------------------------------------------------- /test/Hisar.CommonLibrary/ExternalLibrary.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.CommonLibrary 2 | { 3 | public class ExternalLibrary 4 | { 5 | public string Name { get; } 6 | public ExternalLibrary() 7 | { 8 | Name = "NetCoreStack"; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/Hisar.CommonLibrary/Hisar.CommonLibrary.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /test/Landing.Hosting/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar.Server; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace Landing.Hosting.Controllers 5 | { 6 | public class HomeController : HisarControllerServerBase 7 | { 8 | public IActionResult Index() 9 | { 10 | return View(); 11 | } 12 | 13 | public IActionResult Error() 14 | { 15 | return View(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /test/Landing.Hosting/Controllers/TestController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System.IO; 3 | 4 | namespace Landing.Hosting.Controllers 5 | { 6 | public class TestController : Controller 7 | { 8 | public IActionResult ThrowException() 9 | { 10 | throw new FileNotFoundException("throwing an error"); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /test/Landing.Hosting/Core/HostingFactory.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar; 2 | using System.Collections.Generic; 3 | 4 | namespace Landing.Hosting 5 | { 6 | public static class HostingFactory 7 | { 8 | public static List CacheItems { get; set; } 9 | 10 | static HostingFactory() 11 | { 12 | CacheItems = new List(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /test/Landing.Hosting/ExternalComponents/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "components": { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /test/Landing.Hosting/Landing.Hosting.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | false 6 | 7 | 8 | 9 | 10 | PreserveNewest 11 | 12 | 13 | PreserveNewest 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /test/Landing.Hosting/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:2938/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "environmentVariables": { 14 | "ASPNETCORE_ENVIRONMENT": "Development" 15 | } 16 | }, 17 | "Hosting": { 18 | "commandName": "Project", 19 | "launchUrl": "http://localhost:5000", 20 | "environmentVariables": { 21 | "ASPNETCORE_ENVIRONMENT": "Development" 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /test/Landing.Hosting/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 |  2 |
3 |
4 | @await Component.InvokeAsync("Carousel.Carousel") 5 |
6 |
7 |
8 | @await Component.InvokeAsync("Guideline.Sample") 9 |
10 |
11 |
12 | @await Component.InvokeAsync("Carousel.Sample") 13 |
14 |
-------------------------------------------------------------------------------- /test/Landing.Hosting/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.Extensions.Options 2 | @using NetCoreStack.Hisar 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Contracts 5 | @using NetCoreStack.Mvc.Extensions 6 | 7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 8 | @addTagHelper "*, NetCoreStack.Hisar" 9 | -------------------------------------------------------------------------------- /test/Landing.Hosting/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/Landing.Hosting/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Hisar Development Environment" 4 | }, 5 | "DbSettings": { 6 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 7 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 8 | }, 9 | "Logging": { 10 | "IncludeScopes": false, 11 | "LogLevel": { 12 | "Default": "Debug", 13 | "System": "Information", 14 | "Microsoft": "Information" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Landing.Hosting/wwwroot/favicon.ico -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/Landing.Hosting/wwwroot/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /test/Landing.Hosting/wwwroot/js/main.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | console.log("main js loaded"); 3 | 4 | var component = $("#componentName"); 5 | console.log(component.text("Change it from main app!")); 6 | }); -------------------------------------------------------------------------------- /test/NetCoreStack.Hisar.Tests/CollectionNameTests.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using NetCoreStack.Data.Contracts; 3 | using NetCoreStack.Hisar.Server; 4 | using System; 5 | using Xunit; 6 | 7 | namespace NetCoreStack.Hisar.Tests 8 | { 9 | [CollectionName("WithAttribute")] 10 | public class BsonCollectionWithAttribute 11 | { 12 | } 13 | 14 | public class GuidelineEntity : EntityIdentityBson 15 | { 16 | public string Name { get; set; } 17 | public int Age { get; set; } 18 | public DateTime BirthDate { get; set; } 19 | } 20 | 21 | public class GuidelineEntityActive : EntityIdentityActiveBson 22 | { 23 | public string Name { get; set; } 24 | public int Age { get; set; } 25 | public DateTime BirthDate { get; set; } 26 | } 27 | 28 | public class CollectionNameTests 29 | { 30 | [Fact] 31 | public void Resolve_CollectionNames() 32 | { 33 | HisarCollectionNameSelector selector = new HisarCollectionNameSelector(); 34 | var collectionName = selector.GetCollectionName(); 35 | Assert.True(collectionName == "Tests." + nameof(GuidelineEntityActive)); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /test/NetCoreStack.Hisar.Tests/Core/TestComponentTypeResolver.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreStack.Hisar.Tests.Core 2 | { 3 | public class TestComponentTypeResolver : IComponentTypeResolver 4 | { 5 | public ComponentType Resolve(string componentId) 6 | { 7 | return ComponentType.Hosting; 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /test/NetCoreStack.Hisar.Tests/ExternalComponents/_placeholder: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /test/NetCoreStack.Hisar.Tests/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.AspNetCore.Routing; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using Microsoft.Extensions.Logging; 5 | 6 | namespace NetCoreStack.Hisar.Tests 7 | { 8 | public class Startup 9 | { 10 | public Startup() 11 | { 12 | 13 | } 14 | 15 | public void ConfigureServices(IServiceCollection services) 16 | { 17 | services.AddMvc(); 18 | } 19 | 20 | public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) 21 | { 22 | app.UseMvc(); 23 | } 24 | 25 | public static void ConfigureRoutes(IRouteBuilder routes) 26 | { 27 | routes.MapRoute( 28 | name: "areaDefault", 29 | template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); 30 | 31 | routes.MapRoute( 32 | name: "default", 33 | template: "{controller=Home}/{action=Index}/{id?}"); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /test/NetCoreStack.Hisar.Tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Hisar Development Environment" 4 | }, 5 | "DbSettings": { 6 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 7 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 8 | }, 9 | "Logging": { 10 | "IncludeScopes": false, 11 | "LogLevel": { 12 | "Default": "Debug", 13 | "System": "Information", 14 | "Microsoft": "Information" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/components/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/CarouselMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Collections.Generic; 4 | 5 | namespace Hisar.Component.Carousel 6 | { 7 | public class CarouselMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | return new List 12 | { 13 | new DefaultMenuItem 14 | { 15 | Text = "Test", 16 | Path = ResolvePath(urlHelper, "~/"), 17 | ShowInMenu = true 18 | } 19 | }; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/CarouselViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Threading.Tasks; 4 | 5 | namespace Hisar.Component.Carousel 6 | { 7 | public class CarouselViewComponent : HisarViewComponent 8 | { 9 | public async Task InvokeAsync() 10 | { 11 | await Task.CompletedTask; 12 | return View(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace Hisar.Component.Carousel.Controllers 4 | { 5 | public class HomeController : Controller 6 | { 7 | public IActionResult Index() 8 | { 9 | return View(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Hisar.Component.Carousel.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | true 6 | Hisar.Component.Carousel 7 | Exe 8 | Hisar.Component.Carousel 9 | 10 | 11 | 12 | false 13 | 14 | 15 | 16 | 17 | 18 | 19 | PreserveNewest 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Models/CarouselViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.Carousel 2 | { 3 | public class CarouselViewModel 4 | { 5 | public string Title { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:61486/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Hisar.Component.Carousel": { 19 | "commandName": "Project" 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Startup.Component.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.AspNetCore.Mvc.Rendering; 4 | using NetCoreStack.Hisar; 5 | using System.Reflection; 6 | 7 | namespace Hisar.Component.Carousel 8 | { 9 | public static partial class ComponentHelper 10 | { 11 | public static string ComponentId { get; } 12 | private static readonly string _assemblyName; 13 | 14 | static ComponentHelper() 15 | { 16 | var typeInfo = typeof(ComponentHelper).GetTypeInfo(); 17 | ComponentId = typeInfo.Assembly.GetComponentId(); 18 | _assemblyName = typeInfo.Assembly.GetName().Name; 19 | } 20 | 21 | public static string ComponentContent(this IUrlHelper urlHelper, string contentPath) 22 | { 23 | return ComponentHelperBase.ResolveContentPath(urlHelper, ComponentId, contentPath); 24 | } 25 | 26 | public static string ResolveName(this ViewContext context, string name) 27 | { 28 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName, name); 29 | } 30 | 31 | public static string ResolveName(this ViewContext context) 32 | { 33 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Startup.ComponentDependencies.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using System.Collections.Generic; 3 | 4 | namespace Hisar.Component.Carousel 5 | { 6 | public static partial class ComponentHelper 7 | { 8 | public static IReadOnlyDictionary ComponentDependencies { get; } = new Dictionary 9 | { 10 | ["Microsoft.AspNetCore.Razor.Design"] = "2.2.0", 11 | 12 | }; 13 | } 14 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/ViewComponents/SampleViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System; 4 | using System.Threading.Tasks; 5 | 6 | namespace Hisar.Component.Carousel.ViewComponents 7 | { 8 | public class SampleViewComponent : HisarViewComponent 9 | { 10 | public async Task InvokeAsync() 11 | { 12 | await Task.CompletedTask; 13 | return View(new CarouselViewModel { Title = ExecutionComponentId + " Component -> Sample View Component: " + DateTime.Now }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @section styles { 2 | 3 | } 4 | 5 |

Carousel

6 | @await Component.InvokeAsync(ViewContext.ResolveName("Carousel")) -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Views/Shared/Components/Sample/Default.cshtml: -------------------------------------------------------------------------------- 1 | @using Hisar.Component.Carousel 2 | 3 | @model CarouselViewModel 4 |
5 |
6 |

@Model.Title

7 |
8 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreStack.Hisar 2 | @using NetCoreStack.Contracts 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | @using Hisar.Component.Carousel 6 | 7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 8 | @addTagHelper *, NetCoreStack.Hisar 9 | 10 | @using static Hisar.Component.Carousel.ComponentHelper -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/css/carousel.css: -------------------------------------------------------------------------------- 1 | h2 { 2 | text-decoration: underline; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/favicon.ico -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/img/banner5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/img/banner5.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/img/banner6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Carousel/wwwroot/img/banner6.jpg -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/js/carousel.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | }); -------------------------------------------------------------------------------- /test/components/Hisar.Component.Carousel/wwwroot/lib/ignore-guideline.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | }); -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Controllers/PageController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar.Server; 3 | 4 | namespace Hisar.Component.ContentManagement.Controllers 5 | { 6 | [Route("page/{id?}")] 7 | [ResponseCache(Duration = 20)] 8 | public class PageController : HisarControllerServerBase 9 | { 10 | public IActionResult Index(string id) 11 | { 12 | var model = GetOrCreateCacheItem(id); 13 | if (model == null) 14 | { 15 | return NotFound(); 16 | } 17 | 18 | return View(ResolveViewName("Index"), model); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/CustomMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Microsoft.AspNetCore.Mvc; 3 | using NetCoreStack.Hisar; 4 | 5 | namespace Hisar.Component.ContentManagement 6 | { 7 | public class CustomMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | var items = new List 12 | { 13 | new DefaultMenuItem 14 | { 15 | Icon = "file", 16 | Order = 1, 17 | Path = ResolvePath(urlHelper, $"~/Home/New"), 18 | ShowInMenu = true, 19 | Text = "New Content" 20 | }, 21 | 22 | new DefaultMenuItem 23 | { 24 | Icon = "file", 25 | Order = 1, 26 | Path = ResolvePath(urlHelper, $"~/Home/List"), 27 | ShowInMenu = true, 28 | Text = "Contents" 29 | } 30 | }; 31 | 32 | return items; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Helpers/StringExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Text.RegularExpressions; 2 | 3 | namespace Hisar.Component.ContentManagement 4 | { 5 | public static class StringExtensions 6 | { 7 | public static string GenerateSlug(this string phrase) 8 | { 9 | string str = phrase.RemoveAccent().ToLower(); 10 | // invalid chars 11 | str = Regex.Replace(str, @"[^a-z0-9\s-]", ""); 12 | // convert multiple spaces into one space 13 | str = Regex.Replace(str, @"\s+", " ").Trim(); 14 | // cut and trim 15 | str = str.Substring(0, str.Length <= 45 ? str.Length : 45).Trim(); 16 | str = Regex.Replace(str, @"\s", "-"); // hyphens 17 | return str; 18 | } 19 | 20 | public static string RemoveAccent(this string txt) 21 | { 22 | byte[] bytes = System.Text.Encoding.UTF8.GetBytes(txt); 23 | return System.Text.Encoding.ASCII.GetString(bytes); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Hisar.Component.ContentManagement.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Content Management 5 | netcoreapp2.2 6 | 7 | 8 | 9 | false 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | PreserveNewest 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/IcerikViewModelComposer.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Mvc; 2 | 3 | namespace Hisar.Component.ContentManagement 4 | { 5 | public class IcerikViewModelComposer : ModelComposerBase 6 | { 7 | public override void Invoke(ContentObjectViewModel model) 8 | { 9 | if (model == null) 10 | return; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Models/ContentObject.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar; 2 | using System; 3 | 4 | namespace Hisar.Component.ContentManagement 5 | { 6 | public class ContentObject : EntityIdentityActiveBson 7 | { 8 | public ContentObjectType ContentObjectType { get; set; } 9 | public string Title { get; set; } 10 | public string Description { get; set; } 11 | public string Url { get; set; } 12 | public DateTime CreatedDate { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | using NetCoreStack.Hisar; 4 | 5 | namespace Hisar.Component.ContentManagement 6 | { 7 | public class Program 8 | { 9 | public static void Main(string[] args) 10 | { 11 | CreateWebHostBuilder(args).Build().Run(); 12 | } 13 | 14 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 15 | WebHost.CreateDefaultBuilder(args) 16 | .UseStartup>(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:57548/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Hisar.Component.ContentManagement": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:57549" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Startup.Component.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.AspNetCore.Mvc.Rendering; 4 | using NetCoreStack.Hisar; 5 | using System.Reflection; 6 | 7 | namespace Hisar.Component.ContentManagement 8 | { 9 | public static partial class ComponentHelper 10 | { 11 | public static string ComponentId { get; } 12 | private static readonly string _assemblyName; 13 | 14 | static ComponentHelper() 15 | { 16 | var typeInfo = typeof(ComponentHelper).GetTypeInfo(); 17 | ComponentId = typeInfo.Assembly.GetComponentId(); 18 | _assemblyName = typeInfo.Assembly.GetName().Name; 19 | } 20 | 21 | public static string ComponentContent(this IUrlHelper urlHelper, string contentPath) 22 | { 23 | return ComponentHelperBase.ResolveContentPath(urlHelper, ComponentId, contentPath); 24 | } 25 | 26 | public static string ResolveName(this ViewContext context, string name) 27 | { 28 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName, name); 29 | } 30 | 31 | public static string ResolveName(this ViewContext context) 32 | { 33 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Startup.ComponentDependencies.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using System.Collections.Generic; 3 | 4 | namespace Hisar.Component.ContentManagement 5 | { 6 | public static partial class ComponentHelper 7 | { 8 | public static IReadOnlyDictionary ComponentDependencies { get; } = new Dictionary 9 | { 10 | ["Microsoft.AspNetCore.Razor.Design"] = "2.2.0", 11 | 12 | }; 13 | } 14 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Types/ContentObjectType.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.ContentManagement 2 | { 3 | public enum ContentObjectType 4 | { 5 | Unspecified = 0, 6 | Page = 1, 7 | News = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/ViewComponents/DefaultViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Data.Interfaces; 3 | using NetCoreStack.Hisar; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Hisar.Component.ContentManagement.ViewComponents 8 | { 9 | public class DefaultViewComponent : HisarViewComponent 10 | { 11 | private readonly IMongoUnitOfWork _unitOfWork; 12 | 13 | public DefaultViewComponent(IMongoUnitOfWork unitOfWork) 14 | { 15 | _unitOfWork = unitOfWork; 16 | } 17 | 18 | public async Task InvokeAsync() 19 | { 20 | await Task.CompletedTask; 21 | 22 | var contents = _unitOfWork.Repository() 23 | .OrderByDescending(x => x.Id) 24 | .Take(3) 25 | .Select(x => new ContentObjectViewModel 26 | { 27 | Title = x.Title, 28 | Description = x.Description, 29 | CreatedDate = x.CreatedDate, 30 | Url = x.Url 31 | }).ToList(); 32 | 33 | return View(contents); 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/ViewModels/ContentObjectViewModel.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using System; 3 | 4 | namespace Hisar.Component.ContentManagement 5 | { 6 | public class ContentObjectViewModel : CollectionModelBson 7 | { 8 | public ContentObjectType ContentObjectType { get; set; } 9 | 10 | public string Title { get; set; } 11 | 12 | [PropertyDescriptor(EnableFilter = false)] 13 | public string Description { get; set; } 14 | 15 | [PropertyDescriptor(EnableFilter = false)] 16 | public string Url { get; set; } 17 | 18 | [PropertyDescriptor(EnableFilter = false)] 19 | public DateTime CreatedDate { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Views/Page/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model Hisar.Component.ContentManagement.ContentObject 2 | 3 |
4 |
5 |
6 |
7 |

@Model.Title

8 |

9 | @Html.Raw(Model.Description) 10 |

11 |
12 |
13 |
14 |
15 |
16 |

Widget1

17 |
18 |
19 |
20 |
21 |

Widget2

22 |
23 |
24 |
25 |
26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Hisar.Component.ContentManagement 2 | @addTagHelper *, NetCoreStack.Hisar 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | 5 | @using static Hisar.Component.ContentManagement.ComponentHelper 6 | @using NetCoreStack.Hisar 7 | @using NetCoreStack.Mvc 8 | @using NetCoreStack.Contracts -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/appsettings.KullaniciTest.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "PublicHostingUrl": "http://kullanicitest:83" 4 | }, 5 | "Logging": { 6 | "IncludeScopes": false, 7 | "LogLevel": { 8 | "Default": "Debug", 9 | "System": "Information", 10 | "Microsoft": "Information" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Content Management" 4 | }, 5 | "DbSettings": { 6 | "SqlConnectionString": "Data Source=hisardb.sqlite", 7 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 8 | }, 9 | "Logging": { 10 | "IncludeScopes": false, 11 | "LogLevel": { 12 | "Default": "Warning" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | CKEDITOR.editorConfig = function( config ) { 7 | // Define changes to default configuration here. For example: 8 | // config.language = 'fr'; 9 | // config.uiColor = '#AADC6E'; 10 | }; 11 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 2 | For licensing, see LICENSE.md or http://ckeditor.com/license 3 | 4 | cs.js Found: 30 Missing: 0 5 | cy.js Found: 30 Missing: 0 6 | da.js Found: 12 Missing: 18 7 | de.js Found: 30 Missing: 0 8 | el.js Found: 25 Missing: 5 9 | eo.js Found: 30 Missing: 0 10 | fa.js Found: 30 Missing: 0 11 | fi.js Found: 30 Missing: 0 12 | fr.js Found: 30 Missing: 0 13 | gu.js Found: 12 Missing: 18 14 | he.js Found: 30 Missing: 0 15 | it.js Found: 30 Missing: 0 16 | mk.js Found: 5 Missing: 25 17 | nb.js Found: 30 Missing: 0 18 | nl.js Found: 30 Missing: 0 19 | no.js Found: 30 Missing: 0 20 | pt-br.js Found: 30 Missing: 0 21 | ro.js Found: 6 Missing: 24 22 | tr.js Found: 30 Missing: 0 23 | ug.js Found: 27 Missing: 3 24 | vi.js Found: 6 Missing: 24 25 | zh-cn.js Found: 30 Missing: 0 26 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/colordialog/dialogs/colordialog.css: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | .cke_colordialog_colorcell { 7 | width: 12px; /* All cells have equal width which depends on parent width (in this case table parent). Width works more like max-width. */ 8 | height: 14px; 9 | padding: 1px; /* Padding is replaced by border for focused cells. Prevents 'jumping' when adding borders. */ 10 | } 11 | 12 | .cke_colordialog_colorcell.cke_colordialog_focused_light, 13 | .cke_colordialog_colorcell.cke_colordialog_focused_dark { 14 | padding: 0; /* Shrink cell to allow 1px border indicating focus. */ 15 | border: 1px dotted #000; 16 | } 17 | 18 | .cke_colordialog_colorcell.cke_colordialog_focused_dark { 19 | border-color: #FFF; 20 | } 21 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/dialog/dialogDefinition.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/flash/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/flash/images/placeholder.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/forms/images/hiddenfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/forms/images/hiddenfield.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/icons.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/icons_hidpi.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/iframe/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/iframe/images/placeholder.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/image/images/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/image/images/noimage.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/link/images/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/link/images/anchor.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/link/images/hidpi/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/link/images/hidpi/anchor.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/hidpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/hidpi/icon.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/icon-rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/icon-rtl.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/magicline/images/icon.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/pagebreak/images/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/pagebreak/images/pagebreak.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/preview/preview.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/scayt/README.md: -------------------------------------------------------------------------------- 1 | CKEditor SCAYT Plugin 2 | ===================== 3 | 4 | This plugin brings Spell Check As You Type (SCAYT) into up to CKEditor 4+. 5 | 6 | SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. 7 | 8 | Installation 9 | ------------ 10 | 11 | 1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation. 12 | 2. Enable the "scayt" plugin in the CKEditor configuration file (config.js): 13 | 14 | config.extraPlugins = 'scayt'; 15 | 16 | That's all. SCAYT will appear on the editor toolbar and will be ready to use. 17 | 18 | License 19 | ------- 20 | 21 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). 22 | 23 | See LICENSE.md for more information. 24 | 25 | Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). 26 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css: -------------------------------------------------------------------------------- 1 | .scayt-lang-list > div 2 | { 3 | padding-bottom: 6px !important; 4 | } 5 | 6 | .scayt-lang-list > div input 7 | { 8 | margin-right: 4px; 9 | } 10 | 11 | #scayt_about_ 12 | { 13 | width: 190px; 14 | margin: 30px auto 0 auto; 15 | } 16 | 17 | .cke_dialog_contents_body div[name=dictionaries] .cke_dialog_ui_hbox_last > a.cke_dialog_ui_button 18 | { 19 | margin-top: 0; 20 | } 21 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_address.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_blockquote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_blockquote.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_div.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_div.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h1.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h2.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h3.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h4.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h5.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_h6.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_p.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/showblocks/images/block_pre.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angel_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angel_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angel_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angel_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angry_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angry_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angry_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/angry_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/broken_heart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/broken_heart.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/broken_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/broken_heart.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/confused_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/confused_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/confused_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/confused_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/cry_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/cry_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/cry_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/cry_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/devil_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/devil_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/devil_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/devil_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embaressed_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embaressed_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embarrassed_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embarrassed_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embarrassed_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/embarrassed_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/envelope.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/envelope.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/envelope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/envelope.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/heart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/heart.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/heart.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/kiss.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/kiss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/kiss.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/lightbulb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/lightbulb.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/lightbulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/lightbulb.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/omg_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/omg_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/omg_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/omg_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/regular_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/regular_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/regular_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/regular_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/sad_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/sad_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/sad_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/sad_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/shades_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/shades_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/shades_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/shades_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/teeth_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/teeth_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/teeth_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/teeth_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_down.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_down.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_up.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/thumbs_up.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tongue_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tongue_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tongue_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tongue_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tounge_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/tounge_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/wink_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/wink_smile.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/wink_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/smiley/images/wink_smile.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 2 | For licensing, see LICENSE.md or http://ckeditor.com/license 3 | 4 | cs.js Found: 118 Missing: 0 5 | cy.js Found: 118 Missing: 0 6 | de.js Found: 118 Missing: 0 7 | el.js Found: 16 Missing: 102 8 | eo.js Found: 118 Missing: 0 9 | et.js Found: 31 Missing: 87 10 | fa.js Found: 24 Missing: 94 11 | fi.js Found: 23 Missing: 95 12 | fr.js Found: 118 Missing: 0 13 | hr.js Found: 23 Missing: 95 14 | it.js Found: 118 Missing: 0 15 | nb.js Found: 118 Missing: 0 16 | nl.js Found: 118 Missing: 0 17 | no.js Found: 118 Missing: 0 18 | tr.js Found: 118 Missing: 0 19 | ug.js Found: 39 Missing: 79 20 | zh-cn.js Found: 118 Missing: 0 21 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template1.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template2.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/templates/templates/images/template3.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/plugins/wsc/README.md: -------------------------------------------------------------------------------- 1 | CKEditor WebSpellChecker Plugin 2 | =============================== 3 | 4 | This plugin brings Web Spell Checker (WSC) into CKEditor. 5 | 6 | WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. 7 | 8 | Installation 9 | ------------ 10 | 11 | 1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. 12 | 2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): 13 | 14 | config.extraPlugins = 'wsc'; 15 | 16 | That's all. WSC will appear on the editor toolbar and will be ready to use. 17 | 18 | License 19 | ------- 20 | 21 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). 22 | 23 | See LICENSE.md for more information. 24 | 25 | Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). 26 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/icons.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/icons_hidpi.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/arrow.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/close.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/close.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/lock.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/hidpi/refresh.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/lock-open.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/lock.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/refresh.png -------------------------------------------------------------------------------- /test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.ContentManagement/wwwroot/js/ckeditor/skins/moono-lisa/images/spinner.gif -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/CoreManagementMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar; 2 | using System.Collections.Generic; 3 | using Microsoft.AspNetCore.Mvc; 4 | 5 | namespace Hisar.Component.CoreManagement 6 | { 7 | public class CoreManagementMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | var items = new List() 12 | { 13 | new DefaultMenuItem 14 | { 15 | Icon = "cubes", 16 | Order = 4, 17 | Path = ResolvePath(urlHelper, "~/"), 18 | ShowInMenu = true, 19 | Text = "Bileşen Yönetimi" 20 | } 21 | }; 22 | 23 | return items; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/ExternalComponents/_placeholder: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Models/AssemblyDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Hisar.Component.CoreManagement.Models 4 | { 5 | public class AssemblyDescriptor 6 | { 7 | public AssemblyDescriptor() 8 | { 9 | Controllers = new List(); 10 | } 11 | 12 | public bool IsHosting { get; set; } 13 | public string ComponentId { get; set; } 14 | public string Title { get; set; } 15 | public string PackageId { get; set; } 16 | public string PackageVersion { get; set; } 17 | public string Authors { get; set; } 18 | public string Company { get; set; } 19 | public string Product { get; set; } 20 | public string Description { get; set; } 21 | public string Copyright { get; set; } 22 | public string LicenceUrl { get; set; } 23 | public string ProjectUrl { get; set; } 24 | public string IconUrl { get; set; } 25 | public string RepositoryUrl { get; set; } 26 | public string Tags { get; set; } 27 | public string ReleaseNotes { get; set; } 28 | public string NeutrelLanguage { get; set; } 29 | public string Version { get; set; } 30 | public string FileVersion { get; set; } 31 | public List Controllers { get; set; } 32 | public List ViewComponents { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Models/ComponentControllerDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Hisar.Component.CoreManagement.Models 4 | { 5 | public class ComponentControllerDescriptor 6 | { 7 | public ComponentControllerDescriptor() 8 | { 9 | ComponentMethods = new List(); 10 | } 11 | public string Name { get; set; } 12 | public string Inherited { get; set; } 13 | public List ComponentMethods { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Models/ComponentMethodDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | 4 | namespace Hisar.Component.CoreManagement.Models 5 | { 6 | public class ComponentMethodDescriptor 7 | { 8 | public ComponentMethodDescriptor() 9 | { 10 | MethodParameters = new List(); 11 | } 12 | public string Name { get; set; } 13 | public string ReturnType { get; set; } 14 | public List MethodParameters{ get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Models/ComponentMethodParameterDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.CoreManagement.Models 2 | { 3 | public class ComponentMethodParameterDescriptor 4 | { 5 | public string ParameterType { get; set; } 6 | public string ParameterName { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Models/ComponentViewDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.CoreManagement.Models 2 | { 3 | public class ComponentViewDescriptor 4 | { 5 | public string ComponentId { get; set; } 6 | public string Name { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | using NetCoreStack.Hisar; 4 | 5 | namespace Hisar.Component.CoreManagement 6 | { 7 | public class Program 8 | { 9 | public static void Main(string[] args) 10 | { 11 | CreateWebHostBuilder(args).Build().Run(); 12 | } 13 | 14 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 15 | WebHost.CreateDefaultBuilder(args) 16 | .UseStartup>(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:28402/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Hisar.Component.CoreManagement": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:28403" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Startup.Component.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.AspNetCore.Mvc.Rendering; 4 | using NetCoreStack.Hisar; 5 | using System.Reflection; 6 | 7 | namespace Hisar.Component.CoreManagement 8 | { 9 | public static partial class ComponentHelper 10 | { 11 | public static string ComponentId { get; } 12 | private static readonly string _assemblyName; 13 | 14 | static ComponentHelper() 15 | { 16 | var typeInfo = typeof(ComponentHelper).GetTypeInfo(); 17 | ComponentId = typeInfo.Assembly.GetComponentId(); 18 | _assemblyName = typeInfo.Assembly.GetName().Name; 19 | } 20 | 21 | public static string ComponentContent(this IUrlHelper urlHelper, string contentPath) 22 | { 23 | return ComponentHelperBase.ResolveContentPath(urlHelper, ComponentId, contentPath); 24 | } 25 | 26 | public static string ResolveName(this ViewContext context, string name) 27 | { 28 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName, name); 29 | } 30 | 31 | public static string ResolveName(this ViewContext context) 32 | { 33 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Startup.ComponentDependencies.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using System.Collections.Generic; 3 | 4 | namespace Hisar.Component.CoreManagement 5 | { 6 | public static partial class ComponentHelper 7 | { 8 | public static IReadOnlyDictionary ComponentDependencies { get; } = new Dictionary 9 | { 10 | ["Microsoft.AspNetCore.Razor.Design"] = "2.2.0", 11 | 12 | }; 13 | } 14 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/ViewComponents/ComponentListViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Threading.Tasks; 4 | 5 | namespace Hisar.Component.CoreManagement.ViewComponents 6 | { 7 | public class ComponentListViewComponent : HisarViewComponent 8 | { 9 | public async Task InvokeAsync() 10 | { 11 | await Task.CompletedTask; 12 | return View(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/ViewComponents/CoreManagementViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Threading.Tasks; 4 | 5 | namespace Hisar.Component.CoreManagement.ViewComponents 6 | { 7 | public class CoreManagementViewComponent : HisarViewComponent 8 | { 9 | public async Task InvokeAsync() 10 | { 11 | await Task.CompletedTask; 12 | return View(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Views/Home/ComponentList.cshtml: -------------------------------------------------------------------------------- 1 |  2 | @await Component.InvokeAsync(ViewContext.ResolveName("ComponentList")) -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @section styles{ 2 | 3 | 4 | 5 | } 6 | 7 | @section scripts{ 8 | 9 | 10 | 16 | 17 | } 18 | 19 | @await Component.InvokeAsync(ViewContext.ResolveName("CoreManagement")) -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Views/Shared/Components/CoreManagement/Default.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 | 4 |
5 |
6 | @await Html.PartialAsync("PartialViews/SideBar.cshtml") 7 |
8 |
9 | @await Html.PartialAsync("PartialViews/Content.cshtml") 10 |
11 |
12 |
13 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreStack.Hisar 2 | @using NetCoreStack.Contracts 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | @using Hisar.Component.CoreManagement 6 | 7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 8 | @addTagHelper *, NetCoreStack.Hisar 9 | 10 | @using static Hisar.Component.CoreManagement.ComponentHelper -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/appsettings.Production.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Core Component" 4 | }, 5 | "Logging": { 6 | "IncludeScopes": false, 7 | "LogLevel": { 8 | "Default": "Debug", 9 | "System": "Information", 10 | "Microsoft": "Information" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.CoreManagement/wwwroot/css/highlight.min.css: -------------------------------------------------------------------------------- 1 | .hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} 2 | 3 | /* VS Style */ 4 | .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:#000} 5 | .hljs-comment,.hljs-quote,.hljs-variable{color:green} 6 | .hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f} 7 | .hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515} 8 | .hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af} 9 | .hljs-doctag{color:gray} 10 | .hljs-attr{color:red} 11 | .hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8} 12 | .hljs-emphasis{font-style:italic} 13 | .hljs-strong{font-weight:700} -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/AlbumViewModelComposer.cs: -------------------------------------------------------------------------------- 1 | using Hisar.Component.Guideline.Models; 2 | using NetCoreStack.Mvc; 3 | 4 | namespace Hisar.Component.Guideline 5 | { 6 | public class AlbumViewModelComposer : ModelComposerBase 7 | { 8 | private readonly SampleService _someDependency; 9 | public AlbumViewModelComposer(SampleService someDependency) 10 | { 11 | _someDependency = someDependency; 12 | } 13 | 14 | public override void Invoke(AlbumViewModel model) 15 | { 16 | _someDependency.Invoke(); 17 | } 18 | } 19 | 20 | public class AnotherComposer : ModelComposerBase 21 | { 22 | private readonly SampleService _someDependency; 23 | public AnotherComposer(SampleService someDependency) 24 | { 25 | _someDependency = someDependency; 26 | } 27 | 28 | public override void Invoke(GenreViewModel model) 29 | { 30 | _someDependency.Invoke(); 31 | model.Genre = "Some Text"; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/BsonDataInitializer.cs: -------------------------------------------------------------------------------- 1 | using Hisar.Component.Guideline.Models; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using NetCoreStack.Data.Interfaces; 4 | using NetCoreStack.Mvc.Helpers; 5 | using System; 6 | 7 | namespace Hisar.Component.Guideline 8 | { 9 | public static class BsonDataInitializer 10 | { 11 | const string imgUrl = "http://placehold.it/200x100"; 12 | 13 | public static void InitializeMusicStoreMongoDb(IServiceProvider serviceProvider) 14 | { 15 | if (NetworkHelper.ConnectionCheck(27017)) 16 | { 17 | using (var db = serviceProvider.GetService()) 18 | { 19 | db.MongoDatabase.DropCollection(db.CollectionNameSelector.GetCollectionName()); 20 | var albums = BsonSampleData.GetAlbums(imgUrl, BsonSampleData.Genres, BsonSampleData.Artists); 21 | db.Collection().InsertMany(albums); 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/CustomCacheValueProvider.cs: -------------------------------------------------------------------------------- 1 | using Hisar.Component.Guideline.Models; 2 | using Microsoft.AspNetCore.Mvc; 3 | using NetCoreStack.Data.Interfaces; 4 | using NetCoreStack.Hisar; 5 | using System; 6 | using System.Linq; 7 | 8 | namespace Hisar.Component.Guideline 9 | { 10 | public class CustomCacheValueProvider : CacheValueProviderBase 11 | { 12 | private readonly IMongoUnitOfWork _unitOfWork; 13 | public CustomCacheValueProvider(IMongoUnitOfWork unitOfWork) 14 | { 15 | _unitOfWork = unitOfWork; 16 | } 17 | 18 | public override AlbumBson TryGetValue(ActionContext context, object id, CacheItem key) 19 | { 20 | var idStr = id.ToString(); 21 | key.AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddSeconds(20)); 22 | return _unitOfWork.Repository().FirstOrDefault(x => x.Id == idStr); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/CustomMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Collections.Generic; 4 | 5 | namespace Hisar.Component.Guideline 6 | { 7 | public class CustomMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | var items = new List 12 | { 13 | new DefaultMenuItem 14 | { 15 | Icon = "home", 16 | Order = 1, 17 | Path = ResolvePath(urlHelper, "~/"), 18 | ShowInMenu = true, 19 | Text = "Home Page" 20 | }, 21 | new DefaultMenuItem 22 | { 23 | Icon = "inbox", 24 | Order = 1, 25 | Path = ResolvePath(urlHelper, "~/Home/Albums"), 26 | ShowInMenu = true, 27 | Text = "Albums" 28 | } 29 | }; 30 | 31 | return items; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/GuidelineExceptionFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.AspNetCore.Mvc.Filters; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using NetCoreStack.Data.Interfaces; 5 | using NetCoreStack.Hisar; 6 | using NetCoreStack.Mvc.Types; 7 | 8 | namespace Hisar.Component.Guideline 9 | { 10 | public class GuidelineExceptionFilter : IHisarExceptionFilter 11 | { 12 | protected IMongoUnitOfWork GetUnitOfWork(ActionContext context) 13 | { 14 | return ServiceProviderServiceExtensions.GetService(context.HttpContext.RequestServices); 15 | } 16 | 17 | public void Invoke(ExceptionContext context, SystemLog systemLog) 18 | { 19 | using (var unitOfWork = GetUnitOfWork(context)) 20 | { 21 | unitOfWork.Repository().SaveAllChanges(systemLog); 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/GuidelineUserRegistration.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar; 2 | 3 | namespace Hisar.Component.Guideline 4 | { 5 | public class GuidelineUserRegistration : IUserRegistration 6 | { 7 | public void Register(string username, string password, string email) 8 | { 9 | 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/GuidelineUsernamePasswordValidator.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar; 2 | 3 | namespace Hisar.Component.Guideline 4 | { 5 | public class GuidelineUsernamePasswordValidator : IUsernamePasswordValidator 6 | { 7 | public bool EnsureHasAnyUsers() 8 | { 9 | return true; 10 | } 11 | 12 | public bool Validate(string username, string password) 13 | { 14 | return true; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/AlbumBson.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using NetCoreStack.Data.Contracts; 3 | using System; 4 | using System.ComponentModel.DataAnnotations; 5 | 6 | namespace Hisar.Component.Guideline.Models 7 | { 8 | [CollectionName("Albums")] 9 | public class AlbumBson : EntityIdentityBson 10 | { 11 | [Required] 12 | [StringLength(160, MinimumLength = 2)] 13 | public string Title { get; set; } 14 | 15 | [Required] 16 | [RangeAttribute(typeof(decimal), "0.01", "100")] 17 | [DataType(DataType.Currency)] 18 | public decimal Price { get; set; } 19 | 20 | [Display(Name = "Album Art URL")] 21 | [StringLength(1024)] 22 | public string AlbumArtUrl { get; set; } 23 | 24 | public DateTime? UpdatedDate { get; set; } 25 | 26 | public string[] Tags { get; set; } 27 | 28 | public virtual GenreBson Genre { get; set; } 29 | 30 | public virtual ArtistBson Artist { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/ArtistBson.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using NetCoreStack.Data.Contracts; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace Hisar.Component.Guideline.Models 6 | { 7 | [CollectionName("Artists")] 8 | public class ArtistBson : EntityIdentityBson 9 | { 10 | [Required] 11 | public string Name { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Bson.Serialization.Attributes; 2 | using NetCoreStack.Contracts; 3 | using NetCoreStack.Data.Contracts; 4 | using System.Collections.Generic; 5 | 6 | namespace Hisar.Component.Guideline.Models 7 | { 8 | [CollectionName("Customers")] 9 | public class Customer : EntityIdentityBson 10 | { 11 | [BsonElement("fname")] 12 | public string FirstName { get; set; } 13 | 14 | [BsonElement("lname")] 15 | public string LastName { get; set; } 16 | 17 | public string Email { get; set; } 18 | 19 | public string Phone { get; set; } 20 | 21 | public IList Orders { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/GenreBson.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using NetCoreStack.Data.Contracts; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace Hisar.Component.Guideline.Models 6 | { 7 | [CollectionName("Genres")] 8 | public class GenreBson : EntityIdentityBson 9 | { 10 | [Required] 11 | public string Name { get; set; } 12 | 13 | public string Description { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/GenreViewModel.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | 3 | namespace Hisar.Component.Guideline.Models 4 | { 5 | public class GenreViewModel : CollectionModelBson 6 | { 7 | public string Genre { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/GuidelineEntity.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Data.Contracts; 2 | using System; 3 | 4 | namespace Hisar.Component.Guideline.Models 5 | { 6 | public class GuidelineEntity : EntityIdentityBson 7 | { 8 | public string Name { get; set; } 9 | public int Age { get; set; } 10 | public MaritalStatus MaritalStatus { get; set; } 11 | public DateTime BirthDate { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/GuidelineViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Hisar.Component.Guideline.Models 4 | { 5 | public class GuidelineViewModel 6 | { 7 | public string Name { get; set; } 8 | public int Age { get; set; } 9 | public MaritalStatus MaritalStatus { get; set; } 10 | public DateTime BirthDate { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/MappingProfile.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace Hisar.Component.Guideline.Models 4 | { 5 | /// 6 | /// Third party dependency sample 7 | /// Assign the in the constructor for dependency injection 8 | /// 9 | public class MappingProfile : Profile 10 | { 11 | public MappingProfile() 12 | { 13 | CreateMap(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/MaritalStatus.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace Hisar.Component.Guideline.Models 4 | { 5 | public enum MaritalStatus 6 | { 7 | Single = 0, 8 | [Display(Name = "Married and Happy")] 9 | Married, 10 | Separated, 11 | Divorced, 12 | Widowed 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Models/OrderBson.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Contracts; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace Hisar.Component.Guideline.Models 6 | { 7 | [CollectionName("Orders")] 8 | public class OrderBson 9 | { 10 | public DateTime PurchaseDate { get; set; } 11 | 12 | public IList Items { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:9281/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "environmentVariables": { 14 | "ASPNETCORE_ENVIRONMENT": "Development" 15 | } 16 | }, 17 | "Hisar.Component.Guideline": { 18 | "commandName": "Project", 19 | "launchBrowser": true, 20 | "launchUrl": "http://localhost:5000", 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/SampleService.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.Guideline 2 | { 3 | public class SampleService 4 | { 5 | public void Invoke() 6 | { 7 | 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Startup.Component.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.AspNetCore.Mvc.Rendering; 4 | using NetCoreStack.Hisar; 5 | using System.Reflection; 6 | 7 | namespace Hisar.Component.Guideline 8 | { 9 | public static partial class ComponentHelper 10 | { 11 | public static string ComponentId { get; } 12 | private static readonly string _assemblyName; 13 | 14 | static ComponentHelper() 15 | { 16 | var typeInfo = typeof(ComponentHelper).GetTypeInfo(); 17 | ComponentId = typeInfo.Assembly.GetComponentId(); 18 | _assemblyName = typeInfo.Assembly.GetName().Name; 19 | } 20 | 21 | public static string ComponentContent(this IUrlHelper urlHelper, string contentPath) 22 | { 23 | return ComponentHelperBase.ResolveContentPath(urlHelper, ComponentId, contentPath); 24 | } 25 | 26 | public static string ResolveName(this ViewContext context, string name) 27 | { 28 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName, name); 29 | } 30 | 31 | public static string ResolveName(this ViewContext context) 32 | { 33 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Startup.ComponentDependencies.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using System.Collections.Generic; 3 | 4 | namespace Hisar.Component.Guideline 5 | { 6 | public static partial class ComponentHelper 7 | { 8 | public static IReadOnlyDictionary ComponentDependencies { get; } = new Dictionary 9 | { 10 | ["Microsoft.AspNetCore.Razor.Design"] = "2.2.0", 11 | ["AutoMapper"] = "8.0.0", 12 | ["AutoMapper.Extensions.Microsoft.DependencyInjection"] = "6.0.0", 13 | ["NetCoreStack.WebSockets.ProxyClient"] = "2.5.2" 14 | 15 | }; 16 | } 17 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/ViewComponents/Sample2ViewComponent.cs: -------------------------------------------------------------------------------- 1 | using NetCoreStack.Hisar.Server; 2 | using Microsoft.AspNetCore.Mvc; 3 | using System.Threading.Tasks; 4 | 5 | namespace Hisar.Component.Guideline.ViewComponents 6 | { 7 | public class Sample2ViewComponent : HisarServerViewComponent 8 | { 9 | public async Task InvokeAsync() 10 | { 11 | await Task.CompletedTask; 12 | return View(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/ViewComponents/SampleViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Hisar.Component.Guideline.Models; 2 | using Microsoft.AspNetCore.Mvc; 3 | using NetCoreStack.Hisar; 4 | using System; 5 | using System.Threading.Tasks; 6 | 7 | namespace Hisar.Component.Guideline.ViewComponents 8 | { 9 | public class SampleViewComponent : HisarViewComponent 10 | { 11 | public async Task InvokeAsync() 12 | { 13 | await Task.CompletedTask; 14 | return View(new GuidelineViewModel { Name = ExecutionComponentId + " Component -> Sample View Component: " + DateTime.Now }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/ViewComponents/TestViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Threading.Tasks; 4 | 5 | namespace Hisar.Component.Guideline.ViewComponents 6 | { 7 | [ViewComponent(Name = "Hisar.Component.Guideline.MyTest")] 8 | public class TestViewComponent : HisarViewComponent 9 | { 10 | public async Task InvokeAsync() 11 | { 12 | await Task.CompletedTask; 13 | return View(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/ViewComponents/ViewComponentConventions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace Hisar.Component.Guideline.ViewComponents 4 | { 5 | [ViewComponent] 6 | public class WithAttribute 7 | { 8 | public string Invoke() => "Hello"; 9 | } 10 | 11 | public class DerivedWithAttribute : WithAttribute 12 | { 13 | } 14 | 15 | [ViewComponent(Name = "AttributeName")] 16 | public class WithAttributeAndName 17 | { 18 | public string Invoke() => "Hello"; 19 | } 20 | 21 | public class WithoutSuffix : ViewComponent 22 | { 23 | public string Invoke() => "Hello"; 24 | } 25 | 26 | [NonViewComponent] 27 | public class NonViewComponentAttributeViewComponent 28 | { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | 

Guideline Component - Mixed

2 | Go To Registration 3 |
4 | @await Component.InvokeAsync(ViewContext.ResolveName("MyTest")) 5 |
6 |
7 | @await Component.InvokeAsync(ViewContext.ResolveName("Sample")) 8 |
9 | @ViewBag.ExternalLibrary 10 |
11 | @(await Component.InvokeAsync()) 12 |
13 | @(await Component.InvokeAsync()) 14 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/Shared/Components/MyTest/Default.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

MyTest Attributed View Component

4 |
5 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/Shared/Components/Sample/Default.cshtml: -------------------------------------------------------------------------------- 1 | @using Hisar.Component.Guideline.Models 2 | 3 | @model GuidelineViewModel 4 |
5 |
6 |

@Model.Name

7 |
8 |
9 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/Shared/Components/Sample2/Default.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

Sample II View Component

4 |
5 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | 

An error occoured

2 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreStack.Hisar 2 | @using NetCoreStack.Contracts 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | @using Hisar.Component.Guideline.Models 6 | @using Hisar.Component.Guideline.ViewComponents 7 | 8 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 9 | @addTagHelper *, NetCoreStack.Hisar 10 | @using static Hisar.Component.Guideline.ComponentHelper 11 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Guideline Component" 4 | }, 5 | "DbSettings": { 6 | "SqlConnectionString": "Server=.;Database=HisarDb;Trusted_Connection=True;MultipleActiveResultSets=true", 7 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 8 | }, 9 | "Logging": { 10 | "IncludeScopes": false, 11 | "LogLevel": { 12 | "Default": "Debug", 13 | "System": "Information", 14 | "Microsoft": "Information" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/wwwroot/_references.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Guideline/wwwroot/favicon.ico -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/wwwroot/js/component.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | console.log("Guideline ready!"); 3 | }); -------------------------------------------------------------------------------- /test/components/Hisar.Component.Guideline/wwwroot/js/component.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Guideline/wwwroot/js/component.min.js -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System; 3 | 4 | namespace Hisar.Component.Template.Controllers 5 | { 6 | public class HomeController : Controller 7 | { 8 | public IActionResult Index() 9 | { 10 | ViewBag.StrProperty = DateTime.Now.ToString(); 11 | return View(); 12 | } 13 | 14 | public IActionResult Registration() 15 | { 16 | return View(nameof(Index)); 17 | } 18 | 19 | public IActionResult Error() 20 | { 21 | return View(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/CustomMenuBuilder.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using NetCoreStack.Hisar; 3 | using System.Collections.Generic; 4 | 5 | namespace Hisar.Component.Template 6 | { 7 | public class CustomMenuBuilder : DefaultMenuItemsBuilder 8 | { 9 | public override IEnumerable Build(IUrlHelper urlHelper) 10 | { 11 | return new List 12 | { 13 | new DefaultMenuItem 14 | { 15 | Text = "Registration", 16 | Path = ResolvePath(urlHelper, "~/Home/Registration"), 17 | ShowInMenu = true 18 | } 19 | }; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Hisar.Component.Template.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | false 9 | 10 | 11 | 12 | 13 | 14 | 15 | PreserveNewest 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Models/GuidelineViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Hisar.Component.Template.Models 2 | { 3 | public class GuidelineViewModel 4 | { 5 | public string Name { get; set; } 6 | public int Age { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:9282/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Hisar.Component.Template": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "launchUrl": "http://localhost:5000", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Startup.Component.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.AspNetCore.Mvc.Rendering; 4 | using NetCoreStack.Hisar; 5 | using System.Reflection; 6 | 7 | namespace Hisar.Component.Template 8 | { 9 | public static partial class ComponentHelper 10 | { 11 | public static string ComponentId { get; } 12 | private static readonly string _assemblyName; 13 | 14 | static ComponentHelper() 15 | { 16 | var typeInfo = typeof(ComponentHelper).GetTypeInfo(); 17 | ComponentId = typeInfo.Assembly.GetComponentId(); 18 | _assemblyName = typeInfo.Assembly.GetName().Name; 19 | } 20 | 21 | public static string ComponentContent(this IUrlHelper urlHelper, string contentPath) 22 | { 23 | return ComponentHelperBase.ResolveContentPath(urlHelper, ComponentId, contentPath); 24 | } 25 | 26 | public static string ResolveName(this ViewContext context, string name) 27 | { 28 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName, name); 29 | } 30 | 31 | public static string ResolveName(this ViewContext context) 32 | { 33 | return ComponentHelperBase.ResolveViewComponentName(context, _assemblyName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Startup.ComponentDependencies.cs: -------------------------------------------------------------------------------- 1 | // Hisar Cli auto generated component class! 2 | using System.Collections.Generic; 3 | 4 | namespace Hisar.Component.Template 5 | { 6 | public static partial class ComponentHelper 7 | { 8 | public static IReadOnlyDictionary ComponentDependencies { get; } = new Dictionary 9 | { 10 | ["Microsoft.AspNetCore.Razor.Design"] = "2.2.0", 11 | ["NetCoreStack.WebSockets.ProxyClient"] = "2.5.2" 12 | 13 | }; 14 | } 15 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/ViewComponents/SampleViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Hisar.Component.Template.Models; 2 | using Microsoft.AspNetCore.Mvc; 3 | using NetCoreStack.Hisar; 4 | using System; 5 | using System.Threading.Tasks; 6 | 7 | namespace Hisar.Component.Template.ViewComponents 8 | { 9 | public class SampleViewComponent : HisarViewComponent 10 | { 11 | public async Task InvokeAsync() 12 | { 13 | await Task.CompletedTask; 14 | return View(new GuidelineViewModel { Name = ExecutionComponentId + " Component -> Sample View Component: " + DateTime.Now }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | 

Sample Component

2 |
3 | 4 |
5 |
6 | @await Component.InvokeAsync(ViewContext.ResolveName("Sample")) 7 |
8 | @ViewBag.StrProperty 9 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Views/Shared/Components/Sample/Default.cshtml: -------------------------------------------------------------------------------- 1 | @using Hisar.Component.Template.Models 2 | 3 | @model GuidelineViewModel 4 |
5 |
6 |

@Model.Name

7 |
8 |
-------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreStack.Hisar 2 | @using NetCoreStack.Contracts 3 | @using NetCoreStack.Mvc 4 | @using NetCoreStack.Mvc.Extensions 5 | 6 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 7 | @addTagHelper *, NetCoreStack.Hisar 8 | @using static Hisar.Component.Template.ComponentHelper -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Name": "Some name" 4 | }, 5 | "DbSettings": { 6 | "SqlConnectionString": "Data Source=hisardb.sqlite", 7 | "MongoDbConnectionString": "mongodb://localhost:27017/hisardb" 8 | }, 9 | "Logging": { 10 | "IncludeScopes": false, 11 | "LogLevel": { 12 | "Default": "Debug", 13 | "System": "Information", 14 | "Microsoft": "Information" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/wwwroot/_references.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/wwwroot/css/guideline.css: -------------------------------------------------------------------------------- 1 | body { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Template/wwwroot/favicon.ico -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/wwwroot/js/component.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | console.log("Component ready!"); 3 | }); -------------------------------------------------------------------------------- /test/components/Hisar.Component.Template/wwwroot/js/component.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetCoreStack/Hisar/b88747e0aceaf0ad41bd8958468dc314db978038/test/components/Hisar.Component.Template/wwwroot/js/component.min.js -------------------------------------------------------------------------------- /test/shared/Shared.Library/DomainBaseController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using Microsoft.Extensions.Options; 4 | using NetCoreStack.Mvc; 5 | 6 | namespace Shared.Library 7 | { 8 | public class DomainBaseController : Controller 9 | { 10 | private IOptions _options; 11 | protected IOptions Options 12 | { 13 | get 14 | { 15 | if (_options != null) 16 | return _options; 17 | 18 | _options = HttpContext.RequestServices.GetService>(); 19 | return _options; 20 | } 21 | } 22 | 23 | protected virtual void CreateSuccessNotificationResult(string content) 24 | { 25 | var settings = Options.Value; 26 | ViewBag.Notification = new NotificationResult(settings.AppName, content); 27 | } 28 | 29 | protected virtual IActionResult CreateSuccessWebResult(string content) 30 | { 31 | var settings = Options.Value; 32 | return Json(new WebResult(settings.AppName, content)); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /test/shared/Shared.Library/FrameRegistrarViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System; 3 | using System.Threading.Tasks; 4 | 5 | namespace Shared.Library 6 | { 7 | public class FrameRegistrarViewComponent : ViewComponent 8 | { 9 | public async Task InvokeAsync() 10 | { 11 | await Task.CompletedTask; 12 | ViewBag.SomeProperty = "some value " + DateTime.Now; 13 | return View(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/shared/Shared.Library/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.AspNetCore.Mvc.ApplicationParts; 3 | using Microsoft.AspNetCore.Mvc.Razor; 4 | using Microsoft.Extensions.DependencyInjection; 5 | using NetCoreStack.Hisar; 6 | using System.Reflection; 7 | 8 | namespace Shared.Library 9 | { 10 | public static class ServiceCollectionExtensions 11 | { 12 | public static void AddSharedFeatures(this IServiceCollection services) 13 | { 14 | var sharedAssembly = typeof(ServiceCollectionExtensions).GetTypeInfo().Assembly; 15 | services.Configure(options => 16 | { 17 | options.FileProviders.Add(new SharedEmbeddedFileProvider(sharedAssembly)); 18 | }); 19 | 20 | services.AddMvc().ConfigureApplicationPartManager(manager => 21 | { 22 | var assemblyPart = new AssemblyPart(sharedAssembly); 23 | if (!manager.ApplicationParts.Contains(assemblyPart)) 24 | { 25 | manager.ApplicationParts.Add(assemblyPart); 26 | } 27 | }); 28 | } 29 | 30 | public static void UseSharedFeatures(this IApplicationBuilder app) 31 | { 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/shared/Shared.Library/Shared.Library.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/shared/Shared.Library/SharedScriptViewComponent.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System.Threading.Tasks; 3 | 4 | namespace Shared.Library 5 | { 6 | public class SharedScriptViewComponent : ViewComponent 7 | { 8 | public async Task InvokeAsync() 9 | { 10 | await Task.CompletedTask; 11 | var result = View(); 12 | 13 | return result; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /test/shared/Shared.Library/Views/Shared/Components/FrameRegistrar/Default.cshtml: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /test/shared/Shared.Library/Views/Shared/Components/SharedScript/Default.cshtml: -------------------------------------------------------------------------------- 1 | @(await Component.InvokeAsync()) 2 | 3 |

Shared Scripts View Component!!!

4 | -------------------------------------------------------------------------------- /test/shared/Shared.Library/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreStack.Hisar 2 | @using NetCoreStack.Mvc 3 | 4 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -------------------------------------------------------------------------------- /test/shared/Shared.Library/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | --------------------------------------------------------------------------------