├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── app ├── .nuget │ ├── NuGet.Config │ ├── NuGet.exe │ └── NuGet.targets ├── MyAbpZeroProject.Application │ ├── MyAbpZeroProject.Application.csproj │ ├── MyAbpZeroProjectAppServiceBase.cs │ ├── MyAbpZeroProjectApplicationModule.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Sessions │ │ ├── Dto │ │ │ ├── GetCurrentLoginInformationsOutput.cs │ │ │ ├── TenantLoginInfoDto.cs │ │ │ └── UserLoginInfoDto.cs │ │ ├── ISessionAppService.cs │ │ └── SessionAppService.cs │ ├── app.config │ └── packages.config ├── MyAbpZeroProject.Core │ ├── Authorization │ │ ├── LogInManager.cs │ │ └── Roles │ │ │ ├── Role.cs │ │ │ ├── RoleManager.cs │ │ │ └── RoleStore.cs │ ├── Editions │ │ └── EditionManager.cs │ ├── Features │ │ └── FeatureValueStore.cs │ ├── MultiTenancy │ │ ├── Tenant.cs │ │ └── TenantManager.cs │ ├── MyAbpZeroProject.Core.csproj │ ├── MyAbpZeroProjectConsts.cs │ ├── MyAbpZeroProjectCoreModule.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Users │ │ ├── User.cs │ │ ├── UserManager.cs │ │ └── UserStore.cs │ ├── app.config │ └── packages.config ├── MyAbpZeroProject.EntityFramework │ ├── App.config │ ├── EntityFramework │ │ ├── MyAbpZeroProjectDbContext.cs │ │ └── Repositories │ │ │ └── MyAbpZeroProjectRepositoryBase.cs │ ├── Migrations │ │ ├── 201912091516151_Upgraded_To_Abp_5_1_0.Designer.cs │ │ ├── 201912091516151_Upgraded_To_Abp_5_1_0.cs │ │ ├── 201912091516151_Upgraded_To_Abp_5_1_0.resx │ │ ├── Configuration.cs │ │ └── SeedData │ │ │ ├── DefaultTenantRoleAndUserBuilder.cs │ │ │ └── InitialDataBuilder.cs │ ├── MyAbpZeroProject.EntityFramework.csproj │ ├── MyAbpZeroProjectDataModule.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── READ_ME.txt │ └── packages.config ├── MyAbpZeroProject.Web │ ├── Abp │ │ └── Framework │ │ │ ├── scripts │ │ │ ├── abp.d.ts │ │ │ ├── abp.js │ │ │ ├── abp.min.js │ │ │ ├── libs │ │ │ │ ├── abp.blockUI.js │ │ │ │ ├── abp.blockUI.min.js │ │ │ │ ├── abp.jquery.d.ts │ │ │ │ ├── abp.jquery.js │ │ │ │ ├── abp.jquery.min.js │ │ │ │ ├── abp.jtable.js │ │ │ │ ├── abp.jtable.min.js │ │ │ │ ├── abp.moment.js │ │ │ │ ├── abp.moment.min.js │ │ │ │ ├── abp.signalr-client.js │ │ │ │ ├── abp.signalr-client.min.js │ │ │ │ ├── abp.signalr.d.ts │ │ │ │ ├── abp.signalr.js │ │ │ │ ├── abp.signalr.min.js │ │ │ │ ├── abp.spin.js │ │ │ │ ├── abp.spin.min.js │ │ │ │ ├── abp.sweet-alert.js │ │ │ │ ├── abp.sweet-alert.min.js │ │ │ │ ├── abp.toastr.js │ │ │ │ ├── abp.toastr.min.js │ │ │ │ ├── angularjs │ │ │ │ │ ├── abp.ng.js │ │ │ │ │ └── abp.ng.min.js │ │ │ │ └── requirejs │ │ │ │ │ └── plugins │ │ │ │ │ ├── service.js │ │ │ │ │ └── service.min.js │ │ │ └── utils │ │ │ │ ├── ie10fix.js │ │ │ │ └── ie10fix.min.js │ │ │ └── styles │ │ │ ├── abp.css │ │ │ ├── abp.css.map │ │ │ ├── abp.less │ │ │ ├── abp.min.css │ │ │ ├── abp.mixings.css │ │ │ ├── abp.mixings.css.map │ │ │ ├── abp.mixings.less │ │ │ ├── abp.mixings.min.css │ │ │ └── utils │ │ │ └── ie10fix.css │ ├── App │ │ └── Main │ │ │ ├── app.js │ │ │ ├── images │ │ │ └── abp-logo.png │ │ │ ├── main.css │ │ │ ├── main.less │ │ │ ├── main.min.css │ │ │ ├── services │ │ │ └── appSession.js │ │ │ ├── views │ │ │ ├── about │ │ │ │ ├── about.cshtml │ │ │ │ └── about.js │ │ │ ├── blog │ │ │ │ ├── blog.cshtml │ │ │ │ └── blog.js │ │ │ ├── home │ │ │ │ ├── home.cshtml │ │ │ │ └── home.js │ │ │ └── layout │ │ │ │ ├── header.cshtml │ │ │ │ ├── header.js │ │ │ │ ├── layout.cshtml │ │ │ │ └── layout.js │ │ │ └── web.config │ ├── App_Start │ │ ├── BundleConfig.cs │ │ ├── MyAbpZeroProjectNavigationProvider.cs │ │ ├── MyAbpZeroProjectWebModule.cs │ │ ├── RouteConfig.cs │ │ └── Startup.cs │ ├── Content │ │ ├── bootstrap-cosmo.min.css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ ├── flags │ │ │ ├── famfamfam-flags.css │ │ │ └── famfamfam-flags.png │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ ├── themes │ │ │ └── base │ │ │ │ ├── accordion.css │ │ │ │ ├── all.css │ │ │ │ ├── autocomplete.css │ │ │ │ ├── base.css │ │ │ │ ├── button.css │ │ │ │ ├── core.css │ │ │ │ ├── datepicker.css │ │ │ │ ├── dialog.css │ │ │ │ ├── draggable.css │ │ │ │ ├── images │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ ├── ui-icons_454545_256x240.png │ │ │ │ ├── ui-icons_888888_256x240.png │ │ │ │ └── ui-icons_cd0a0a_256x240.png │ │ │ │ ├── menu.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── resizable.css │ │ │ │ ├── selectable.css │ │ │ │ ├── selectmenu.css │ │ │ │ ├── slider.css │ │ │ │ ├── sortable.css │ │ │ │ ├── spinner.css │ │ │ │ ├── tabs.css │ │ │ │ ├── theme.css │ │ │ │ └── tooltip.css │ │ ├── toastr.css │ │ ├── toastr.less │ │ ├── toastr.min.css │ │ ├── toastr.scss │ │ └── ui-bootstrap-csp.css │ ├── Controllers │ │ ├── AccountController.cs │ │ ├── HomeController.cs │ │ └── MyAbpZeroProjectControllerBase.cs │ ├── Global.asax │ ├── Global.asax.cs │ ├── Icon.png │ ├── Localization │ │ └── MyAbpZeroProject │ │ │ ├── MyAbpZeroProject-zh-CN.xml │ │ │ ├── MyAbpZeroProject.tr.xml │ │ │ └── MyAbpZeroProject.xml │ ├── Models │ │ └── Account │ │ │ ├── LoginFormViewModel.cs │ │ │ └── LoginViewModel.cs │ ├── MyAbpZeroProject.Web.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── READ_ME.txt │ ├── Scripts │ │ ├── angular-animate.js │ │ ├── angular-animate.min.js │ │ ├── angular-animate.min.js.map │ │ ├── angular-aria.js │ │ ├── angular-aria.min.js │ │ ├── angular-aria.min.js.map │ │ ├── angular-cookies.js │ │ ├── angular-cookies.min.js │ │ ├── angular-cookies.min.js.map │ │ ├── angular-csp.css │ │ ├── angular-loader.js │ │ ├── angular-loader.min.js │ │ ├── angular-loader.min.js.map │ │ ├── angular-message-format.js │ │ ├── angular-message-format.min.js │ │ ├── angular-message-format.min.js.map │ │ ├── angular-messages.js │ │ ├── angular-messages.min.js │ │ ├── angular-messages.min.js.map │ │ ├── angular-mocks.js │ │ ├── angular-resource.js │ │ ├── angular-resource.min.js │ │ ├── angular-resource.min.js.map │ │ ├── angular-route.js │ │ ├── angular-route.min.js │ │ ├── angular-route.min.js.map │ │ ├── angular-sanitize.js │ │ ├── angular-sanitize.min.js │ │ ├── angular-sanitize.min.js.map │ │ ├── angular-scenario.js │ │ ├── angular-touch.js │ │ ├── angular-touch.min.js │ │ ├── angular-touch.min.js.map │ │ ├── angular-ui-router.js │ │ ├── angular-ui-router.min.js │ │ ├── angular-ui │ │ │ ├── ui-bootstrap-tpls.js │ │ │ ├── ui-bootstrap-tpls.min.js │ │ │ ├── ui-bootstrap.js │ │ │ ├── ui-bootstrap.min.js │ │ │ ├── ui-utils-ieshiv.js │ │ │ ├── ui-utils-ieshiv.min.js │ │ │ ├── ui-utils.js │ │ │ └── ui-utils.min.js │ │ ├── angular.js │ │ ├── angular.min.js │ │ ├── angular.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ ├── errors.json │ │ ├── i18n │ │ │ ├── angular-locale_aa-dj.js │ │ │ ├── angular-locale_aa-er.js │ │ │ ├── angular-locale_aa-et.js │ │ │ ├── angular-locale_aa.js │ │ │ ├── angular-locale_af-na.js │ │ │ ├── angular-locale_af-za.js │ │ │ ├── angular-locale_af.js │ │ │ ├── angular-locale_agq-cm.js │ │ │ ├── angular-locale_agq.js │ │ │ ├── angular-locale_ak-gh.js │ │ │ ├── angular-locale_ak.js │ │ │ ├── angular-locale_am-et.js │ │ │ ├── angular-locale_am.js │ │ │ ├── angular-locale_ar-001.js │ │ │ ├── angular-locale_ar-ae.js │ │ │ ├── angular-locale_ar-bh.js │ │ │ ├── angular-locale_ar-dj.js │ │ │ ├── angular-locale_ar-dz.js │ │ │ ├── angular-locale_ar-eg.js │ │ │ ├── angular-locale_ar-eh.js │ │ │ ├── angular-locale_ar-er.js │ │ │ ├── angular-locale_ar-il.js │ │ │ ├── angular-locale_ar-iq.js │ │ │ ├── angular-locale_ar-jo.js │ │ │ ├── angular-locale_ar-km.js │ │ │ ├── angular-locale_ar-kw.js │ │ │ ├── angular-locale_ar-lb.js │ │ │ ├── angular-locale_ar-ly.js │ │ │ ├── angular-locale_ar-ma.js │ │ │ ├── angular-locale_ar-mr.js │ │ │ ├── angular-locale_ar-om.js │ │ │ ├── angular-locale_ar-ps.js │ │ │ ├── angular-locale_ar-qa.js │ │ │ ├── angular-locale_ar-sa.js │ │ │ ├── angular-locale_ar-sd.js │ │ │ ├── angular-locale_ar-so.js │ │ │ ├── angular-locale_ar-ss.js │ │ │ ├── angular-locale_ar-sy.js │ │ │ ├── angular-locale_ar-td.js │ │ │ ├── angular-locale_ar-tn.js │ │ │ ├── angular-locale_ar-ye.js │ │ │ ├── angular-locale_ar.js │ │ │ ├── angular-locale_as-in.js │ │ │ ├── angular-locale_as.js │ │ │ ├── angular-locale_asa-tz.js │ │ │ ├── angular-locale_asa.js │ │ │ ├── angular-locale_ast-es.js │ │ │ ├── angular-locale_ast.js │ │ │ ├── angular-locale_az-cyrl-az.js │ │ │ ├── angular-locale_az-cyrl.js │ │ │ ├── angular-locale_az-latn-az.js │ │ │ ├── angular-locale_az-latn.js │ │ │ ├── angular-locale_az.js │ │ │ ├── angular-locale_bas-cm.js │ │ │ ├── angular-locale_bas.js │ │ │ ├── angular-locale_be-by.js │ │ │ ├── angular-locale_be.js │ │ │ ├── angular-locale_bem-zm.js │ │ │ ├── angular-locale_bem.js │ │ │ ├── angular-locale_bez-tz.js │ │ │ ├── angular-locale_bez.js │ │ │ ├── angular-locale_bg-bg.js │ │ │ ├── angular-locale_bg.js │ │ │ ├── angular-locale_bm-latn-ml.js │ │ │ ├── angular-locale_bm-latn.js │ │ │ ├── angular-locale_bm-ml.js │ │ │ ├── angular-locale_bm.js │ │ │ ├── angular-locale_bn-bd.js │ │ │ ├── angular-locale_bn-in.js │ │ │ ├── angular-locale_bn.js │ │ │ ├── angular-locale_bo-cn.js │ │ │ ├── angular-locale_bo-in.js │ │ │ ├── angular-locale_bo.js │ │ │ ├── angular-locale_br-fr.js │ │ │ ├── angular-locale_br.js │ │ │ ├── angular-locale_brx-in.js │ │ │ ├── angular-locale_brx.js │ │ │ ├── angular-locale_bs-cyrl-ba.js │ │ │ ├── angular-locale_bs-cyrl.js │ │ │ ├── angular-locale_bs-latn-ba.js │ │ │ ├── angular-locale_bs-latn.js │ │ │ ├── angular-locale_bs.js │ │ │ ├── angular-locale_byn-er.js │ │ │ ├── angular-locale_byn.js │ │ │ ├── angular-locale_ca-ad.js │ │ │ ├── angular-locale_ca-es-valencia.js │ │ │ ├── angular-locale_ca-es.js │ │ │ ├── angular-locale_ca-fr.js │ │ │ ├── angular-locale_ca-it.js │ │ │ ├── angular-locale_ca.js │ │ │ ├── angular-locale_cgg-ug.js │ │ │ ├── angular-locale_cgg.js │ │ │ ├── angular-locale_chr-us.js │ │ │ ├── angular-locale_chr.js │ │ │ ├── angular-locale_ckb-arab-iq.js │ │ │ ├── angular-locale_ckb-arab-ir.js │ │ │ ├── angular-locale_ckb-arab.js │ │ │ ├── angular-locale_ckb-iq.js │ │ │ ├── angular-locale_ckb-ir.js │ │ │ ├── angular-locale_ckb-latn-iq.js │ │ │ ├── angular-locale_ckb-latn.js │ │ │ ├── angular-locale_ckb.js │ │ │ ├── angular-locale_cs-cz.js │ │ │ ├── angular-locale_cs.js │ │ │ ├── angular-locale_cy-gb.js │ │ │ ├── angular-locale_cy.js │ │ │ ├── angular-locale_da-dk.js │ │ │ ├── angular-locale_da-gl.js │ │ │ ├── angular-locale_da.js │ │ │ ├── angular-locale_dav-ke.js │ │ │ ├── angular-locale_dav.js │ │ │ ├── angular-locale_de-at.js │ │ │ ├── angular-locale_de-be.js │ │ │ ├── angular-locale_de-ch.js │ │ │ ├── angular-locale_de-de.js │ │ │ ├── angular-locale_de-li.js │ │ │ ├── angular-locale_de-lu.js │ │ │ ├── angular-locale_de.js │ │ │ ├── angular-locale_dje-ne.js │ │ │ ├── angular-locale_dje.js │ │ │ ├── angular-locale_dsb-de.js │ │ │ ├── angular-locale_dsb.js │ │ │ ├── angular-locale_dua-cm.js │ │ │ ├── angular-locale_dua.js │ │ │ ├── angular-locale_dyo-sn.js │ │ │ ├── angular-locale_dyo.js │ │ │ ├── angular-locale_dz-bt.js │ │ │ ├── angular-locale_dz.js │ │ │ ├── angular-locale_ebu-ke.js │ │ │ ├── angular-locale_ebu.js │ │ │ ├── angular-locale_ee-gh.js │ │ │ ├── angular-locale_ee-tg.js │ │ │ ├── angular-locale_ee.js │ │ │ ├── angular-locale_el-cy.js │ │ │ ├── angular-locale_el-gr.js │ │ │ ├── angular-locale_el.js │ │ │ ├── angular-locale_en-001.js │ │ │ ├── angular-locale_en-150.js │ │ │ ├── angular-locale_en-ag.js │ │ │ ├── angular-locale_en-ai.js │ │ │ ├── angular-locale_en-as.js │ │ │ ├── angular-locale_en-au.js │ │ │ ├── angular-locale_en-bb.js │ │ │ ├── angular-locale_en-be.js │ │ │ ├── angular-locale_en-bm.js │ │ │ ├── angular-locale_en-bs.js │ │ │ ├── angular-locale_en-bw.js │ │ │ ├── angular-locale_en-bz.js │ │ │ ├── angular-locale_en-ca.js │ │ │ ├── angular-locale_en-cc.js │ │ │ ├── angular-locale_en-ck.js │ │ │ ├── angular-locale_en-cm.js │ │ │ ├── angular-locale_en-cx.js │ │ │ ├── angular-locale_en-dg.js │ │ │ ├── angular-locale_en-dm.js │ │ │ ├── angular-locale_en-er.js │ │ │ ├── angular-locale_en-fj.js │ │ │ ├── angular-locale_en-fk.js │ │ │ ├── angular-locale_en-fm.js │ │ │ ├── angular-locale_en-gb.js │ │ │ ├── angular-locale_en-gd.js │ │ │ ├── angular-locale_en-gg.js │ │ │ ├── angular-locale_en-gh.js │ │ │ ├── angular-locale_en-gi.js │ │ │ ├── angular-locale_en-gm.js │ │ │ ├── angular-locale_en-gu.js │ │ │ ├── angular-locale_en-gy.js │ │ │ ├── angular-locale_en-hk.js │ │ │ ├── angular-locale_en-ie.js │ │ │ ├── angular-locale_en-im.js │ │ │ ├── angular-locale_en-in.js │ │ │ ├── angular-locale_en-io.js │ │ │ ├── angular-locale_en-iso.js │ │ │ ├── angular-locale_en-je.js │ │ │ ├── angular-locale_en-jm.js │ │ │ ├── angular-locale_en-ke.js │ │ │ ├── angular-locale_en-ki.js │ │ │ ├── angular-locale_en-kn.js │ │ │ ├── angular-locale_en-ky.js │ │ │ ├── angular-locale_en-lc.js │ │ │ ├── angular-locale_en-lr.js │ │ │ ├── angular-locale_en-ls.js │ │ │ ├── angular-locale_en-mg.js │ │ │ ├── angular-locale_en-mh.js │ │ │ ├── angular-locale_en-mo.js │ │ │ ├── angular-locale_en-mp.js │ │ │ ├── angular-locale_en-ms.js │ │ │ ├── angular-locale_en-mt.js │ │ │ ├── angular-locale_en-mu.js │ │ │ ├── angular-locale_en-mw.js │ │ │ ├── angular-locale_en-my.js │ │ │ ├── angular-locale_en-na.js │ │ │ ├── angular-locale_en-nf.js │ │ │ ├── angular-locale_en-ng.js │ │ │ ├── angular-locale_en-nr.js │ │ │ ├── angular-locale_en-nu.js │ │ │ ├── angular-locale_en-nz.js │ │ │ ├── angular-locale_en-pg.js │ │ │ ├── angular-locale_en-ph.js │ │ │ ├── angular-locale_en-pk.js │ │ │ ├── angular-locale_en-pn.js │ │ │ ├── angular-locale_en-pr.js │ │ │ ├── angular-locale_en-pw.js │ │ │ ├── angular-locale_en-rw.js │ │ │ ├── angular-locale_en-sb.js │ │ │ ├── angular-locale_en-sc.js │ │ │ ├── angular-locale_en-sd.js │ │ │ ├── angular-locale_en-sg.js │ │ │ ├── angular-locale_en-sh.js │ │ │ ├── angular-locale_en-sl.js │ │ │ ├── angular-locale_en-ss.js │ │ │ ├── angular-locale_en-sx.js │ │ │ ├── angular-locale_en-sz.js │ │ │ ├── angular-locale_en-tc.js │ │ │ ├── angular-locale_en-tk.js │ │ │ ├── angular-locale_en-to.js │ │ │ ├── angular-locale_en-tt.js │ │ │ ├── angular-locale_en-tv.js │ │ │ ├── angular-locale_en-tz.js │ │ │ ├── angular-locale_en-ug.js │ │ │ ├── angular-locale_en-um.js │ │ │ ├── angular-locale_en-us.js │ │ │ ├── angular-locale_en-vc.js │ │ │ ├── angular-locale_en-vg.js │ │ │ ├── angular-locale_en-vi.js │ │ │ ├── angular-locale_en-vu.js │ │ │ ├── angular-locale_en-ws.js │ │ │ ├── angular-locale_en-za.js │ │ │ ├── angular-locale_en-zm.js │ │ │ ├── angular-locale_en-zw.js │ │ │ ├── angular-locale_en.js │ │ │ ├── angular-locale_eo-001.js │ │ │ ├── angular-locale_eo.js │ │ │ ├── angular-locale_es-419.js │ │ │ ├── angular-locale_es-ar.js │ │ │ ├── angular-locale_es-bo.js │ │ │ ├── angular-locale_es-cl.js │ │ │ ├── angular-locale_es-co.js │ │ │ ├── angular-locale_es-cr.js │ │ │ ├── angular-locale_es-cu.js │ │ │ ├── angular-locale_es-do.js │ │ │ ├── angular-locale_es-ea.js │ │ │ ├── angular-locale_es-ec.js │ │ │ ├── angular-locale_es-es.js │ │ │ ├── angular-locale_es-gq.js │ │ │ ├── angular-locale_es-gt.js │ │ │ ├── angular-locale_es-hn.js │ │ │ ├── angular-locale_es-ic.js │ │ │ ├── angular-locale_es-mx.js │ │ │ ├── angular-locale_es-ni.js │ │ │ ├── angular-locale_es-pa.js │ │ │ ├── angular-locale_es-pe.js │ │ │ ├── angular-locale_es-ph.js │ │ │ ├── angular-locale_es-pr.js │ │ │ ├── angular-locale_es-py.js │ │ │ ├── angular-locale_es-sv.js │ │ │ ├── angular-locale_es-us.js │ │ │ ├── angular-locale_es-uy.js │ │ │ ├── angular-locale_es-ve.js │ │ │ ├── angular-locale_es.js │ │ │ ├── angular-locale_et-ee.js │ │ │ ├── angular-locale_et.js │ │ │ ├── angular-locale_eu-es.js │ │ │ ├── angular-locale_eu.js │ │ │ ├── angular-locale_ewo-cm.js │ │ │ ├── angular-locale_ewo.js │ │ │ ├── angular-locale_fa-af.js │ │ │ ├── angular-locale_fa-ir.js │ │ │ ├── angular-locale_fa.js │ │ │ ├── angular-locale_ff-cm.js │ │ │ ├── angular-locale_ff-gn.js │ │ │ ├── angular-locale_ff-mr.js │ │ │ ├── angular-locale_ff-sn.js │ │ │ ├── angular-locale_ff.js │ │ │ ├── angular-locale_fi-fi.js │ │ │ ├── angular-locale_fi.js │ │ │ ├── angular-locale_fil-ph.js │ │ │ ├── angular-locale_fil.js │ │ │ ├── angular-locale_fo-fo.js │ │ │ ├── angular-locale_fo.js │ │ │ ├── angular-locale_fr-be.js │ │ │ ├── angular-locale_fr-bf.js │ │ │ ├── angular-locale_fr-bi.js │ │ │ ├── angular-locale_fr-bj.js │ │ │ ├── angular-locale_fr-bl.js │ │ │ ├── angular-locale_fr-ca.js │ │ │ ├── angular-locale_fr-cd.js │ │ │ ├── angular-locale_fr-cf.js │ │ │ ├── angular-locale_fr-cg.js │ │ │ ├── angular-locale_fr-ch.js │ │ │ ├── angular-locale_fr-ci.js │ │ │ ├── angular-locale_fr-cm.js │ │ │ ├── angular-locale_fr-dj.js │ │ │ ├── angular-locale_fr-dz.js │ │ │ ├── angular-locale_fr-fr.js │ │ │ ├── angular-locale_fr-ga.js │ │ │ ├── angular-locale_fr-gf.js │ │ │ ├── angular-locale_fr-gn.js │ │ │ ├── angular-locale_fr-gp.js │ │ │ ├── angular-locale_fr-gq.js │ │ │ ├── angular-locale_fr-ht.js │ │ │ ├── angular-locale_fr-km.js │ │ │ ├── angular-locale_fr-lu.js │ │ │ ├── angular-locale_fr-ma.js │ │ │ ├── angular-locale_fr-mc.js │ │ │ ├── angular-locale_fr-mf.js │ │ │ ├── angular-locale_fr-mg.js │ │ │ ├── angular-locale_fr-ml.js │ │ │ ├── angular-locale_fr-mq.js │ │ │ ├── angular-locale_fr-mr.js │ │ │ ├── angular-locale_fr-mu.js │ │ │ ├── angular-locale_fr-nc.js │ │ │ ├── angular-locale_fr-ne.js │ │ │ ├── angular-locale_fr-pf.js │ │ │ ├── angular-locale_fr-pm.js │ │ │ ├── angular-locale_fr-re.js │ │ │ ├── angular-locale_fr-rw.js │ │ │ ├── angular-locale_fr-sc.js │ │ │ ├── angular-locale_fr-sn.js │ │ │ ├── angular-locale_fr-sy.js │ │ │ ├── angular-locale_fr-td.js │ │ │ ├── angular-locale_fr-tg.js │ │ │ ├── angular-locale_fr-tn.js │ │ │ ├── angular-locale_fr-vu.js │ │ │ ├── angular-locale_fr-wf.js │ │ │ ├── angular-locale_fr-yt.js │ │ │ ├── angular-locale_fr.js │ │ │ ├── angular-locale_fur-it.js │ │ │ ├── angular-locale_fur.js │ │ │ ├── angular-locale_fy-nl.js │ │ │ ├── angular-locale_fy.js │ │ │ ├── angular-locale_ga-ie.js │ │ │ ├── angular-locale_ga.js │ │ │ ├── angular-locale_gd-gb.js │ │ │ ├── angular-locale_gd.js │ │ │ ├── angular-locale_gl-es.js │ │ │ ├── angular-locale_gl.js │ │ │ ├── angular-locale_gsw-ch.js │ │ │ ├── angular-locale_gsw-fr.js │ │ │ ├── angular-locale_gsw-li.js │ │ │ ├── angular-locale_gsw.js │ │ │ ├── angular-locale_gu-in.js │ │ │ ├── angular-locale_gu.js │ │ │ ├── angular-locale_guz-ke.js │ │ │ ├── angular-locale_guz.js │ │ │ ├── angular-locale_gv-im.js │ │ │ ├── angular-locale_gv.js │ │ │ ├── angular-locale_ha-latn-gh.js │ │ │ ├── angular-locale_ha-latn-ne.js │ │ │ ├── angular-locale_ha-latn-ng.js │ │ │ ├── angular-locale_ha-latn.js │ │ │ ├── angular-locale_ha.js │ │ │ ├── angular-locale_haw-us.js │ │ │ ├── angular-locale_haw.js │ │ │ ├── angular-locale_he-il.js │ │ │ ├── angular-locale_he.js │ │ │ ├── angular-locale_hi-in.js │ │ │ ├── angular-locale_hi.js │ │ │ ├── angular-locale_hr-ba.js │ │ │ ├── angular-locale_hr-hr.js │ │ │ ├── angular-locale_hr.js │ │ │ ├── angular-locale_hsb-de.js │ │ │ ├── angular-locale_hsb.js │ │ │ ├── angular-locale_hu-hu.js │ │ │ ├── angular-locale_hu.js │ │ │ ├── angular-locale_hy-am.js │ │ │ ├── angular-locale_hy.js │ │ │ ├── angular-locale_ia-fr.js │ │ │ ├── angular-locale_ia.js │ │ │ ├── angular-locale_id-id.js │ │ │ ├── angular-locale_id.js │ │ │ ├── angular-locale_ig-ng.js │ │ │ ├── angular-locale_ig.js │ │ │ ├── angular-locale_ii-cn.js │ │ │ ├── angular-locale_ii.js │ │ │ ├── angular-locale_in.js │ │ │ ├── angular-locale_is-is.js │ │ │ ├── angular-locale_is.js │ │ │ ├── angular-locale_it-ch.js │ │ │ ├── angular-locale_it-it.js │ │ │ ├── angular-locale_it-sm.js │ │ │ ├── angular-locale_it.js │ │ │ ├── angular-locale_iw.js │ │ │ ├── angular-locale_ja-jp.js │ │ │ ├── angular-locale_ja.js │ │ │ ├── angular-locale_jgo-cm.js │ │ │ ├── angular-locale_jgo.js │ │ │ ├── angular-locale_jmc-tz.js │ │ │ ├── angular-locale_jmc.js │ │ │ ├── angular-locale_ka-ge.js │ │ │ ├── angular-locale_ka.js │ │ │ ├── angular-locale_kab-dz.js │ │ │ ├── angular-locale_kab.js │ │ │ ├── angular-locale_kam-ke.js │ │ │ ├── angular-locale_kam.js │ │ │ ├── angular-locale_kde-tz.js │ │ │ ├── angular-locale_kde.js │ │ │ ├── angular-locale_kea-cv.js │ │ │ ├── angular-locale_kea.js │ │ │ ├── angular-locale_khq-ml.js │ │ │ ├── angular-locale_khq.js │ │ │ ├── angular-locale_ki-ke.js │ │ │ ├── angular-locale_ki.js │ │ │ ├── angular-locale_kk-cyrl-kz.js │ │ │ ├── angular-locale_kk-cyrl.js │ │ │ ├── angular-locale_kk.js │ │ │ ├── angular-locale_kkj-cm.js │ │ │ ├── angular-locale_kkj.js │ │ │ ├── angular-locale_kl-gl.js │ │ │ ├── angular-locale_kl.js │ │ │ ├── angular-locale_kln-ke.js │ │ │ ├── angular-locale_kln.js │ │ │ ├── angular-locale_km-kh.js │ │ │ ├── angular-locale_km.js │ │ │ ├── angular-locale_kn-in.js │ │ │ ├── angular-locale_kn.js │ │ │ ├── angular-locale_ko-kp.js │ │ │ ├── angular-locale_ko-kr.js │ │ │ ├── angular-locale_ko.js │ │ │ ├── angular-locale_kok-in.js │ │ │ ├── angular-locale_kok.js │ │ │ ├── angular-locale_ks-arab-in.js │ │ │ ├── angular-locale_ks-arab.js │ │ │ ├── angular-locale_ks.js │ │ │ ├── angular-locale_ksb-tz.js │ │ │ ├── angular-locale_ksb.js │ │ │ ├── angular-locale_ksf-cm.js │ │ │ ├── angular-locale_ksf.js │ │ │ ├── angular-locale_ksh-de.js │ │ │ ├── angular-locale_ksh.js │ │ │ ├── angular-locale_kw-gb.js │ │ │ ├── angular-locale_kw.js │ │ │ ├── angular-locale_ky-cyrl-kg.js │ │ │ ├── angular-locale_ky-cyrl.js │ │ │ ├── angular-locale_ky.js │ │ │ ├── angular-locale_lag-tz.js │ │ │ ├── angular-locale_lag.js │ │ │ ├── angular-locale_lb-lu.js │ │ │ ├── angular-locale_lb.js │ │ │ ├── angular-locale_lg-ug.js │ │ │ ├── angular-locale_lg.js │ │ │ ├── angular-locale_lkt-us.js │ │ │ ├── angular-locale_lkt.js │ │ │ ├── angular-locale_ln-ao.js │ │ │ ├── angular-locale_ln-cd.js │ │ │ ├── angular-locale_ln-cf.js │ │ │ ├── angular-locale_ln-cg.js │ │ │ ├── angular-locale_ln.js │ │ │ ├── angular-locale_lo-la.js │ │ │ ├── angular-locale_lo.js │ │ │ ├── angular-locale_lt-lt.js │ │ │ ├── angular-locale_lt.js │ │ │ ├── angular-locale_lu-cd.js │ │ │ ├── angular-locale_lu.js │ │ │ ├── angular-locale_luo-ke.js │ │ │ ├── angular-locale_luo.js │ │ │ ├── angular-locale_luy-ke.js │ │ │ ├── angular-locale_luy.js │ │ │ ├── angular-locale_lv-lv.js │ │ │ ├── angular-locale_lv.js │ │ │ ├── angular-locale_mas-ke.js │ │ │ ├── angular-locale_mas-tz.js │ │ │ ├── angular-locale_mas.js │ │ │ ├── angular-locale_mer-ke.js │ │ │ ├── angular-locale_mer.js │ │ │ ├── angular-locale_mfe-mu.js │ │ │ ├── angular-locale_mfe.js │ │ │ ├── angular-locale_mg-mg.js │ │ │ ├── angular-locale_mg.js │ │ │ ├── angular-locale_mgh-mz.js │ │ │ ├── angular-locale_mgh.js │ │ │ ├── angular-locale_mgo-cm.js │ │ │ ├── angular-locale_mgo.js │ │ │ ├── angular-locale_mk-mk.js │ │ │ ├── angular-locale_mk.js │ │ │ ├── angular-locale_ml-in.js │ │ │ ├── angular-locale_ml.js │ │ │ ├── angular-locale_mn-cyrl-mn.js │ │ │ ├── angular-locale_mn-cyrl.js │ │ │ ├── angular-locale_mn.js │ │ │ ├── angular-locale_mr-in.js │ │ │ ├── angular-locale_mr.js │ │ │ ├── angular-locale_ms-latn-bn.js │ │ │ ├── angular-locale_ms-latn-my.js │ │ │ ├── angular-locale_ms-latn-sg.js │ │ │ ├── angular-locale_ms-latn.js │ │ │ ├── angular-locale_ms.js │ │ │ ├── angular-locale_mt-mt.js │ │ │ ├── angular-locale_mt.js │ │ │ ├── angular-locale_mua-cm.js │ │ │ ├── angular-locale_mua.js │ │ │ ├── angular-locale_my-mm.js │ │ │ ├── angular-locale_my.js │ │ │ ├── angular-locale_naq-na.js │ │ │ ├── angular-locale_naq.js │ │ │ ├── angular-locale_nb-no.js │ │ │ ├── angular-locale_nb-sj.js │ │ │ ├── angular-locale_nb.js │ │ │ ├── angular-locale_nd-zw.js │ │ │ ├── angular-locale_nd.js │ │ │ ├── angular-locale_ne-in.js │ │ │ ├── angular-locale_ne-np.js │ │ │ ├── angular-locale_ne.js │ │ │ ├── angular-locale_nl-aw.js │ │ │ ├── angular-locale_nl-be.js │ │ │ ├── angular-locale_nl-bq.js │ │ │ ├── angular-locale_nl-cw.js │ │ │ ├── angular-locale_nl-nl.js │ │ │ ├── angular-locale_nl-sr.js │ │ │ ├── angular-locale_nl-sx.js │ │ │ ├── angular-locale_nl.js │ │ │ ├── angular-locale_nmg-cm.js │ │ │ ├── angular-locale_nmg.js │ │ │ ├── angular-locale_nn-no.js │ │ │ ├── angular-locale_nn.js │ │ │ ├── angular-locale_nnh-cm.js │ │ │ ├── angular-locale_nnh.js │ │ │ ├── angular-locale_no-no.js │ │ │ ├── angular-locale_no.js │ │ │ ├── angular-locale_nr-za.js │ │ │ ├── angular-locale_nr.js │ │ │ ├── angular-locale_nso-za.js │ │ │ ├── angular-locale_nso.js │ │ │ ├── angular-locale_nus-sd.js │ │ │ ├── angular-locale_nus.js │ │ │ ├── angular-locale_nyn-ug.js │ │ │ ├── angular-locale_nyn.js │ │ │ ├── angular-locale_om-et.js │ │ │ ├── angular-locale_om-ke.js │ │ │ ├── angular-locale_om.js │ │ │ ├── angular-locale_or-in.js │ │ │ ├── angular-locale_or.js │ │ │ ├── angular-locale_os-ge.js │ │ │ ├── angular-locale_os-ru.js │ │ │ ├── angular-locale_os.js │ │ │ ├── angular-locale_pa-arab-pk.js │ │ │ ├── angular-locale_pa-arab.js │ │ │ ├── angular-locale_pa-guru-in.js │ │ │ ├── angular-locale_pa-guru.js │ │ │ ├── angular-locale_pa.js │ │ │ ├── angular-locale_pl-pl.js │ │ │ ├── angular-locale_pl.js │ │ │ ├── angular-locale_ps-af.js │ │ │ ├── angular-locale_ps.js │ │ │ ├── angular-locale_pt-ao.js │ │ │ ├── angular-locale_pt-br.js │ │ │ ├── angular-locale_pt-cv.js │ │ │ ├── angular-locale_pt-gw.js │ │ │ ├── angular-locale_pt-mo.js │ │ │ ├── angular-locale_pt-mz.js │ │ │ ├── angular-locale_pt-pt.js │ │ │ ├── angular-locale_pt-st.js │ │ │ ├── angular-locale_pt-tl.js │ │ │ ├── angular-locale_pt.js │ │ │ ├── angular-locale_qu-bo.js │ │ │ ├── angular-locale_qu-ec.js │ │ │ ├── angular-locale_qu-pe.js │ │ │ ├── angular-locale_qu.js │ │ │ ├── angular-locale_rm-ch.js │ │ │ ├── angular-locale_rm.js │ │ │ ├── angular-locale_rn-bi.js │ │ │ ├── angular-locale_rn.js │ │ │ ├── angular-locale_ro-md.js │ │ │ ├── angular-locale_ro-ro.js │ │ │ ├── angular-locale_ro.js │ │ │ ├── angular-locale_rof-tz.js │ │ │ ├── angular-locale_rof.js │ │ │ ├── angular-locale_ru-by.js │ │ │ ├── angular-locale_ru-kg.js │ │ │ ├── angular-locale_ru-kz.js │ │ │ ├── angular-locale_ru-md.js │ │ │ ├── angular-locale_ru-ru.js │ │ │ ├── angular-locale_ru-ua.js │ │ │ ├── angular-locale_ru.js │ │ │ ├── angular-locale_rw-rw.js │ │ │ ├── angular-locale_rw.js │ │ │ ├── angular-locale_rwk-tz.js │ │ │ ├── angular-locale_rwk.js │ │ │ ├── angular-locale_sah-ru.js │ │ │ ├── angular-locale_sah.js │ │ │ ├── angular-locale_saq-ke.js │ │ │ ├── angular-locale_saq.js │ │ │ ├── angular-locale_sbp-tz.js │ │ │ ├── angular-locale_sbp.js │ │ │ ├── angular-locale_se-fi.js │ │ │ ├── angular-locale_se-no.js │ │ │ ├── angular-locale_se-se.js │ │ │ ├── angular-locale_se.js │ │ │ ├── angular-locale_seh-mz.js │ │ │ ├── angular-locale_seh.js │ │ │ ├── angular-locale_ses-ml.js │ │ │ ├── angular-locale_ses.js │ │ │ ├── angular-locale_sg-cf.js │ │ │ ├── angular-locale_sg.js │ │ │ ├── angular-locale_shi-latn-ma.js │ │ │ ├── angular-locale_shi-latn.js │ │ │ ├── angular-locale_shi-tfng-ma.js │ │ │ ├── angular-locale_shi-tfng.js │ │ │ ├── angular-locale_shi.js │ │ │ ├── angular-locale_si-lk.js │ │ │ ├── angular-locale_si.js │ │ │ ├── angular-locale_sk-sk.js │ │ │ ├── angular-locale_sk.js │ │ │ ├── angular-locale_sl-si.js │ │ │ ├── angular-locale_sl.js │ │ │ ├── angular-locale_smn-fi.js │ │ │ ├── angular-locale_smn.js │ │ │ ├── angular-locale_sn-zw.js │ │ │ ├── angular-locale_sn.js │ │ │ ├── angular-locale_so-dj.js │ │ │ ├── angular-locale_so-et.js │ │ │ ├── angular-locale_so-ke.js │ │ │ ├── angular-locale_so-so.js │ │ │ ├── angular-locale_so.js │ │ │ ├── angular-locale_sq-al.js │ │ │ ├── angular-locale_sq-mk.js │ │ │ ├── angular-locale_sq-xk.js │ │ │ ├── angular-locale_sq.js │ │ │ ├── angular-locale_sr-cyrl-ba.js │ │ │ ├── angular-locale_sr-cyrl-me.js │ │ │ ├── angular-locale_sr-cyrl-rs.js │ │ │ ├── angular-locale_sr-cyrl-xk.js │ │ │ ├── angular-locale_sr-cyrl.js │ │ │ ├── angular-locale_sr-latn-ba.js │ │ │ ├── angular-locale_sr-latn-me.js │ │ │ ├── angular-locale_sr-latn-rs.js │ │ │ ├── angular-locale_sr-latn-xk.js │ │ │ ├── angular-locale_sr-latn.js │ │ │ ├── angular-locale_sr.js │ │ │ ├── angular-locale_ss-sz.js │ │ │ ├── angular-locale_ss-za.js │ │ │ ├── angular-locale_ss.js │ │ │ ├── angular-locale_ssy-er.js │ │ │ ├── angular-locale_ssy.js │ │ │ ├── angular-locale_st-ls.js │ │ │ ├── angular-locale_st-za.js │ │ │ ├── angular-locale_st.js │ │ │ ├── angular-locale_sv-ax.js │ │ │ ├── angular-locale_sv-fi.js │ │ │ ├── angular-locale_sv-se.js │ │ │ ├── angular-locale_sv.js │ │ │ ├── angular-locale_sw-ke.js │ │ │ ├── angular-locale_sw-tz.js │ │ │ ├── angular-locale_sw-ug.js │ │ │ ├── angular-locale_sw.js │ │ │ ├── angular-locale_swc-cd.js │ │ │ ├── angular-locale_swc.js │ │ │ ├── angular-locale_ta-in.js │ │ │ ├── angular-locale_ta-lk.js │ │ │ ├── angular-locale_ta-my.js │ │ │ ├── angular-locale_ta-sg.js │ │ │ ├── angular-locale_ta.js │ │ │ ├── angular-locale_te-in.js │ │ │ ├── angular-locale_te.js │ │ │ ├── angular-locale_teo-ke.js │ │ │ ├── angular-locale_teo-ug.js │ │ │ ├── angular-locale_teo.js │ │ │ ├── angular-locale_tg-cyrl-tj.js │ │ │ ├── angular-locale_tg-cyrl.js │ │ │ ├── angular-locale_tg.js │ │ │ ├── angular-locale_th-th.js │ │ │ ├── angular-locale_th.js │ │ │ ├── angular-locale_ti-er.js │ │ │ ├── angular-locale_ti-et.js │ │ │ ├── angular-locale_ti.js │ │ │ ├── angular-locale_tig-er.js │ │ │ ├── angular-locale_tig.js │ │ │ ├── angular-locale_tl.js │ │ │ ├── angular-locale_tn-bw.js │ │ │ ├── angular-locale_tn-za.js │ │ │ ├── angular-locale_tn.js │ │ │ ├── angular-locale_to-to.js │ │ │ ├── angular-locale_to.js │ │ │ ├── angular-locale_tr-cy.js │ │ │ ├── angular-locale_tr-tr.js │ │ │ ├── angular-locale_tr.js │ │ │ ├── angular-locale_ts-za.js │ │ │ ├── angular-locale_ts.js │ │ │ ├── angular-locale_twq-ne.js │ │ │ ├── angular-locale_twq.js │ │ │ ├── angular-locale_tzm-latn-ma.js │ │ │ ├── angular-locale_tzm-latn.js │ │ │ ├── angular-locale_tzm.js │ │ │ ├── angular-locale_ug-arab-cn.js │ │ │ ├── angular-locale_ug-arab.js │ │ │ ├── angular-locale_ug.js │ │ │ ├── angular-locale_uk-ua.js │ │ │ ├── angular-locale_uk.js │ │ │ ├── angular-locale_ur-in.js │ │ │ ├── angular-locale_ur-pk.js │ │ │ ├── angular-locale_ur.js │ │ │ ├── angular-locale_uz-arab-af.js │ │ │ ├── angular-locale_uz-arab.js │ │ │ ├── angular-locale_uz-cyrl-uz.js │ │ │ ├── angular-locale_uz-cyrl.js │ │ │ ├── angular-locale_uz-latn-uz.js │ │ │ ├── angular-locale_uz-latn.js │ │ │ ├── angular-locale_uz.js │ │ │ ├── angular-locale_vai-latn-lr.js │ │ │ ├── angular-locale_vai-latn.js │ │ │ ├── angular-locale_vai-vaii-lr.js │ │ │ ├── angular-locale_vai-vaii.js │ │ │ ├── angular-locale_vai.js │ │ │ ├── angular-locale_ve-za.js │ │ │ ├── angular-locale_ve.js │ │ │ ├── angular-locale_vi-vn.js │ │ │ ├── angular-locale_vi.js │ │ │ ├── angular-locale_vo-001.js │ │ │ ├── angular-locale_vo.js │ │ │ ├── angular-locale_vun-tz.js │ │ │ ├── angular-locale_vun.js │ │ │ ├── angular-locale_wae-ch.js │ │ │ ├── angular-locale_wae.js │ │ │ ├── angular-locale_wal-et.js │ │ │ ├── angular-locale_wal.js │ │ │ ├── angular-locale_xh-za.js │ │ │ ├── angular-locale_xh.js │ │ │ ├── angular-locale_xog-ug.js │ │ │ ├── angular-locale_xog.js │ │ │ ├── angular-locale_yav-cm.js │ │ │ ├── angular-locale_yav.js │ │ │ ├── angular-locale_yi-001.js │ │ │ ├── angular-locale_yi.js │ │ │ ├── angular-locale_yo-bj.js │ │ │ ├── angular-locale_yo-ng.js │ │ │ ├── angular-locale_yo.js │ │ │ ├── angular-locale_zgh-ma.js │ │ │ ├── angular-locale_zgh.js │ │ │ ├── angular-locale_zh-cn.js │ │ │ ├── angular-locale_zh-hans-cn.js │ │ │ ├── angular-locale_zh-hans-hk.js │ │ │ ├── angular-locale_zh-hans-mo.js │ │ │ ├── angular-locale_zh-hans-sg.js │ │ │ ├── angular-locale_zh-hans.js │ │ │ ├── angular-locale_zh-hant-hk.js │ │ │ ├── angular-locale_zh-hant-mo.js │ │ │ ├── angular-locale_zh-hant-tw.js │ │ │ ├── angular-locale_zh-hant.js │ │ │ ├── angular-locale_zh-hk.js │ │ │ ├── angular-locale_zh-tw.js │ │ │ ├── angular-locale_zh.js │ │ │ ├── angular-locale_zu-za.js │ │ │ └── angular-locale_zu.js │ │ ├── jquery-2.1.4.intellisense.js │ │ ├── jquery-2.1.4.js │ │ ├── jquery-2.1.4.min.js │ │ ├── jquery-2.1.4.min.map │ │ ├── jquery-ui-1.11.4.js │ │ ├── jquery-ui-1.11.4.min.js │ │ ├── jquery.blockUI.js │ │ ├── jquery.validate-vsdoc.js │ │ ├── jquery.validate.js │ │ ├── jquery.validate.min.js │ │ ├── json2.js │ │ ├── json2.min.js │ │ ├── modernizr-2.8.3.js │ │ ├── moment-with-locales.js │ │ ├── moment-with-locales.min.js │ │ ├── moment.js │ │ ├── moment.min.js │ │ ├── npm.js │ │ ├── others │ │ │ ├── html5shiv.js │ │ │ ├── respond.min.js │ │ │ ├── respond.src.js │ │ │ └── spinjs │ │ │ │ ├── jquery.spin.js │ │ │ │ └── spin.js │ │ ├── sweetalert │ │ │ ├── ie9.css │ │ │ ├── sweet-alert.css │ │ │ ├── sweet-alert.html │ │ │ ├── sweet-alert.js │ │ │ ├── sweet-alert.min.js │ │ │ └── sweet-alert.scss │ │ ├── toastr.js │ │ ├── toastr.min.js │ │ └── version.json │ ├── Views │ │ ├── Account │ │ │ ├── Login.cshtml │ │ │ ├── Login.css │ │ │ ├── Login.js │ │ │ ├── Login.less │ │ │ └── Login.min.css │ │ ├── MyAbpZeroProjectWebViewPageBase.cs │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ └── _Layout.cshtml │ │ ├── _ViewStart.cshtml │ │ └── web.config │ ├── Web.Debug.config │ ├── Web.Release.config │ ├── Web.config │ ├── favicon.ico │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── log4net.config │ └── packages.config ├── MyAbpZeroProject.WebApi │ ├── MyAbpZeroProject.WebApi.csproj │ ├── MyAbpZeroProjectWebApiModule.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── MyAbpZeroProject.sln └── Tests │ └── MyAbpZeroProject.Tests │ ├── App.config │ ├── MyAbpZeroProject.Tests.csproj │ ├── Properties │ └── AssemblyInfo.cs │ ├── Sessions │ ├── MyAbpZeroProjectTestBase.cs │ ├── MyAbpZeroProjectTestModule.cs │ └── SessionAppService_Tests.cs │ └── packages.config ├── nupkg └── pack_blog_modules.bat └── src ├── .nuget ├── NuGet.Config ├── NuGet.exe ├── NuGet.targets └── pack.ps1 ├── Abp.Samples.Blog.Application ├── Abp.Samples.Blog.Application.csproj ├── Abp.Samples.Blog.Application.nuspec ├── AbpSampleBlogApplicationModule.cs ├── Application │ ├── Dtos │ │ └── DefaultPagedResultRequest.cs │ └── Services │ │ ├── CrudAppService.cs │ │ └── ICrudAppService.cs ├── BlogAppServiceBase.cs ├── Categories │ ├── CategoryAppService.cs │ ├── Dto │ │ └── CategoryDto.cs │ └── ICategoryAppService.cs ├── Posts │ ├── Dtos │ │ ├── CreatePostInput.cs │ │ ├── GetPostsInput.cs │ │ └── PostDto.cs │ ├── IPostAppService.cs │ └── PostAppService.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── Abp.Samples.Blog.Core ├── Abp.Samples.Blog.Core.csproj ├── Abp.Samples.Blog.Core.nuspec ├── AbpSampleBlogConsts.cs ├── AbpSampleBlogCoreModule.cs ├── Auth │ ├── BlogRole.cs │ ├── BlogRoleManager.cs │ ├── BlogRoleStore.cs │ ├── BlogTenant.cs │ ├── BlogTenantManager.cs │ ├── BlogUser.cs │ ├── BlogUserManager.cs │ └── BlogUserStore.cs ├── Categories │ └── Category.cs ├── Comments │ └── Comment.cs ├── Domain │ └── Repositories │ │ └── ISampleBlogRepository.cs ├── Editions │ └── BlogEditionManager.cs ├── Posts │ ├── Post.cs │ └── PostStatus.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── Abp.Samples.Blog.EntityFramework ├── Abp.Samples.Blog.EntityFramework.csproj ├── Abp.Samples.Blog.EntityFramework.nuspec ├── AbpSampleBlogEntityFrameworkModule.cs ├── App.config ├── Migrations │ ├── 201912100827426_Ugraded_To_Abp_5_1_0.Designer.cs │ ├── 201912100827426_Ugraded_To_Abp_5_1_0.cs │ ├── 201912100827426_Ugraded_To_Abp_5_1_0.resx │ ├── Configuration.cs │ └── SeedData │ │ └── BlogTestDataBuilder.cs ├── Properties │ └── AssemblyInfo.cs ├── READ_ME.txt ├── Repositories │ └── SampleBlogRepositoryBase.cs ├── SampleBlogDbContext.cs └── packages.config ├── Abp.Samples.Blog.Tests ├── Abp.Samples.Blog.Tests.csproj ├── App.config ├── BlogTestModule.cs ├── Categories │ └── CategoryAppService_Tests.cs ├── Data │ └── DefaultTenantRoleAndUserBuilder.cs ├── Posts │ └── PostAppService_Tests.cs ├── Properties │ └── AssemblyInfo.cs ├── SampleBlogTestBase.cs └── packages.config ├── Abp.Samples.Blog.Web ├── Abp.Samples.Blog.Web.csproj ├── Abp.Samples.Blog.Web.nuspec ├── AbpSampleBlogWebModule.cs ├── App │ └── Main │ │ └── views │ │ └── blog │ │ ├── blog.cshtml │ │ └── blog.js ├── Navigation │ └── BlogNavigationProvider.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── Abp.Samples.Blog.sln └── SampleApplication ├── App.config ├── Properties └── AssemblyInfo.cs ├── SampleApplication.csproj ├── SampleApplicationModule.cs └── packages.config /.gitattributes: -------------------------------------------------------------------------------- 1 | **/Scripts/** linguist-vendored 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ASP.NET Boilerplate 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /app/.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/.nuget/NuGet.exe -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/MyAbpZeroProjectAppServiceBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using Abp.Application.Services; 4 | using Abp.Runtime.Session; 5 | using MyAbpZeroProject.MultiTenancy; 6 | using MyAbpZeroProject.Users; 7 | 8 | namespace MyAbpZeroProject 9 | { 10 | /// 11 | /// Derive your application services from this class. 12 | /// 13 | public abstract class MyAbpZeroProjectAppServiceBase : ApplicationService 14 | { 15 | public TenantManager TenantManager { get; set; } 16 | 17 | public UserManager UserManager { get; set; } 18 | 19 | protected MyAbpZeroProjectAppServiceBase() 20 | { 21 | LocalizationSourceName = MyAbpZeroProjectConsts.LocalizationSourceName; 22 | } 23 | 24 | protected virtual Task GetCurrentUserAsync() 25 | { 26 | var user = UserManager.FindByIdAsync(AbpSession.GetUserId()); 27 | if (user == null) 28 | { 29 | throw new ApplicationException("There is no current user!"); 30 | } 31 | 32 | return user; 33 | } 34 | 35 | protected virtual Task GetCurrentTenantAsync() 36 | { 37 | return TenantManager.GetByIdAsync(AbpSession.GetTenantId()); 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/MyAbpZeroProjectApplicationModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.AutoMapper; 3 | using Abp.Modules; 4 | using Abp.Samples.Blog; 5 | 6 | namespace MyAbpZeroProject 7 | { 8 | [DependsOn( 9 | typeof(MyAbpZeroProjectCoreModule), 10 | typeof(AbpSampleBlogApplicationModule), 11 | typeof(AbpAutoMapperModule) 12 | )] 13 | public class MyAbpZeroProjectApplicationModule : AbpModule 14 | { 15 | public override void Initialize() 16 | { 17 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.Application")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.Application")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("beec7379-4dde-46af-9a17-c37ab42c7cce")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.0.0.0")] 37 | [assembly: AssemblyFileVersion("1.0.0.0")] 38 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Sessions/Dto/GetCurrentLoginInformationsOutput.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services.Dto; 2 | 3 | namespace MyAbpZeroProject.Sessions.Dto 4 | { 5 | public class GetCurrentLoginInformationsOutput 6 | { 7 | public UserLoginInfoDto User { get; set; } 8 | 9 | public TenantLoginInfoDto Tenant { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Sessions/Dto/TenantLoginInfoDto.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services.Dto; 2 | using Abp.AutoMapper; 3 | using MyAbpZeroProject.MultiTenancy; 4 | 5 | namespace MyAbpZeroProject.Sessions.Dto 6 | { 7 | [AutoMapFrom(typeof(Tenant))] 8 | public class TenantLoginInfoDto : EntityDto 9 | { 10 | public string TenancyName { get; set; } 11 | 12 | public string Name { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Sessions/Dto/UserLoginInfoDto.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services.Dto; 2 | using Abp.AutoMapper; 3 | using MyAbpZeroProject.Users; 4 | 5 | namespace MyAbpZeroProject.Sessions.Dto 6 | { 7 | [AutoMapFrom(typeof(User))] 8 | public class UserLoginInfoDto : EntityDto 9 | { 10 | public string Name { get; set; } 11 | 12 | public string Surname { get; set; } 13 | 14 | public string UserName { get; set; } 15 | 16 | public string EmailAddress { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Sessions/ISessionAppService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Abp.Application.Services; 7 | using MyAbpZeroProject.Sessions.Dto; 8 | 9 | namespace MyAbpZeroProject.Sessions 10 | { 11 | public interface ISessionAppService : IApplicationService 12 | { 13 | Task GetCurrentLoginInformations(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Application/Sessions/SessionAppService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Abp.Auditing; 3 | using Abp.Authorization; 4 | using Abp.AutoMapper; 5 | using MyAbpZeroProject.Sessions.Dto; 6 | 7 | namespace MyAbpZeroProject.Sessions 8 | { 9 | [AbpAuthorize] 10 | public class SessionAppService : MyAbpZeroProjectAppServiceBase, ISessionAppService 11 | { 12 | [DisableAuditing] 13 | public async Task GetCurrentLoginInformations() 14 | { 15 | var output = new GetCurrentLoginInformationsOutput 16 | { 17 | User = (await GetCurrentUserAsync()).MapTo() 18 | }; 19 | 20 | if (AbpSession.TenantId.HasValue) 21 | { 22 | output.Tenant = (await GetCurrentTenantAsync()).MapTo(); 23 | } 24 | 25 | return output; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Authorization/LogInManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Abp.Authorization; 7 | using Abp.Authorization.Roles; 8 | using Abp.Authorization.Users; 9 | using Abp.Configuration; 10 | using Abp.Configuration.Startup; 11 | using Abp.Dependency; 12 | using Abp.Domain.Repositories; 13 | using Abp.Domain.Uow; 14 | using Abp.Zero.Configuration; 15 | using MyAbpZeroProject.Authorization.Roles; 16 | using MyAbpZeroProject.MultiTenancy; 17 | using MyAbpZeroProject.Users; 18 | 19 | namespace MyAbpZeroProject.Authorization 20 | { 21 | public class LogInManager : AbpLogInManager 22 | { 23 | public LogInManager( 24 | UserManager userManager, 25 | IMultiTenancyConfig multiTenancyConfig, 26 | IRepository tenantRepository, 27 | IUnitOfWorkManager unitOfWorkManager, 28 | ISettingManager settingManager, 29 | IRepository userLoginAttemptRepository, 30 | IUserManagementConfig userManagementConfig, 31 | IIocResolver iocResolver, 32 | RoleManager roleManager) 33 | : base(userManager, multiTenancyConfig, tenantRepository, unitOfWorkManager, settingManager, userLoginAttemptRepository, userManagementConfig, iocResolver, roleManager) 34 | { 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Authorization/Roles/Role.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Roles; 2 | using MyAbpZeroProject.Users; 3 | 4 | namespace MyAbpZeroProject.Authorization.Roles 5 | { 6 | public class Role : AbpRole 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Authorization/Roles/RoleManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization; 2 | using Abp.Authorization.Roles; 3 | using Abp.Domain.Repositories; 4 | using Abp.Domain.Uow; 5 | using Abp.Organizations; 6 | using Abp.Runtime.Caching; 7 | using Abp.Zero.Configuration; 8 | using MyAbpZeroProject.Users; 9 | 10 | namespace MyAbpZeroProject.Authorization.Roles 11 | { 12 | public class RoleManager : AbpRoleManager 13 | { 14 | public RoleManager( 15 | RoleStore store, 16 | IPermissionManager permissionManager, 17 | IRoleManagementConfig roleManagementConfig, 18 | ICacheManager cacheManager, 19 | IUnitOfWorkManager unitOfWorkManager, 20 | IRepository organizationUnitRepository, 21 | IRepository organizationUnitRoleRepository) 22 | : base(store, permissionManager, roleManagementConfig, cacheManager, unitOfWorkManager, organizationUnitRepository, organizationUnitRoleRepository) 23 | { 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Authorization/Roles/RoleStore.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Roles; 2 | using Abp.Authorization.Users; 3 | using Abp.Domain.Repositories; 4 | using MyAbpZeroProject.Users; 5 | 6 | namespace MyAbpZeroProject.Authorization.Roles 7 | { 8 | public class RoleStore : AbpRoleStore 9 | { 10 | public RoleStore( 11 | IRepository roleRepository, 12 | IRepository userRoleRepository, 13 | IRepository rolePermissionSettingRepository) 14 | : base( 15 | roleRepository, 16 | userRoleRepository, 17 | rolePermissionSettingRepository) 18 | { 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Editions/EditionManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Editions; 2 | using Abp.Application.Features; 3 | using Abp.Domain.Repositories; 4 | 5 | namespace MyAbpZeroProject.Editions 6 | { 7 | public class EditionManager : AbpEditionManager 8 | { 9 | public EditionManager( 10 | IRepository editionRepository, 11 | IAbpZeroFeatureValueStore featureValueStore) 12 | : base( 13 | editionRepository, featureValueStore 14 | ) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Features/FeatureValueStore.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Features; 2 | using Abp.Domain.Repositories; 3 | using Abp.Domain.Uow; 4 | using Abp.MultiTenancy; 5 | using Abp.Runtime.Caching; 6 | using MyAbpZeroProject.Authorization.Roles; 7 | using MyAbpZeroProject.MultiTenancy; 8 | using MyAbpZeroProject.Users; 9 | 10 | namespace MyAbpZeroProject.Features 11 | { 12 | public class FeatureValueStore : AbpFeatureValueStore 13 | { 14 | public FeatureValueStore( 15 | ICacheManager cacheManager, 16 | IRepository tenantFeatureRepository, 17 | IRepository tenantRepository, 18 | IRepository editionFeatureRepository, 19 | IFeatureManager featureManager, 20 | IUnitOfWorkManager unitOfWorkManager) 21 | : base( 22 | cacheManager, 23 | tenantFeatureRepository, 24 | tenantRepository, 25 | editionFeatureRepository, 26 | featureManager, 27 | unitOfWorkManager 28 | ) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/MultiTenancy/Tenant.cs: -------------------------------------------------------------------------------- 1 | using Abp.MultiTenancy; 2 | using MyAbpZeroProject.Users; 3 | 4 | namespace MyAbpZeroProject.MultiTenancy 5 | { 6 | public class Tenant : AbpTenant 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/MultiTenancy/TenantManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Editions; 2 | using Abp.Application.Features; 3 | using Abp.Domain.Repositories; 4 | using Abp.MultiTenancy; 5 | using MyAbpZeroProject.Authorization.Roles; 6 | using MyAbpZeroProject.Editions; 7 | using MyAbpZeroProject.Users; 8 | 9 | namespace MyAbpZeroProject.MultiTenancy 10 | { 11 | public class TenantManager : AbpTenantManager 12 | { 13 | public TenantManager( 14 | IRepository tenantRepository, 15 | IRepository tenantFeatureRepository, 16 | EditionManager editionManager, 17 | IAbpZeroFeatureValueStore featureValueStore) 18 | : base(tenantRepository, tenantFeatureRepository, editionManager, featureValueStore) 19 | { 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/MyAbpZeroProjectConsts.cs: -------------------------------------------------------------------------------- 1 | namespace MyAbpZeroProject 2 | { 3 | public class MyAbpZeroProjectConsts 4 | { 5 | public const string LocalizationSourceName = "MyAbpZeroProject"; 6 | } 7 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/MyAbpZeroProjectCoreModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | using Abp.Samples.Blog; 4 | using Abp.Zero; 5 | using Abp.Zero.Configuration; 6 | using MyAbpZeroProject.Authorization.Roles; 7 | using MyAbpZeroProject.MultiTenancy; 8 | using MyAbpZeroProject.Users; 9 | 10 | namespace MyAbpZeroProject 11 | { 12 | [DependsOn( 13 | typeof(AbpZeroCoreModule), 14 | typeof(AbpSampleBlogCoreModule) 15 | )] 16 | public class MyAbpZeroProjectCoreModule : AbpModule 17 | { 18 | public override void PreInitialize() 19 | { 20 | //Remove the following line to disable multi-tenancy. 21 | //Configuration.MultiTenancy.IsEnabled = true; 22 | 23 | Configuration.Modules.Zero().EntityTypes.Tenant = typeof(Tenant); 24 | Configuration.Modules.Zero().EntityTypes.User = typeof(User); 25 | Configuration.Modules.Zero().EntityTypes.Role = typeof(Role); 26 | } 27 | 28 | public override void Initialize() 29 | { 30 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.Core")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.Core")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("01b2dfae-7905-4292-aa57-d7d242b6076c")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.0.0.0")] 37 | [assembly: AssemblyFileVersion("1.0.0.0")] 38 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Users/User.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Users; 2 | 3 | namespace MyAbpZeroProject.Users 4 | { 5 | public class User : AbpUser 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Users/UserManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization; 2 | using Abp.Authorization.Roles; 3 | using Abp.Authorization.Users; 4 | using Abp.Configuration; 5 | using Abp.Configuration.Startup; 6 | using Abp.Dependency; 7 | using Abp.Domain.Repositories; 8 | using Abp.Domain.Uow; 9 | using Abp.IdentityFramework; 10 | using Abp.Localization; 11 | using Abp.Organizations; 12 | using Abp.Runtime.Caching; 13 | using Abp.Zero.Configuration; 14 | using MyAbpZeroProject.Authorization.Roles; 15 | using MyAbpZeroProject.MultiTenancy; 16 | 17 | namespace MyAbpZeroProject.Users 18 | { 19 | public class UserManager : AbpUserManager 20 | { 21 | public UserManager( 22 | UserStore userStore, 23 | RoleManager roleManager, 24 | IPermissionManager permissionManager, 25 | IUnitOfWorkManager unitOfWorkManager, 26 | ICacheManager cacheManager, 27 | IRepository organizationUnitRepository, 28 | IRepository userOrganizationUnitRepository, 29 | IOrganizationUnitSettings organizationUnitSettings, 30 | ILocalizationManager localizationManager, 31 | IdentityEmailMessageService emailService, 32 | ISettingManager settingManager, 33 | IUserTokenProviderAccessor userTokenProviderAccessor) 34 | : base(userStore, roleManager, permissionManager, unitOfWorkManager, cacheManager, organizationUnitRepository, userOrganizationUnitRepository, organizationUnitSettings, localizationManager, emailService, settingManager, userTokenProviderAccessor) 35 | { 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Core/Users/UserStore.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Users; 2 | using Abp.Domain.Repositories; 3 | using Abp.Domain.Uow; 4 | using Abp.Organizations; 5 | using MyAbpZeroProject.Authorization.Roles; 6 | 7 | namespace MyAbpZeroProject.Users 8 | { 9 | public class UserStore : AbpUserStore 10 | { 11 | public UserStore( 12 | IRepository userRepository, 13 | IRepository userLoginRepository, 14 | IRepository userRoleRepository, 15 | IRepository roleRepository, 16 | IRepository userPermissionSettingRepository, 17 | IUnitOfWorkManager unitOfWorkManager, 18 | IRepository userClaimRepository, 19 | IRepository userOrganizationUnitRepository, 20 | IRepository organizationUnitRoleRepository) 21 | : base(userRepository, userLoginRepository, userRoleRepository, roleRepository, userPermissionSettingRepository, unitOfWorkManager, userClaimRepository, userOrganizationUnitRepository, organizationUnitRoleRepository) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/EntityFramework/MyAbpZeroProjectDbContext.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Common; 2 | using Abp.Zero.EntityFramework; 3 | using MyAbpZeroProject.Authorization.Roles; 4 | using MyAbpZeroProject.MultiTenancy; 5 | using MyAbpZeroProject.Users; 6 | 7 | namespace MyAbpZeroProject.EntityFramework 8 | { 9 | public class MyAbpZeroProjectDbContext : AbpZeroDbContext 10 | { 11 | //TODO: Define an IDbSet for each Entity... 12 | 13 | //Example: 14 | //public virtual IDbSet Users { get; set; } 15 | 16 | /* NOTE: 17 | * Setting "Default" to base class helps us when working migration commands on Package Manager Console. 18 | * But it may cause problems when working Migrate.exe of EF. If you will apply migrations on command line, do not 19 | * pass connection string name to base classes. ABP works either way. 20 | */ 21 | public MyAbpZeroProjectDbContext() 22 | : base("Default") 23 | { 24 | 25 | } 26 | 27 | /* NOTE: 28 | * This constructor is used by ABP to pass connection string defined in MyAbpZeroProjectDataModule.PreInitialize. 29 | * Notice that, actually you will not directly create an instance of MyAbpZeroProjectDbContext since ABP automatically handles it. 30 | */ 31 | public MyAbpZeroProjectDbContext(string nameOrConnectionString) 32 | : base(nameOrConnectionString) 33 | { 34 | 35 | } 36 | 37 | //This constructor is used in tests 38 | public MyAbpZeroProjectDbContext(DbConnection connection) 39 | : base(connection, true) 40 | { 41 | 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/EntityFramework/Repositories/MyAbpZeroProjectRepositoryBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Domain.Entities; 2 | using Abp.EntityFramework; 3 | using Abp.EntityFramework.Repositories; 4 | 5 | namespace MyAbpZeroProject.EntityFramework.Repositories 6 | { 7 | public abstract class MyAbpZeroProjectRepositoryBase : EfRepositoryBase 8 | where TEntity : class, IEntity 9 | { 10 | protected MyAbpZeroProjectRepositoryBase(IDbContextProvider dbContextProvider) 11 | : base(dbContextProvider) 12 | { 13 | 14 | } 15 | 16 | //add common methods for all repositories 17 | } 18 | 19 | public abstract class MyAbpZeroProjectRepositoryBase : MyAbpZeroProjectRepositoryBase 20 | where TEntity : class, IEntity 21 | { 22 | protected MyAbpZeroProjectRepositoryBase(IDbContextProvider dbContextProvider) 23 | : base(dbContextProvider) 24 | { 25 | 26 | } 27 | 28 | //do not add any method here, add to the class above (since this inherits it) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/Migrations/201912091516151_Upgraded_To_Abp_5_1_0.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace MyAbpZeroProject.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.4.0")] 10 | public sealed partial class Upgraded_To_Abp_5_1_0 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(Upgraded_To_Abp_5_1_0)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201912091516151_Upgraded_To_Abp_5_1_0"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/Migrations/Configuration.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity.Migrations; 2 | using MyAbpZeroProject.Migrations.SeedData; 3 | using EntityFramework.DynamicFilters; 4 | 5 | namespace MyAbpZeroProject.Migrations 6 | { 7 | internal sealed class Configuration : DbMigrationsConfiguration 8 | { 9 | public Configuration() 10 | { 11 | AutomaticMigrationsEnabled = false; 12 | ContextKey = "MyAbpZeroProject"; 13 | } 14 | 15 | protected override void Seed(MyAbpZeroProject.EntityFramework.MyAbpZeroProjectDbContext context) 16 | { 17 | context.DisableAllFilters(); 18 | new InitialDataBuilder(context).Build(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/Migrations/SeedData/InitialDataBuilder.cs: -------------------------------------------------------------------------------- 1 | using MyAbpZeroProject.EntityFramework; 2 | 3 | namespace MyAbpZeroProject.Migrations.SeedData 4 | { 5 | public class InitialDataBuilder 6 | { 7 | private readonly MyAbpZeroProjectDbContext _context; 8 | 9 | public InitialDataBuilder(MyAbpZeroProjectDbContext context) 10 | { 11 | _context = context; 12 | } 13 | 14 | public void Build() 15 | { 16 | new DefaultTenantRoleAndUserBuilder(_context).Build(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/MyAbpZeroProjectDataModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | using Abp.Samples.Blog.EntityFramework; 4 | using Abp.Zero.EntityFramework; 5 | 6 | namespace MyAbpZeroProject 7 | { 8 | [DependsOn( 9 | typeof(AbpZeroEntityFrameworkModule), 10 | typeof(AbpSampleBlogEntityFrameworkModule), 11 | typeof(MyAbpZeroProjectCoreModule))] 12 | public class MyAbpZeroProjectDataModule : AbpModule 13 | { 14 | public override void PreInitialize() 15 | { 16 | Configuration.DefaultNameOrConnectionString = "Default"; 17 | } 18 | 19 | public override void Initialize() 20 | { 21 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.EntityFramework")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.EntityFramework")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("624d4487-8d3e-4d71-b209-f5d202efeb73")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.0.0.0")] 37 | [assembly: AssemblyFileVersion("1.0.0.0")] 38 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.EntityFramework/READ_ME.txt: -------------------------------------------------------------------------------- 1 | Running migrations (specify Password): 2 | 3 | Update-Database -ConnectionString "Server=localhost; Database=MyAbpZeroProject; User=sa; Password=;" -ConnectionProviderName "System.Data.SqlClient" -ProjectName "Abp.Samples.Blog.EntityFramework" -Verbose -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.blockUI.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | 4 | if (!$.blockUI) { 5 | return; 6 | } 7 | 8 | $.extend($.blockUI.defaults, { 9 | message: ' ', 10 | css: { }, 11 | overlayCSS: { 12 | backgroundColor: '#AAA', 13 | opacity: 0.3, 14 | cursor: 'wait' 15 | } 16 | }); 17 | 18 | abp.ui.block = function (elm) { 19 | if (!elm) { 20 | $.blockUI(); 21 | } else { 22 | $(elm).block(); 23 | } 24 | }; 25 | 26 | abp.ui.unblock = function (elm) { 27 | if (!elm) { 28 | $.unblockUI(); 29 | } else { 30 | $(elm).unblock(); 31 | } 32 | }; 33 | 34 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.blockUI.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.blockUI&&($.extend($.blockUI.defaults,{message:" ",css:{},overlayCSS:{backgroundColor:"#AAA",opacity:.3,cursor:"wait"}}),abp.ui.block=function(n){n?$(n).block():$.blockUI()},abp.ui.unblock=function(n){n?$(n).unblock():$.unblockUI()})})(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.jquery.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | //TODO: Gets JQuery.AjaxOptions and returns JQuery.Promise 4 | 5 | function ajax(userOptions: any): any; 6 | 7 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.jtable.min.js: -------------------------------------------------------------------------------- 1 | (function(n){if(n&&n.hik&&n.hik.jtable){var t={_create:n.hik.jtable.prototype._create};n.extend(!0,n.hik.jtable.prototype,{_create:function(){var n=this;t._create.apply(n,arguments);n.options.actions.listAction&&n._adaptListActionforAbp();n.options.actions.createAction&&n._adaptCreateActionforAbp();n.options.actions.updateAction&&n._adaptUpdateActionforAbp();n.options.actions.deleteAction&&n._adaptDeleteActionforAbp()},_adaptListActionforAbp:function(){var t=this,i=t.options.actions.listAction;t.options.actions.listAction=function(r,u){return n.Deferred(function(f){var e=n.extend({},r,{skipCount:u.jtStartIndex,maxResultCount:u.jtPageSize,sorting:u.jtSorting});i.method(e).done(function(n){f.resolve({Result:"OK",Records:n.items||n[i.recordsField]||n,TotalRecordCount:n.totalCount||n.length,originalResult:n})}).fail(function(n){t._handlerForFailOnAbpRequest(f,n)})})}},_adaptCreateActionforAbp:function(){var t=this,i=t.options.actions.createAction;t.options.actions.createAction=function(r){return n.Deferred(function(u){var f=n.extend({},r);i.method(f).done(function(n){u.resolve({Result:"OK",Record:i.recordField?n[i.recordField]:n,originalResult:n})}).fail(function(n){t._handlerForFailOnAbpRequest(u,n)})})}},_adaptUpdateActionforAbp:function(){var i=this,t=i.options.actions.updateAction;i.options.actions.updateAction=function(r){return n.Deferred(function(u){var f=n.extend({},r);t.method(f).done(function(n){var i={Result:"OK",originalResult:n};t.returnsRecord&&(i.Record=t.recordField?n[t.recordField]:n);u.resolve(i)}).fail(function(n){i._handlerForFailOnAbpRequest(u,n)})})}},_adaptDeleteActionforAbp:function(){var t=this,i=t.options.actions.deleteAction;t.options.actions.deleteAction=function(r){return n.Deferred(function(u){var f=n.extend({},r);i.method(f).done(function(n){u.resolve({Result:"OK",originalResult:n})}).fail(function(n){t._handlerForFailOnAbpRequest(u,n)})})}},_handlerForFailOnAbpRequest:function(n,t){t&&t.message?n.resolve({Result:"ERROR",Message:t.message}):n.reject(t)},_showError:function(){}});n.extend(!0,n.hik.jtable.prototype.options,{pageList:"minimal"})}})(jQuery); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.moment.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | if (!moment || !moment.tz) { 4 | return; 5 | } 6 | 7 | /* DEFAULTS *************************************************/ 8 | 9 | abp.timing = abp.timing || {}; 10 | 11 | /* FUNCTIONS **************************************************/ 12 | 13 | abp.timing.convertToUserTimezone = function (date) { 14 | var momentDate = moment(date); 15 | var targetDate = momentDate.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId); 16 | return targetDate; 17 | }; 18 | 19 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.moment.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){moment&&moment.tz&&(abp.timing=abp.timing||{},abp.timing.convertToUserTimezone=function(n){var t=moment(n);return t.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId)})})(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.signalr-client.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){function t(n){function t(){n.start().catch(function(){setTimeout(function(){t()},5e3)})}abp.signalr.hubs.common=n;n.onclose(function(n){(n?abp.log.debug("Connection closed with error: "+n):abp.log.debug("Disconnected"),abp.signalr.autoReconnect)&&t()});n.on("getNotification",function(n){abp.event.trigger("abp.notifications.received",n)})}function i(){var i=abp.signalr.url||abp.appPath+"signalr";n(i,t).then(function(n){abp.log.debug("Connected to SignalR server!");abp.event.trigger("abp.signalr.connected");n.invoke("register").then(function(){abp.log.debug("Registered to the SignalR server!")})}).catch(function(n){abp.log.debug(n.message)})}function n(n,t){return abp.signalr.remoteServiceBaseUrl&&(n=abp.signalr.remoteServiceBaseUrl+n),abp.signalr.qs&&(n+=(n.indexOf("?")==-1?"?":"&")+abp.signalr.qs),function i(r){abp.log.debug("Starting connection using "+signalR.HttpTransportType[r]+" transport");var u=(new signalR.HubConnectionBuilder).withUrl(n,r).build();return t&&typeof t=="function"&&t(u),u.start().then(function(){return u}).catch(function(n){return(abp.log.debug("Cannot start the connection using "+signalR.HttpTransportType[r]+" transport. "+n.message),r!==signalR.HttpTransportType.LongPolling)?i(r+1):Promise.reject(n)})}(signalR.HttpTransportType.WebSockets)}signalR&&(abp.signalr=abp.signalr||{},abp.signalr.hubs=abp.signalr.hubs||{},abp.signalr.autoConnect=abp.signalr.autoConnect===undefined?!0:abp.signalr.autoConnect,abp.signalr.autoReconnect=abp.signalr.autoReconnect===undefined?!0:abp.signalr.autoReconnect,abp.signalr.connect=abp.signalr.connect||i,abp.signalr.startConnection=abp.signalr.startConnection||n,abp.signalr.autoConnect&&!abp.signalr.hubs.common&&abp.signalr.connect())})(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.signalr.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | namespace signalr { 4 | 5 | let autoConnect: boolean; 6 | 7 | let qs: string; 8 | 9 | let remoteServiceBaseUrl: string; 10 | 11 | let url: string; 12 | 13 | function connect(): any; 14 | 15 | function startConnection(url: string, configureConnection: Function): Promise; 16 | 17 | namespace hubs { 18 | 19 | let common: any; 20 | 21 | } 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.signalr.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function ($) { 3 | 4 | //Check if SignalR is defined 5 | if (!$ || !$.connection) { 6 | return; 7 | } 8 | 9 | //Create namespaces 10 | abp.signalr = abp.signalr || {}; 11 | abp.signalr.hubs = abp.signalr.hubs || {}; 12 | 13 | //Get the common hub 14 | abp.signalr.hubs.common = $.connection.abpCommonHub; 15 | 16 | var commonHub = abp.signalr.hubs.common; 17 | if (!commonHub) { 18 | return; 19 | } 20 | 21 | //Register to get notifications 22 | commonHub.client.getNotification = function (notification) { 23 | abp.event.trigger('abp.notifications.received', notification); 24 | }; 25 | 26 | //Connect to the server 27 | abp.signalr.connect = function() { 28 | $.connection.hub.start().done(function () { 29 | abp.log.debug('Connected to SignalR server!'); //TODO: Remove log 30 | abp.event.trigger('abp.signalr.connected'); 31 | commonHub.server.register().done(function () { 32 | abp.log.debug('Registered to the SignalR server!'); //TODO: Remove log 33 | }); 34 | }); 35 | }; 36 | 37 | if (abp.signalr.autoConnect === undefined) { 38 | abp.signalr.autoConnect = true; 39 | } 40 | 41 | if (abp.signalr.autoConnect) { 42 | abp.signalr.connect(); 43 | } 44 | 45 | //reconnect if hub disconnects 46 | $.connection.hub.disconnected(function () { 47 | if (!abp.signalr.autoConnect) { 48 | return; 49 | } 50 | 51 | setTimeout(function () { 52 | if ($.connection.hub.state === $.signalR.connectionState.disconnected) { 53 | $.connection.hub.start(); 54 | } 55 | }, 5000); 56 | }); 57 | 58 | })(jQuery); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.signalr.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(n&&n.connection){abp.signalr=abp.signalr||{};abp.signalr.hubs=abp.signalr.hubs||{};abp.signalr.hubs.common=n.connection.abpCommonHub;var t=abp.signalr.hubs.common;t&&(t.client.getNotification=function(n){abp.event.trigger("abp.notifications.received",n)},abp.signalr.connect=function(){n.connection.hub.start().done(function(){abp.log.debug("Connected to SignalR server!");abp.event.trigger("abp.signalr.connected");t.server.register().done(function(){abp.log.debug("Registered to the SignalR server!")})})},abp.signalr.autoConnect===undefined&&(abp.signalr.autoConnect=!0),abp.signalr.autoConnect&&abp.signalr.connect(),n.connection.hub.disconnected(function(){abp.signalr.autoConnect&&setTimeout(function(){n.connection.hub.state===n.signalR.connectionState.disconnected&&n.connection.hub.start()},5e3)}))}})(jQuery); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.spin.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.fn.spin&&(abp.libs=abp.libs||{},abp.libs.spinjs={spinner_config:{lines:11,length:0,width:10,radius:20,corners:1,trail:60,speed:1.2},spinner_config_inner_busy_indicator:{lines:11,length:0,width:4,radius:7,corners:1,trail:60,speed:1.2}},abp.ui.setBusy=function(n,t){var i,r,u;t=t||{};(t.always||t["finally"])&&(t={promise:t});i=$.extend({},t);n?(r=$(n),u=r.find(".abp-busy-indicator"),u.length?u.spin(abp.libs.spinjs.spinner_config_inner_busy_indicator):(i.blockUI!=!1&&abp.ui.block(n),r.spin(abp.libs.spinjs.spinner_config))):(i.blockUI!=!1&&abp.ui.block(),$("body").spin(abp.libs.spinjs.spinner_config));i.promise&&(i.promise.always?i.promise.always(function(){abp.ui.clearBusy(n)}):i.promise["finally"]&&i.promise["finally"](function(){abp.ui.clearBusy(n)}))},abp.ui.clearBusy=function(n){if(n){var t=$(n),i=t.find(".abp-busy-indicator");i.length?i.spin(!1):(abp.ui.unblock(n),t.spin(!1))}else abp.ui.unblock(),$("body").spin(!1)})})(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.sweet-alert.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(sweetAlert&&n){abp.libs=abp.libs||{};abp.libs.sweetAlert={config:{"default":{},info:{icon:"info"},success:{icon:"success"},warn:{icon:"warning"},error:{icon:"error"},confirm:{icon:"warning",title:"Are you sure?",buttons:["Cancel","Yes"]}}};var t=function(t,i,r,u,f){var e,o,s;return f=f||{},e={},r&&(e.title=r),f.isHtml?(o=document.createElement("div"),o.style="position: relative;",o.innerHTML=i,e.content=o):e.text=i,s=n.extend({},abp.libs.sweetAlert.config["default"],abp.libs.sweetAlert.config[t],e,f),n.Deferred(function(n){sweetAlert(s).then(function(t){u&&u(t);n.resolve(t)})})};abp.message.info=function(n,i,r){return t("info",n,i,null,r)};abp.message.success=function(n,i,r){return t("success",n,i,null,r)};abp.message.warn=function(n,i,r){return t("warn",n,i,null,r)};abp.message.error=function(n,i,r){return t("error",n,i,null,r)};abp.message.confirm=function(n,i,r,u){return t("confirm",n,i,r,u)};abp.event.on("abp.dynamicScriptsInitialized",function(){abp.libs.sweetAlert.config.confirm.title=abp.localization.abpWeb("AreYouSure");abp.libs.sweetAlert.config.confirm.buttons=[abp.localization.abpWeb("Cancel"),abp.localization.abpWeb("Yes")]})}})(jQuery); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.toastr.js: -------------------------------------------------------------------------------- 1 | (function (define) { 2 | define(['toastr', 'abp-web-resources'], function (toastr, abp) { 3 | return (function () { 4 | 5 | if (!toastr) { 6 | return; 7 | } 8 | 9 | if (!abp) { 10 | return; 11 | } 12 | 13 | /* DEFAULTS *************************************************/ 14 | 15 | toastr.options.positionClass = 'toast-bottom-right'; 16 | 17 | /* NOTIFICATION *********************************************/ 18 | 19 | var showNotification = function (type, message, title, options) { 20 | toastr[type](message, title, options); 21 | }; 22 | 23 | abp.notify.success = function (message, title, options) { 24 | showNotification('success', message, title, options); 25 | }; 26 | 27 | abp.notify.info = function (message, title, options) { 28 | showNotification('info', message, title, options); 29 | }; 30 | 31 | abp.notify.warn = function (message, title, options) { 32 | showNotification('warning', message, title, options); 33 | }; 34 | 35 | abp.notify.error = function (message, title, options) { 36 | showNotification('error', message, title, options); 37 | }; 38 | 39 | return abp; 40 | })(); 41 | }); 42 | }(typeof define === 'function' && define.amd 43 | ? define 44 | : function (deps, factory) { 45 | if (typeof module !== 'undefined' && module.exports) { 46 | module.exports = factory(require('toastr'), require('abp-web-resources')); 47 | } else { 48 | window.abp = factory(window.toastr, window.abp); 49 | } 50 | })); 51 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/abp.toastr.min.js: -------------------------------------------------------------------------------- 1 | (function(n){n(["toastr","abp-web-resources"],function(n,t){return function(){if(n&&t){n.options.positionClass="toast-bottom-right";var i=function(t,i,r,u){n[t](i,r,u)};return t.notify.success=function(n,t,r){i("success",n,t,r)},t.notify.info=function(n,t,r){i("info",n,t,r)},t.notify.warn=function(n,t,r){i("warning",n,t,r)},t.notify.error=function(n,t,r){i("error",n,t,r)},t}}()})})(typeof define=="function"&&define.amd?define:function(n,t){typeof module!="undefined"&&module.exports?module.exports=t(require("toastr"),require("abp-web-resources")):window.abp=t(window.toastr,window.abp)}); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/requirejs/plugins/service.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | return { 3 | load: function (name, req, onload, config) { 4 | var url = abp.appPath + 'api/AbpServiceProxies/Get?name=' + name; 5 | req([url], function (value) { 6 | onload(value); 7 | }); 8 | } 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/libs/requirejs/plugins/service.min.js: -------------------------------------------------------------------------------- 1 | define(function(){return{load:function(n,t,i){var r=abp.appPath+"api/AbpServiceProxies/Get?name="+n;t([r],function(n){i(n)})}}}); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/utils/ie10fix.js: -------------------------------------------------------------------------------- 1 | //Windows Phone 8 and Internet Explorer 10 FIX 2 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 3 | var msViewportStyle = document.createElement("style"); 4 | msViewportStyle.appendChild( 5 | document.createTextNode( 6 | "@-ms-viewport{width:auto!important}" 7 | ) 8 | ); 9 | 10 | document.getElementsByTagName("head")[0].appendChild(msViewportStyle); 11 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/scripts/utils/ie10fix.min.js: -------------------------------------------------------------------------------- 1 | if(navigator.userAgent.match(/IEMobile\/10\.0/)){var msViewportStyle=document.createElement("style");msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));document.getElementsByTagName("head")[0].appendChild(msViewportStyle)} -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.css: -------------------------------------------------------------------------------- 1 | .abp-clickable { 2 | cursor: pointer; 3 | } 4 | .abp-dock-top { 5 | left: 0; 6 | top: 0; 7 | right: 0; 8 | position: absolute; 9 | margin: 0; 10 | } 11 | .abp-dock-right { 12 | right: 0; 13 | top: 0; 14 | bottom: 0; 15 | position: absolute; 16 | margin: 0; 17 | } 18 | .abp-dock-bottom { 19 | left: 0; 20 | right: 0; 21 | bottom: 0; 22 | position: absolute; 23 | margin: 0; 24 | } 25 | .abp-dock-left { 26 | left: 0; 27 | top: 0; 28 | bottom: 0; 29 | position: absolute; 30 | margin: 0; 31 | } 32 | .abp-busy-indicator-small { 33 | width: 36px; 34 | height: 36px; 35 | } 36 | .abp-busy-indicator-small.abp-dock-left, 37 | .abp-busy-indicator-small.abp-dock-right { 38 | height: auto; 39 | } 40 | /*# sourceMappingURL=abp.css.map */ -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.css.map: -------------------------------------------------------------------------------- 1 | "{\"version\":3,\"sources\":[\"abp.less\",\"abp.mixings.less\"],\"names\":[],\"mappings\":\"AAIA;EACI,eAAA;;AAKJ;ECSI,OAAA;EACA,MAAA;EACA,QAAA;EA0CA,kBAAA;EACA,SAAA;;ADlDJ;ECWI,QAAA;EACA,MAAA;EACA,SAAA;EAoCA,kBAAA;EACA,SAAA;;AD9CJ;ECaI,OAAA;EACA,QAAA;EACA,SAAA;EA8BA,kBAAA;EACA,SAAA;;AD1CJ;ECeI,OAAA;EACA,MAAA;EACA,SAAA;EAwBA,kBAAA;EACA,SAAA;;ADhCJ;EACI,WAAA;EACA,YAAA;;AAEA,yBAAC;AACD,yBAAC;EACG,YAAA\",\"file\":\"abp.css\"}" -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.less: -------------------------------------------------------------------------------- 1 | @import "abp.mixings.less"; 2 | 3 | // COMMON STYLES ////////////////////////////////////////////////////////////// 4 | 5 | .abp-clickable { 6 | cursor: pointer; 7 | } 8 | 9 | // Docking 10 | 11 | .abp-dock-top { 12 | .abp-dock(top); 13 | } 14 | 15 | .abp-dock-right { 16 | .abp-dock(right); 17 | } 18 | 19 | .abp-dock-bottom { 20 | .abp-dock(bottom); 21 | } 22 | 23 | .abp-dock-left { 24 | .abp-dock(left); 25 | } 26 | 27 | //Busy indicator 28 | 29 | .abp-busy-indicator { 30 | 31 | } 32 | 33 | .abp-busy-indicator-small { 34 | width: 36px; 35 | height: 36px; 36 | 37 | &.abp-dock-left, 38 | &.abp-dock-right { 39 | height: auto; 40 | } 41 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.min.css: -------------------------------------------------------------------------------- 1 | .abp-clickable{cursor:pointer}.abp-dock-top{left:0;top:0;right:0;position:absolute;margin:0}.abp-dock-right{right:0;top:0;bottom:0;position:absolute;margin:0}.abp-dock-bottom{left:0;right:0;bottom:0;position:absolute;margin:0}.abp-dock-left{left:0;top:0;bottom:0;position:absolute;margin:0}.abp-busy-indicator-small{width:36px;height:36px}.abp-busy-indicator-small.abp-dock-left,.abp-busy-indicator-small.abp-dock-right{height:auto} -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.mixings.css: -------------------------------------------------------------------------------- 1 | /*# sourceMappingURL=abp.mixings.css.map */ -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.mixings.css.map: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/abp.mixings.min.css: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Abp/Framework/styles/utils/ie10fix.css: -------------------------------------------------------------------------------- 1 | @-webkit-viewport { 2 | width: device-width; 3 | } 4 | 5 | @-moz-viewport { 6 | width: device-width; 7 | } 8 | 9 | @-ms-viewport { 10 | width: device-width; 11 | } 12 | 13 | @-o-viewport { 14 | width: device-width; 15 | } 16 | 17 | @viewport 18 | 19 | { 20 | width: device-width; 21 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/app.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | var app = angular.module('app', [ 5 | 'ngAnimate', 6 | 'ngSanitize', 7 | 8 | 'ui.router', 9 | 'ui.bootstrap', 10 | 'ui.jq', 11 | 12 | 'abp' 13 | ]); 14 | 15 | //Configuration for Angular UI routing. 16 | app.config([ 17 | '$stateProvider', '$urlRouterProvider', 18 | function($stateProvider, $urlRouterProvider) { 19 | $urlRouterProvider.otherwise('/'); 20 | $stateProvider 21 | .state('home', { 22 | url: '/', 23 | templateUrl: '/App/Main/views/home/home.cshtml', 24 | menu: 'Home' //Matches to name of 'Home' menu in MyAbpZeroProjectNavigationProvider 25 | }) 26 | .state('about', { 27 | url: '/about', 28 | templateUrl: '/App/Main/views/about/about.cshtml', 29 | menu: 'About' //Matches to name of 'About' menu in MyAbpZeroProjectNavigationProvider 30 | }); 31 | } 32 | ]); 33 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/images/abp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/App/Main/images/abp-logo.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/main.css: -------------------------------------------------------------------------------- 1 | /* Application specific styles */ 2 | body { 3 | padding-top: 80px; 4 | } 5 | /* Styles for angular ui transition animations */ 6 | .angular-animation-container { 7 | position: relative; 8 | } 9 | .shuffle-animation.ng-enter, 10 | .shuffle-animation.ng-leave { 11 | position: absolute; 12 | } 13 | .shuffle-animation.ng-enter { 14 | -moz-transition: ease-out all 0.3s 0.4s; 15 | -o-transition: ease-out all 0.3s 0.4s; 16 | -webkit-transition: ease-out all 0.3s 0.4s; 17 | transition: ease-out all 0.3s 0.4s; 18 | left: 2em; 19 | opacity: 0; 20 | } 21 | .shuffle-animation.ng-enter.ng-enter-active { 22 | left: 0; 23 | opacity: 1; 24 | } 25 | .shuffle-animation.ng-leave { 26 | -moz-transition: 0.3s ease-out all; 27 | -o-transition: 0.3s ease-out all; 28 | -webkit-transition: 0.3s ease-out all; 29 | transition: 0.3s ease-out all; 30 | left: 0; 31 | opacity: 1; 32 | } 33 | .shuffle-animation.ng-leave.ng-leave-active { 34 | left: 2em; 35 | opacity: 0; 36 | } 37 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/main.less: -------------------------------------------------------------------------------- 1 | /* Application specific styles */ 2 | 3 | body { 4 | padding-top: 80px; 5 | } 6 | 7 | /* Styles for angular ui transition animations */ 8 | 9 | .angular-animation-container { 10 | position: relative; 11 | } 12 | 13 | .shuffle-animation.ng-enter, 14 | .shuffle-animation.ng-leave { 15 | position: absolute; 16 | } 17 | 18 | .shuffle-animation.ng-enter { 19 | -moz-transition: ease-out all 0.3s 0.4s; 20 | -o-transition: ease-out all 0.3s 0.4s; 21 | -webkit-transition: ease-out all 0.3s 0.4s; 22 | transition: ease-out all 0.3s 0.4s; 23 | left: 2em; 24 | opacity: 0; 25 | 26 | &.ng-enter-active { 27 | left: 0; 28 | opacity: 1; 29 | } 30 | } 31 | 32 | .shuffle-animation.ng-leave { 33 | -moz-transition: 0.3s ease-out all; 34 | -o-transition: 0.3s ease-out all; 35 | -webkit-transition: 0.3s ease-out all; 36 | transition: 0.3s ease-out all; 37 | left: 0; 38 | opacity: 1; 39 | 40 | &.ng-leave-active { 41 | left: 2em; 42 | opacity: 0; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/main.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:80px}.angular-animation-container{position:relative}.shuffle-animation.ng-enter,.shuffle-animation.ng-leave{position:absolute}.shuffle-animation.ng-enter{-moz-transition:ease-out all .3s .4s;-o-transition:ease-out all .3s .4s;-webkit-transition:ease-out all .3s .4s;transition:ease-out all .3s .4s;left:2em;opacity:0}.shuffle-animation.ng-enter.ng-enter-active{left:0;opacity:1}.shuffle-animation.ng-leave{-moz-transition:.3s ease-out all;-o-transition:.3s ease-out all;-webkit-transition:.3s ease-out all;transition:.3s ease-out all;left:0;opacity:1}.shuffle-animation.ng-leave.ng-leave-active{left:2em;opacity:0} -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/services/appSession.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app').factory('appSession', [ 3 | function () { 4 | 5 | var _session = { 6 | user: null, 7 | tenant: null 8 | }; 9 | 10 | abp.services.app.session.getCurrentLoginInformations({ async: false }).done(function (result) { 11 | _session.user = result.user; 12 | _session.tenant = result.tenant; 13 | }); 14 | 15 | return _session; 16 | } 17 | ]); 18 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/about/about.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |

@string.Format(L("AboutFormat"), "ASP.NET Boilerplate")

3 |

@Html.Raw(L("About_AspNetBoilerplateDescription"))

4 |

@L("ForMoreInformation"): aspnetboilerplate.com.

5 |
-------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/about/about.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.about'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function ($scope) { 5 | var vm = this; 6 | //About logic... 7 | } 8 | ]); 9 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/blog/blog.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |
4 |
5 |

6 | Blog Posts 7 |

8 |
9 |
10 |
    11 |
  • 12 |

    {{post.title}}

    13 |

    {{post.content}}

    14 |
  • 15 |
16 |
17 |
18 |
19 |
-------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/blog/blog.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | angular.module('app').config([ 4 | '$stateProvider', 5 | function ($stateProvider) { 6 | $stateProvider 7 | .state('blog', { 8 | url: '/blog', 9 | templateUrl: '/App/Main/views/blog/blog.cshtml', 10 | menu: 'SampleBlog.AdminPage' 11 | }); 12 | } 13 | ]); 14 | 15 | angular.module('app').controller('app.views.blog', [ 16 | '$scope', 'abp.services.blog.post', 17 | function ($scope, postService) { 18 | var vm = this; 19 | 20 | vm.posts = []; 21 | 22 | postService.getPosts({ 23 | maxResultCount: 1000 24 | }).then(function (result) { 25 | vm.posts = result.data.items; 26 | }); 27 | } 28 | ]); 29 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/home/home.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |

@L("WellcomeMessage")

3 |

@L("Home_ThisIsATemplate")

4 |
5 |
6 |

ASP.NET MVC

7 |

8 | @L("Home_AspNetDescription") 9 |

10 | @L("LearnMore").. 11 |
12 |
13 |

ASP.NET Boilerplate

14 |

15 | @L("Home_AspNetBoilerplateDescription") 16 |

17 | @L("LearnMore").. 18 |
19 |
20 |

Angularjs

21 |

22 | @L("Home_AngularDescription") 23 |

24 | @L("LearnMore").. 25 |
26 |
27 |
-------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/home/home.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var controllerId = 'app.views.home'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function($scope) { 5 | var vm = this; 6 | //Home logic... 7 | } 8 | ]); 9 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/layout/header.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.layout.header'; 3 | angular.module('app').controller(controllerId, [ 4 | '$rootScope', '$state', 'appSession', 5 | function ($rootScope, $state, appSession) { 6 | var vm = this; 7 | 8 | vm.languages = abp.localization.languages; 9 | vm.currentLanguage = abp.localization.currentLanguage; 10 | 11 | vm.menu = abp.nav.menus.MainMenu; 12 | vm.currentMenuName = $state.current.menu; 13 | 14 | $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) { 15 | vm.currentMenuName = toState.menu; 16 | }); 17 | 18 | vm.getShownUserName = function () { 19 | if (!abp.multiTenancy.isEnabled) { 20 | return appSession.user.userName; 21 | } else { 22 | if (appSession.tenant) { 23 | return appSession.tenant.tenancyName + '\\' + appSession.user.userName; 24 | } else { 25 | return '.\\' + appSession.user.userName; 26 | } 27 | } 28 | }; 29 | } 30 | ]); 31 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/layout/layout.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Threading 2 | @using System.Web.Optimization 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | MyAbpZeroProject 13 | 14 | 15 | 16 | @Styles.Render("~/Bundles/App/vendor/css") 17 | @Styles.Render("~/Bundles/App/Main/css") 18 | 19 | 23 | 24 | 25 | 29 | @Scripts.Render("~/Bundles/App/vendor/js") 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | @Scripts.Render("~/Bundles/App/Main/js") 42 | 43 | 44 | 45 | 46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | 57 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/views/layout/layout.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.layout'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function ($scope) { 5 | var vm = this; 6 | //Layout logic... 7 | }]); 8 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App/Main/web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App_Start/MyAbpZeroProjectNavigationProvider.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Navigation; 2 | using Abp.Localization; 3 | 4 | namespace MyAbpZeroProject.Web 5 | { 6 | /// 7 | /// This class defines menus for the application. 8 | /// It uses ABP's menu system. 9 | /// When you add menu items here, they are automatically appear in angular application. 10 | /// See .cshtml and .js files under App/Main/views/layout/header to know how to render menu. 11 | /// 12 | public class MyAbpZeroProjectNavigationProvider : NavigationProvider 13 | { 14 | public override void SetNavigation(INavigationProviderContext context) 15 | { 16 | context.Manager.MainMenu 17 | .AddItem( 18 | new MenuItemDefinition( 19 | "Home", 20 | new LocalizableString("HomePage", MyAbpZeroProjectConsts.LocalizationSourceName), 21 | url: "#/", 22 | icon: "fa fa-home" 23 | ) 24 | ).AddItem( 25 | new MenuItemDefinition( 26 | "About", 27 | new LocalizableString("About", MyAbpZeroProjectConsts.LocalizationSourceName), 28 | url: "#/about", 29 | icon: "fa fa-info" 30 | ) 31 | ); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App_Start/MyAbpZeroProjectWebModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Web; 3 | using System.Web.Mvc; 4 | using System.Web.Optimization; 5 | using System.Web.Routing; 6 | using Abp.Localization; 7 | using Abp.Localization.Dictionaries; 8 | using Abp.Localization.Dictionaries.Xml; 9 | using Abp.Modules; 10 | using Abp.Reflection.Extensions; 11 | using Abp.Samples.Blog.EntityFramework; 12 | using Abp.Samples.Blog.Web; 13 | using Abp.Web.Mvc; 14 | 15 | namespace MyAbpZeroProject.Web 16 | { 17 | [DependsOn( 18 | typeof(MyAbpZeroProjectDataModule), 19 | typeof(MyAbpZeroProjectApplicationModule), 20 | typeof(MyAbpZeroProjectWebApiModule), 21 | typeof(AbpSampleBlogWebModule), 22 | typeof(AbpSampleBlogEntityFrameworkModule), 23 | typeof(AbpWebMvcModule) 24 | )] 25 | public class MyAbpZeroProjectWebModule : AbpModule 26 | { 27 | public override void PreInitialize() 28 | { 29 | //Add/remove languages for your application 30 | Configuration.Localization.Languages.Add(new LanguageInfo("en", "English", "famfamfam-flag-england", true)); 31 | Configuration.Localization.Languages.Add(new LanguageInfo("tr", "Türkçe", "famfamfam-flag-tr")); 32 | Configuration.Localization.Languages.Add(new LanguageInfo("zh-CN", "简体中文", "famfamfam-flag-cn")); 33 | 34 | //Add/remove localization sources here 35 | Configuration.Localization.Sources.Add( 36 | new DictionaryBasedLocalizationSource( 37 | MyAbpZeroProjectConsts.LocalizationSourceName, 38 | new XmlEmbeddedFileLocalizationDictionaryProvider( 39 | typeof(MyAbpZeroProjectWebModule).GetAssembly(), 40 | HttpContext.Current.Server.MapPath("~/Localization/MyAbpZeroProject") 41 | ) 42 | )); 43 | 44 | //Configure navigation/menu 45 | Configuration.Navigation.Providers.Add(); 46 | } 47 | 48 | public override void Initialize() 49 | { 50 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 51 | 52 | AreaRegistration.RegisterAllAreas(); 53 | RouteConfig.RegisterRoutes(RouteTable.Routes); 54 | BundleConfig.RegisterBundles(BundleTable.Bundles); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using System.Web.Mvc; 3 | using System.Web.Routing; 4 | 5 | namespace MyAbpZeroProject.Web 6 | { 7 | public static class RouteConfig 8 | { 9 | public static void RegisterRoutes(RouteCollection routes) 10 | { 11 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 12 | 13 | //ASP.NET Web API Route Config 14 | routes.MapHttpRoute( 15 | name: "DefaultApi", 16 | routeTemplate: "api/{controller}/{id}", 17 | defaults: new { id = RouteParameter.Optional } 18 | ); 19 | 20 | routes.MapRoute( 21 | name: "Default", 22 | url: "{controller}/{action}/{id}", 23 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 24 | ); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/App_Start/Startup.cs: -------------------------------------------------------------------------------- 1 | using Abp.Owin; 2 | using MyAbpZeroProject.Web; 3 | using Microsoft.AspNet.Identity; 4 | using Microsoft.Owin; 5 | using Microsoft.Owin.Security.Cookies; 6 | using Owin; 7 | 8 | [assembly: OwinStartup(typeof(Startup))] 9 | 10 | namespace MyAbpZeroProject.Web 11 | { 12 | public class Startup 13 | { 14 | public void Configuration(IAppBuilder app) 15 | { 16 | app.UseAbp(); 17 | 18 | // Enable the application to use a cookie to store information for the signed in user 19 | app.UseCookieAuthentication(new CookieAuthenticationOptions 20 | { 21 | AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 22 | LoginPath = new PathString("/Account/Login") 23 | }); 24 | 25 | // Use a cookie to temporarily store information about a user logging in with a third party login provider 26 | app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/flags/famfamfam-flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/flags/famfamfam-flags.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/accordion.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Accordion 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/accordion/#theming 10 | */ 11 | .ui-accordion .ui-accordion-header { 12 | display: block; 13 | cursor: pointer; 14 | position: relative; 15 | margin: 2px 0 0 0; 16 | padding: .5em .5em .5em .7em; 17 | min-height: 0; /* support: IE7 */ 18 | font-size: 100%; 19 | } 20 | .ui-accordion .ui-accordion-icons { 21 | padding-left: 2.2em; 22 | } 23 | .ui-accordion .ui-accordion-icons .ui-accordion-icons { 24 | padding-left: 2.2em; 25 | } 26 | .ui-accordion .ui-accordion-header .ui-accordion-header-icon { 27 | position: absolute; 28 | left: .5em; 29 | top: 50%; 30 | margin-top: -8px; 31 | } 32 | .ui-accordion .ui-accordion-content { 33 | padding: 1em 2.2em; 34 | border-top: 0; 35 | overflow: auto; 36 | } 37 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/all.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import "base.css"; 12 | @import "theme.css"; 13 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/autocomplete.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Autocomplete 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/autocomplete/#theming 10 | */ 11 | .ui-autocomplete { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | cursor: default; 16 | } 17 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/base.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import url("core.css"); 12 | 13 | @import url("accordion.css"); 14 | @import url("autocomplete.css"); 15 | @import url("button.css"); 16 | @import url("datepicker.css"); 17 | @import url("dialog.css"); 18 | @import url("draggable.css"); 19 | @import url("menu.css"); 20 | @import url("progressbar.css"); 21 | @import url("resizable.css"); 22 | @import url("selectable.css"); 23 | @import url("selectmenu.css"); 24 | @import url("sortable.css"); 25 | @import url("slider.css"); 26 | @import url("spinner.css"); 27 | @import url("tabs.css"); 28 | @import url("tooltip.css"); 29 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/core.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | 12 | /* Layout helpers 13 | ----------------------------------*/ 14 | .ui-helper-hidden { 15 | display: none; 16 | } 17 | .ui-helper-hidden-accessible { 18 | border: 0; 19 | clip: rect(0 0 0 0); 20 | height: 1px; 21 | margin: -1px; 22 | overflow: hidden; 23 | padding: 0; 24 | position: absolute; 25 | width: 1px; 26 | } 27 | .ui-helper-reset { 28 | margin: 0; 29 | padding: 0; 30 | border: 0; 31 | outline: 0; 32 | line-height: 1.3; 33 | text-decoration: none; 34 | font-size: 100%; 35 | list-style: none; 36 | } 37 | .ui-helper-clearfix:before, 38 | .ui-helper-clearfix:after { 39 | content: ""; 40 | display: table; 41 | border-collapse: collapse; 42 | } 43 | .ui-helper-clearfix:after { 44 | clear: both; 45 | } 46 | .ui-helper-clearfix { 47 | min-height: 0; /* support: IE7 */ 48 | } 49 | .ui-helper-zfix { 50 | width: 100%; 51 | height: 100%; 52 | top: 0; 53 | left: 0; 54 | position: absolute; 55 | opacity: 0; 56 | filter:Alpha(Opacity=0); /* support: IE8 */ 57 | } 58 | 59 | .ui-front { 60 | z-index: 100; 61 | } 62 | 63 | 64 | /* Interaction Cues 65 | ----------------------------------*/ 66 | .ui-state-disabled { 67 | cursor: default !important; 68 | } 69 | 70 | 71 | /* Icons 72 | ----------------------------------*/ 73 | 74 | /* states and images */ 75 | .ui-icon { 76 | display: block; 77 | text-indent: -99999px; 78 | overflow: hidden; 79 | background-repeat: no-repeat; 80 | } 81 | 82 | 83 | /* Misc visuals 84 | ----------------------------------*/ 85 | 86 | /* Overlays */ 87 | .ui-widget-overlay { 88 | position: fixed; 89 | top: 0; 90 | left: 0; 91 | width: 100%; 92 | height: 100%; 93 | } 94 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/dialog.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Dialog 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/dialog/#theming 10 | */ 11 | .ui-dialog { 12 | overflow: hidden; 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | padding: .2em; 17 | outline: 0; 18 | } 19 | .ui-dialog .ui-dialog-titlebar { 20 | padding: .4em 1em; 21 | position: relative; 22 | } 23 | .ui-dialog .ui-dialog-title { 24 | float: left; 25 | margin: .1em 0; 26 | white-space: nowrap; 27 | width: 90%; 28 | overflow: hidden; 29 | text-overflow: ellipsis; 30 | } 31 | .ui-dialog .ui-dialog-titlebar-close { 32 | position: absolute; 33 | right: .3em; 34 | top: 50%; 35 | width: 20px; 36 | margin: -10px 0 0 0; 37 | padding: 1px; 38 | height: 20px; 39 | } 40 | .ui-dialog .ui-dialog-content { 41 | position: relative; 42 | border: 0; 43 | padding: .5em 1em; 44 | background: none; 45 | overflow: auto; 46 | } 47 | .ui-dialog .ui-dialog-buttonpane { 48 | text-align: left; 49 | border-width: 1px 0 0 0; 50 | background-image: none; 51 | margin-top: .5em; 52 | padding: .3em 1em .5em .4em; 53 | } 54 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { 55 | float: right; 56 | } 57 | .ui-dialog .ui-dialog-buttonpane button { 58 | margin: .5em .4em .5em 0; 59 | cursor: pointer; 60 | } 61 | .ui-dialog .ui-resizable-se { 62 | width: 12px; 63 | height: 12px; 64 | right: -5px; 65 | bottom: -5px; 66 | background-position: 16px 16px; 67 | } 68 | .ui-draggable .ui-dialog-titlebar { 69 | cursor: move; 70 | } 71 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/draggable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Draggable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-draggable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Content/themes/base/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/menu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Menu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/menu/#theming 10 | */ 11 | .ui-menu { 12 | list-style: none; 13 | padding: 0; 14 | margin: 0; 15 | display: block; 16 | outline: none; 17 | } 18 | .ui-menu .ui-menu { 19 | position: absolute; 20 | } 21 | .ui-menu .ui-menu-item { 22 | position: relative; 23 | margin: 0; 24 | padding: 3px 1em 3px .4em; 25 | cursor: pointer; 26 | min-height: 0; /* support: IE7 */ 27 | /* support: IE10, see #8844 */ 28 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); 29 | } 30 | .ui-menu .ui-menu-divider { 31 | margin: 5px 0; 32 | height: 0; 33 | font-size: 0; 34 | line-height: 0; 35 | border-width: 1px 0 0 0; 36 | } 37 | .ui-menu .ui-state-focus, 38 | .ui-menu .ui-state-active { 39 | margin: -1px; 40 | } 41 | 42 | /* icon support */ 43 | .ui-menu-icons { 44 | position: relative; 45 | } 46 | .ui-menu-icons .ui-menu-item { 47 | padding-left: 2em; 48 | } 49 | 50 | /* left-aligned */ 51 | .ui-menu .ui-icon { 52 | position: absolute; 53 | top: 0; 54 | bottom: 0; 55 | left: .2em; 56 | margin: auto 0; 57 | } 58 | 59 | /* right-aligned */ 60 | .ui-menu .ui-menu-icon { 61 | left: auto; 62 | right: 0; 63 | } 64 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/resizable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Resizable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-resizable { 10 | position: relative; 11 | } 12 | .ui-resizable-handle { 13 | position: absolute; 14 | font-size: 0.1px; 15 | display: block; 16 | -ms-touch-action: none; 17 | touch-action: none; 18 | } 19 | .ui-resizable-disabled .ui-resizable-handle, 20 | .ui-resizable-autohide .ui-resizable-handle { 21 | display: none; 22 | } 23 | .ui-resizable-n { 24 | cursor: n-resize; 25 | height: 7px; 26 | width: 100%; 27 | top: -5px; 28 | left: 0; 29 | } 30 | .ui-resizable-s { 31 | cursor: s-resize; 32 | height: 7px; 33 | width: 100%; 34 | bottom: -5px; 35 | left: 0; 36 | } 37 | .ui-resizable-e { 38 | cursor: e-resize; 39 | width: 7px; 40 | right: -5px; 41 | top: 0; 42 | height: 100%; 43 | } 44 | .ui-resizable-w { 45 | cursor: w-resize; 46 | width: 7px; 47 | left: -5px; 48 | top: 0; 49 | height: 100%; 50 | } 51 | .ui-resizable-se { 52 | cursor: se-resize; 53 | width: 12px; 54 | height: 12px; 55 | right: 1px; 56 | bottom: 1px; 57 | } 58 | .ui-resizable-sw { 59 | cursor: sw-resize; 60 | width: 9px; 61 | height: 9px; 62 | left: -5px; 63 | bottom: -5px; 64 | } 65 | .ui-resizable-nw { 66 | cursor: nw-resize; 67 | width: 9px; 68 | height: 9px; 69 | left: -5px; 70 | top: -5px; 71 | } 72 | .ui-resizable-ne { 73 | cursor: ne-resize; 74 | width: 9px; 75 | height: 9px; 76 | right: -5px; 77 | top: -5px; 78 | } 79 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/selectable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-selectable { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | .ui-selectable-helper { 14 | position: absolute; 15 | z-index: 100; 16 | border: 1px dotted black; 17 | } 18 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/selectmenu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectmenu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/selectmenu/#theming 10 | */ 11 | .ui-selectmenu-menu { 12 | padding: 0; 13 | margin: 0; 14 | position: absolute; 15 | top: 0; 16 | left: 0; 17 | display: none; 18 | } 19 | .ui-selectmenu-menu .ui-menu { 20 | overflow: auto; 21 | /* Support: IE7 */ 22 | overflow-x: hidden; 23 | padding-bottom: 1px; 24 | } 25 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { 26 | font-size: 1em; 27 | font-weight: bold; 28 | line-height: 1.5; 29 | padding: 2px 0.4em; 30 | margin: 0.5em 0 0 0; 31 | height: auto; 32 | border: 0; 33 | } 34 | .ui-selectmenu-open { 35 | display: block; 36 | } 37 | .ui-selectmenu-button { 38 | display: inline-block; 39 | overflow: hidden; 40 | position: relative; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | .ui-selectmenu-button span.ui-icon { 45 | right: 0.5em; 46 | left: auto; 47 | margin-top: -8px; 48 | position: absolute; 49 | top: 50%; 50 | } 51 | .ui-selectmenu-button span.ui-selectmenu-text { 52 | text-align: left; 53 | padding: 0.4em 2.1em 0.4em 1em; 54 | display: block; 55 | line-height: 1.4; 56 | overflow: hidden; 57 | text-overflow: ellipsis; 58 | white-space: nowrap; 59 | } 60 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/slider.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Slider 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/slider/#theming 10 | */ 11 | .ui-slider { 12 | position: relative; 13 | text-align: left; 14 | } 15 | .ui-slider .ui-slider-handle { 16 | position: absolute; 17 | z-index: 2; 18 | width: 1.2em; 19 | height: 1.2em; 20 | cursor: default; 21 | -ms-touch-action: none; 22 | touch-action: none; 23 | } 24 | .ui-slider .ui-slider-range { 25 | position: absolute; 26 | z-index: 1; 27 | font-size: .7em; 28 | display: block; 29 | border: 0; 30 | background-position: 0 0; 31 | } 32 | 33 | /* support: IE8 - See #6727 */ 34 | .ui-slider.ui-state-disabled .ui-slider-handle, 35 | .ui-slider.ui-state-disabled .ui-slider-range { 36 | filter: inherit; 37 | } 38 | 39 | .ui-slider-horizontal { 40 | height: .8em; 41 | } 42 | .ui-slider-horizontal .ui-slider-handle { 43 | top: -.3em; 44 | margin-left: -.6em; 45 | } 46 | .ui-slider-horizontal .ui-slider-range { 47 | top: 0; 48 | height: 100%; 49 | } 50 | .ui-slider-horizontal .ui-slider-range-min { 51 | left: 0; 52 | } 53 | .ui-slider-horizontal .ui-slider-range-max { 54 | right: 0; 55 | } 56 | 57 | .ui-slider-vertical { 58 | width: .8em; 59 | height: 100px; 60 | } 61 | .ui-slider-vertical .ui-slider-handle { 62 | left: -.3em; 63 | margin-left: 0; 64 | margin-bottom: -.6em; 65 | } 66 | .ui-slider-vertical .ui-slider-range { 67 | left: 0; 68 | width: 100%; 69 | } 70 | .ui-slider-vertical .ui-slider-range-min { 71 | bottom: 0; 72 | } 73 | .ui-slider-vertical .ui-slider-range-max { 74 | top: 0; 75 | } 76 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/sortable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Sortable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-sortable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/spinner.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Spinner 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/spinner/#theming 10 | */ 11 | .ui-spinner { 12 | position: relative; 13 | display: inline-block; 14 | overflow: hidden; 15 | padding: 0; 16 | vertical-align: middle; 17 | } 18 | .ui-spinner-input { 19 | border: none; 20 | background: none; 21 | color: inherit; 22 | padding: 0; 23 | margin: .2em 0; 24 | vertical-align: middle; 25 | margin-left: .4em; 26 | margin-right: 22px; 27 | } 28 | .ui-spinner-button { 29 | width: 16px; 30 | height: 50%; 31 | font-size: .5em; 32 | padding: 0; 33 | margin: 0; 34 | text-align: center; 35 | position: absolute; 36 | cursor: default; 37 | display: block; 38 | overflow: hidden; 39 | right: 0; 40 | } 41 | /* more specificity required here to override default borders */ 42 | .ui-spinner a.ui-spinner-button { 43 | border-top: none; 44 | border-bottom: none; 45 | border-right: none; 46 | } 47 | /* vertically center icon */ 48 | .ui-spinner .ui-icon { 49 | position: absolute; 50 | margin-top: -8px; 51 | top: 50%; 52 | left: 0; 53 | } 54 | .ui-spinner-up { 55 | top: 0; 56 | } 57 | .ui-spinner-down { 58 | bottom: 0; 59 | } 60 | 61 | /* TR overrides */ 62 | .ui-spinner .ui-icon-triangle-1-s { 63 | /* need to fix icons sprite */ 64 | background-position: -65px -16px; 65 | } 66 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/tabs.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tabs 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tabs/#theming 10 | */ 11 | .ui-tabs { 12 | position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 13 | padding: .2em; 14 | } 15 | .ui-tabs .ui-tabs-nav { 16 | margin: 0; 17 | padding: .2em .2em 0; 18 | } 19 | .ui-tabs .ui-tabs-nav li { 20 | list-style: none; 21 | float: left; 22 | position: relative; 23 | top: 0; 24 | margin: 1px .2em 0 0; 25 | border-bottom-width: 0; 26 | padding: 0; 27 | white-space: nowrap; 28 | } 29 | .ui-tabs .ui-tabs-nav .ui-tabs-anchor { 30 | float: left; 31 | padding: .5em 1em; 32 | text-decoration: none; 33 | } 34 | .ui-tabs .ui-tabs-nav li.ui-tabs-active { 35 | margin-bottom: -1px; 36 | padding-bottom: 1px; 37 | } 38 | .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, 39 | .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, 40 | .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { 41 | cursor: text; 42 | } 43 | .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { 44 | cursor: pointer; 45 | } 46 | .ui-tabs .ui-tabs-panel { 47 | display: block; 48 | border-width: 0; 49 | padding: 1em 1.4em; 50 | background: none; 51 | } 52 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/themes/base/tooltip.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tooltip 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tooltip/#theming 10 | */ 11 | .ui-tooltip { 12 | padding: 8px; 13 | position: absolute; 14 | z-index: 9999; 15 | max-width: 300px; 16 | -webkit-box-shadow: 0 0 5px #aaa; 17 | box-shadow: 0 0 5px #aaa; 18 | } 19 | body .ui-tooltip { 20 | border-width: 2px; 21 | } 22 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Content/ui-bootstrap-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | .ng-animate.item:not(.left):not(.right) { 4 | -webkit-transition: 0s ease-in-out left; 5 | transition: 0s ease-in-out left 6 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | using Abp.Web.Mvc.Authorization; 3 | 4 | namespace MyAbpZeroProject.Web.Controllers 5 | { 6 | [AbpMvcAuthorize] 7 | public class HomeController : MyAbpZeroProjectControllerBase 8 | { 9 | public ActionResult Index() 10 | { 11 | return View("~/App/Main/views/layout/layout.cshtml"); //Layout of the angular application. 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Controllers/MyAbpZeroProjectControllerBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Controllers; 2 | 3 | namespace MyAbpZeroProject.Web.Controllers 4 | { 5 | /// 6 | /// Derive all Controllers from this class. 7 | /// 8 | public abstract class MyAbpZeroProjectControllerBase : AbpController 9 | { 10 | protected MyAbpZeroProjectControllerBase() 11 | { 12 | LocalizationSourceName = MyAbpZeroProjectConsts.LocalizationSourceName; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MyAbpZeroProject.Web.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Abp.Web; 3 | using Castle.Facilities.Logging; 4 | 5 | namespace MyAbpZeroProject.Web 6 | { 7 | public class MvcApplication : AbpWebApplication 8 | { 9 | protected override void Application_Start(object sender, EventArgs e) 10 | { 11 | AbpBootstrapper.IocManager 12 | .IocContainer 13 | .AddFacility(f => f.UseLog4Net() 14 | .WithConfig("log4net.config")); 15 | 16 | base.Application_Start(sender, e); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/Icon.png -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Localization/MyAbpZeroProject/MyAbpZeroProject-zh-CN.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Localization/MyAbpZeroProject/MyAbpZeroProject.tr.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Localization/MyAbpZeroProject/MyAbpZeroProject.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Models/Account/LoginFormViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyAbpZeroProject.Web.Models.Account 2 | { 3 | public class LoginFormViewModel 4 | { 5 | public string ReturnUrl { get; set; } 6 | 7 | public bool IsMultiTenancyEnabled { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Models/Account/LoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace MyAbpZeroProject.Web.Models.Account 4 | { 5 | public class LoginViewModel 6 | { 7 | public string TenancyName { get; set; } 8 | 9 | [Required] 10 | public string UsernameOrEmailAddress { get; set; } 11 | 12 | [Required] 13 | public string Password { get; set; } 14 | 15 | public bool RememberMe { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.Web")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.Web")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("bdd1e3b3-68ea-4a2b-ab87-e25fca43e7f7")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Revision and Build Numbers 34 | // by using the '*' as shown below: 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/READ_ME.txt: -------------------------------------------------------------------------------- 1 | Running migrations (specify Password): 2 | 3 | Update-Database -ConnectionString "Server=localhost; Database=MyAbpZeroProject; User=sa; Password=;" -ConnectionProviderName "System.Data.SqlClient" -ProjectName "Abp.Samples.Blog.EntityFramework" -Verbose -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/angular-cookies.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.4.2 3 | (c) 2010-2015 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(p,g,l){'use strict';function m(b,a,f){var c=f.baseHref(),k=b[0];return function(b,d,e){var f,h;e=e||{};h=e.expires;f=g.isDefined(e.path)?e.path:c;d===l&&(h="Thu, 01 Jan 1970 00:00:00 GMT",d="");g.isString(h)&&(h=new Date(h));d=encodeURIComponent(b)+"="+encodeURIComponent(d);d=d+(f?";path="+f:"")+(e.domain?";domain="+e.domain:"");d+=h?";expires="+h.toUTCString():"";d+=e.secure?";secure":"";e=d.length+1;4096 4096 bytes)!");k.cookie=d}}g.module("ngCookies",["ng"]).provider("$cookies",[function(){var b=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(a,f){return{get:function(c){return a()[c]},getObject:function(c){return(c=this.get(c))?g.fromJson(c):c},getAll:function(){return a()},put:function(c,a,n){f(c,a,n?g.extend({},b,n):b)},putObject:function(c,b,a){this.put(c,g.toJson(b),a)},remove:function(a,k){f(a,l,k?g.extend({},b,k):b)}}}]}]);g.module("ngCookies").factory("$cookieStore", 8 | ["$cookies",function(b){return{get:function(a){return b.getObject(a)},put:function(a,f){b.putObject(a,f)},remove:function(a){b.remove(a)}}}]);m.$inject=["$document","$log","$browser"];g.module("ngCookies").provider("$$cookieWriter",function(){this.$get=m})})(window,window.angular); 9 | //# sourceMappingURL=angular-cookies.min.js.map 10 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | 15 | .ng-animate-shim { 16 | visibility:hidden; 17 | } 18 | 19 | .ng-anchor { 20 | position:absolute; 21 | } 22 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/angular-loader.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.4.2 3 | (c) 2010-2015 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(){'use strict';function d(b){return function(){var a=arguments[0],e;e="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.2/"+(b?b+"/":"")+a;for(a=1;ae;e++)for(var g=d(c[e]),h=0,i=g.length;i>h;h++){var j=g[h];b.createElement(j)}}(window,document); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_id-id.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "AM", 8 | "PM" 9 | ], 10 | "DAY": [ 11 | "Minggu", 12 | "Senin", 13 | "Selasa", 14 | "Rabu", 15 | "Kamis", 16 | "Jumat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "Sebelum Masehi", 21 | "M" 22 | ], 23 | "ERAS": [ 24 | "SM", 25 | "M" 26 | ], 27 | "FIRSTDAYOFWEEK": 6, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Maret", 32 | "April", 33 | "Mei", 34 | "Juni", 35 | "Juli", 36 | "Agustus", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Desember" 41 | ], 42 | "SHORTDAY": [ 43 | "Min", 44 | "Sen", 45 | "Sel", 46 | "Rab", 47 | "Kam", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mar", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Agt", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Des" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, dd MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y HH.mm.ss", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "HH.mm.ss", 74 | "short": "dd/MM/yy HH.mm", 75 | "shortDate": "dd/MM/yy", 76 | "shortTime": "HH.mm" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "Rp", 80 | "DECIMAL_SEP": ",", 81 | "GROUP_SEP": ".", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "id-id", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_id.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "AM", 8 | "PM" 9 | ], 10 | "DAY": [ 11 | "Minggu", 12 | "Senin", 13 | "Selasa", 14 | "Rabu", 15 | "Kamis", 16 | "Jumat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "Sebelum Masehi", 21 | "M" 22 | ], 23 | "ERAS": [ 24 | "SM", 25 | "M" 26 | ], 27 | "FIRSTDAYOFWEEK": 6, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Maret", 32 | "April", 33 | "Mei", 34 | "Juni", 35 | "Juli", 36 | "Agustus", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Desember" 41 | ], 42 | "SHORTDAY": [ 43 | "Min", 44 | "Sen", 45 | "Sel", 46 | "Rab", 47 | "Kam", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mar", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Agt", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Des" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, dd MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y HH.mm.ss", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "HH.mm.ss", 74 | "short": "dd/MM/yy HH.mm", 75 | "shortDate": "dd/MM/yy", 76 | "shortTime": "HH.mm" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "Rp", 80 | "DECIMAL_SEP": ",", 81 | "GROUP_SEP": ".", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "id", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_in.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "AM", 8 | "PM" 9 | ], 10 | "DAY": [ 11 | "Minggu", 12 | "Senin", 13 | "Selasa", 14 | "Rabu", 15 | "Kamis", 16 | "Jumat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "Sebelum Masehi", 21 | "M" 22 | ], 23 | "ERAS": [ 24 | "SM", 25 | "M" 26 | ], 27 | "FIRSTDAYOFWEEK": 6, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Maret", 32 | "April", 33 | "Mei", 34 | "Juni", 35 | "Juli", 36 | "Agustus", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Desember" 41 | ], 42 | "SHORTDAY": [ 43 | "Min", 44 | "Sen", 45 | "Sel", 46 | "Rab", 47 | "Kam", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mar", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Agt", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Des" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, dd MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y HH.mm.ss", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "HH.mm.ss", 74 | "short": "dd/MM/yy HH.mm", 75 | "shortDate": "dd/MM/yy", 76 | "shortTime": "HH.mm" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "Rp", 80 | "DECIMAL_SEP": ",", 81 | "GROUP_SEP": ".", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "in", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_ms-latn-bn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "PG", 8 | "PTG" 9 | ], 10 | "DAY": [ 11 | "Ahad", 12 | "Isnin", 13 | "Selasa", 14 | "Rabu", 15 | "Khamis", 16 | "Jumaat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "S.M.", 21 | "TM" 22 | ], 23 | "ERAS": [ 24 | "S.M.", 25 | "TM" 26 | ], 27 | "FIRSTDAYOFWEEK": 0, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Mac", 32 | "April", 33 | "Mei", 34 | "Jun", 35 | "Julai", 36 | "Ogos", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Disember" 41 | ], 42 | "SHORTDAY": [ 43 | "Ahd", 44 | "Isn", 45 | "Sel", 46 | "Rab", 47 | "Kha", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mac", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Ogo", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Dis" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "dd MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y h:mm:ss a", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "h:mm:ss a", 74 | "short": "d/MM/yy h:mm a", 75 | "shortDate": "d/MM/yy", 76 | "shortTime": "h:mm a" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "$", 80 | "DECIMAL_SEP": ",", 81 | "GROUP_SEP": ".", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4\u00a0-", 101 | "negSuf": "", 102 | "posPre": "\u00a4\u00a0", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "ms-latn-bn", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_ms-latn-my.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "PG", 8 | "PTG" 9 | ], 10 | "DAY": [ 11 | "Ahad", 12 | "Isnin", 13 | "Selasa", 14 | "Rabu", 15 | "Khamis", 16 | "Jumaat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "S.M.", 21 | "TM" 22 | ], 23 | "ERAS": [ 24 | "S.M.", 25 | "TM" 26 | ], 27 | "FIRSTDAYOFWEEK": 0, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Mac", 32 | "April", 33 | "Mei", 34 | "Jun", 35 | "Julai", 36 | "Ogos", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Disember" 41 | ], 42 | "SHORTDAY": [ 43 | "Ahd", 44 | "Isn", 45 | "Sel", 46 | "Rab", 47 | "Kha", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mac", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Ogo", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Dis" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, d MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y h:mm:ss a", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "h:mm:ss a", 74 | "short": "d/MM/yy h:mm a", 75 | "shortDate": "d/MM/yy", 76 | "shortTime": "h:mm a" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "RM", 80 | "DECIMAL_SEP": ".", 81 | "GROUP_SEP": ",", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "ms-latn-my", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_ms-latn-sg.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "PG", 8 | "PTG" 9 | ], 10 | "DAY": [ 11 | "Ahad", 12 | "Isnin", 13 | "Selasa", 14 | "Rabu", 15 | "Khamis", 16 | "Jumaat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "S.M.", 21 | "TM" 22 | ], 23 | "ERAS": [ 24 | "S.M.", 25 | "TM" 26 | ], 27 | "FIRSTDAYOFWEEK": 0, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Mac", 32 | "April", 33 | "Mei", 34 | "Jun", 35 | "Julai", 36 | "Ogos", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Disember" 41 | ], 42 | "SHORTDAY": [ 43 | "Ahd", 44 | "Isn", 45 | "Sel", 46 | "Rab", 47 | "Kha", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mac", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Ogo", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Dis" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, d MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y h:mm:ss a", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "h:mm:ss a", 74 | "short": "d/MM/yy h:mm a", 75 | "shortDate": "d/MM/yy", 76 | "shortTime": "h:mm a" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "$", 80 | "DECIMAL_SEP": ".", 81 | "GROUP_SEP": ",", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "ms-latn-sg", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_ms-latn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "PG", 8 | "PTG" 9 | ], 10 | "DAY": [ 11 | "Ahad", 12 | "Isnin", 13 | "Selasa", 14 | "Rabu", 15 | "Khamis", 16 | "Jumaat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "S.M.", 21 | "TM" 22 | ], 23 | "ERAS": [ 24 | "S.M.", 25 | "TM" 26 | ], 27 | "FIRSTDAYOFWEEK": 0, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Mac", 32 | "April", 33 | "Mei", 34 | "Jun", 35 | "Julai", 36 | "Ogos", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Disember" 41 | ], 42 | "SHORTDAY": [ 43 | "Ahd", 44 | "Isn", 45 | "Sel", 46 | "Rab", 47 | "Kha", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mac", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Ogo", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Dis" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, d MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y h:mm:ss a", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "h:mm:ss a", 74 | "short": "d/MM/yy h:mm a", 75 | "shortDate": "d/MM/yy", 76 | "shortTime": "h:mm a" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "\u20ac", 80 | "DECIMAL_SEP": ".", 81 | "GROUP_SEP": ",", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "ms-latn", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/i18n/angular-locale_ms.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | angular.module("ngLocale", [], ["$provide", function($provide) { 3 | var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; 4 | $provide.value("$locale", { 5 | "DATETIME_FORMATS": { 6 | "AMPMS": [ 7 | "PG", 8 | "PTG" 9 | ], 10 | "DAY": [ 11 | "Ahad", 12 | "Isnin", 13 | "Selasa", 14 | "Rabu", 15 | "Khamis", 16 | "Jumaat", 17 | "Sabtu" 18 | ], 19 | "ERANAMES": [ 20 | "S.M.", 21 | "TM" 22 | ], 23 | "ERAS": [ 24 | "S.M.", 25 | "TM" 26 | ], 27 | "FIRSTDAYOFWEEK": 0, 28 | "MONTH": [ 29 | "Januari", 30 | "Februari", 31 | "Mac", 32 | "April", 33 | "Mei", 34 | "Jun", 35 | "Julai", 36 | "Ogos", 37 | "September", 38 | "Oktober", 39 | "November", 40 | "Disember" 41 | ], 42 | "SHORTDAY": [ 43 | "Ahd", 44 | "Isn", 45 | "Sel", 46 | "Rab", 47 | "Kha", 48 | "Jum", 49 | "Sab" 50 | ], 51 | "SHORTMONTH": [ 52 | "Jan", 53 | "Feb", 54 | "Mac", 55 | "Apr", 56 | "Mei", 57 | "Jun", 58 | "Jul", 59 | "Ogo", 60 | "Sep", 61 | "Okt", 62 | "Nov", 63 | "Dis" 64 | ], 65 | "WEEKENDRANGE": [ 66 | 5, 67 | 6 68 | ], 69 | "fullDate": "EEEE, d MMMM y", 70 | "longDate": "d MMMM y", 71 | "medium": "d MMM y h:mm:ss a", 72 | "mediumDate": "d MMM y", 73 | "mediumTime": "h:mm:ss a", 74 | "short": "d/MM/yy h:mm a", 75 | "shortDate": "d/MM/yy", 76 | "shortTime": "h:mm a" 77 | }, 78 | "NUMBER_FORMATS": { 79 | "CURRENCY_SYM": "RM", 80 | "DECIMAL_SEP": ".", 81 | "GROUP_SEP": ",", 82 | "PATTERNS": [ 83 | { 84 | "gSize": 3, 85 | "lgSize": 3, 86 | "maxFrac": 3, 87 | "minFrac": 0, 88 | "minInt": 1, 89 | "negPre": "-", 90 | "negSuf": "", 91 | "posPre": "", 92 | "posSuf": "" 93 | }, 94 | { 95 | "gSize": 3, 96 | "lgSize": 3, 97 | "maxFrac": 2, 98 | "minFrac": 2, 99 | "minInt": 1, 100 | "negPre": "\u00a4-", 101 | "negSuf": "", 102 | "posPre": "\u00a4", 103 | "posSuf": "" 104 | } 105 | ] 106 | }, 107 | "id": "ms", 108 | "pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;} 109 | }); 110 | }]); 111 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/others/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); 8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d 2 | 3 |
4 | 5 | 6 | 7 |
8 | 9 |
10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 | 26 |
27 |
28 |
29 | 30 |
31 | 32 | 33 |

Title

34 |

Text

35 | 36 | 37 |
-------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Scripts/version.json: -------------------------------------------------------------------------------- 1 | {"raw":"v1.4.2","major":1,"minor":4,"patch":2,"prerelease":[],"build":[],"version":"1.4.2","codeName":"nebular-readjustment","full":"1.4.2","branch":"v1.4.x","cdn":{"raw":"v1.4.1","major":1,"minor":4,"patch":1,"prerelease":[],"build":[],"version":"1.4.1","docsUrl":"http://code.angularjs.org/1.4.1/docs"}} -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/Account/Login.css: -------------------------------------------------------------------------------- 1 | #LoginArea { 2 | max-width: 400px; 3 | margin: 120px auto 10px auto; 4 | } 5 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/Account/Login.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | $(function() { 4 | $('#LoginButton').click(function (e) { 5 | e.preventDefault(); 6 | abp.ui.setBusy( 7 | $('#LoginArea'), 8 | abp.ajax({ 9 | url: abp.appPath + 'Account/Login', 10 | type: 'POST', 11 | data: JSON.stringify({ 12 | tenancyName: $('#TenancyName').val(), 13 | usernameOrEmailAddress: $('#EmailAddressInput').val(), 14 | password: $('#PasswordInput').val(), 15 | rememberMe: $('#RememberMeInput').is(':checked') 16 | }) 17 | }) 18 | ); 19 | }); 20 | }); 21 | 22 | })(); -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/Account/Login.less: -------------------------------------------------------------------------------- 1 | #LoginArea { 2 | max-width: 400px; 3 | margin: 120px auto 10px auto; 4 | } 5 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/Account/Login.min.css: -------------------------------------------------------------------------------- 1 | #LoginArea{max-width:400px;margin:120px auto 10px auto} -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/MyAbpZeroProjectWebViewPageBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Views; 2 | 3 | namespace MyAbpZeroProject.Web.Views 4 | { 5 | public abstract class MyAbpZeroProjectWebViewPageBase : MyAbpZeroProjectWebViewPageBase 6 | { 7 | 8 | } 9 | 10 | public abstract class MyAbpZeroProjectWebViewPageBase : AbpWebViewPage 11 | { 12 | protected MyAbpZeroProjectWebViewPageBase() 13 | { 14 | LocalizationSourceName = MyAbpZeroProjectConsts.LocalizationSourceName; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @using Abp.Collections.Extensions 2 | @model Abp.Web.Mvc.Models.ErrorViewModel 3 |
4 |
5 |
6 |
7 |

@Model.ErrorInfo.Message

8 |
9 |
10 |

11 | @(!string.IsNullOrEmpty(Model.ErrorInfo.Details) ? Model.ErrorInfo.Details : Model.ErrorInfo.Message) 12 |

13 | @* Show validation errors *@ 14 | @if (!Model.ErrorInfo.ValidationErrors.IsNullOrEmpty()) 15 | { 16 |
    17 | @foreach (var validationError in Model.ErrorInfo.ValidationErrors) 18 | { 19 |
  • 20 | @validationError.Message 21 | @if (validationError.Members != null && validationError.Members.Any()) 22 | { 23 | (@string.Join(", ", validationError.Members)) 24 | } 25 |
  • 26 | } 27 |
28 | } 29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Views/web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/favicon.ico -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/app/MyAbpZeroProject.Web/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /app/MyAbpZeroProject.Web/log4net.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.WebApi/MyAbpZeroProjectWebApiModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Application.Services; 3 | using Abp.Configuration.Startup; 4 | using Abp.Modules; 5 | using Abp.WebApi; 6 | 7 | namespace MyAbpZeroProject 8 | { 9 | [DependsOn(typeof(AbpWebApiModule), typeof(MyAbpZeroProjectApplicationModule))] 10 | public class MyAbpZeroProjectWebApiModule : AbpModule 11 | { 12 | public override void Initialize() 13 | { 14 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 15 | Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder 16 | .ForAll(typeof(MyAbpZeroProjectApplicationModule).Assembly, "app") 17 | .Build(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/MyAbpZeroProject.WebApi/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.WebApi")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.WebApi")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("78120137-356a-4bf3-b89e-130a4af69b7d")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.0.0.0")] 37 | [assembly: AssemblyFileVersion("1.0.0.0")] 38 | -------------------------------------------------------------------------------- /app/Tests/MyAbpZeroProject.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyAbpZeroProject.Tests")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyAbpZeroProject.Tests")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("7abe30d0-da99-4221-b7c1-72d008ae8123")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /app/Tests/MyAbpZeroProject.Tests/Sessions/MyAbpZeroProjectTestModule.cs: -------------------------------------------------------------------------------- 1 | using Abp.Modules; 2 | using Abp.TestBase; 3 | 4 | namespace MyAbpZeroProject.Tests.Sessions 5 | { 6 | [DependsOn( 7 | typeof(AbpTestBaseModule), 8 | typeof(MyAbpZeroProjectApplicationModule), 9 | typeof(MyAbpZeroProjectDataModule) 10 | )] 11 | public class MyAbpZeroProjectTestModule : AbpModule 12 | { 13 | 14 | } 15 | } -------------------------------------------------------------------------------- /app/Tests/MyAbpZeroProject.Tests/Sessions/SessionAppService_Tests.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using MyAbpZeroProject.Sessions; 3 | using Shouldly; 4 | using Xunit; 5 | 6 | namespace MyAbpZeroProject.Tests.Sessions 7 | { 8 | public class SessionAppService_Tests : MyAbpZeroProjectTestBase 9 | { 10 | private readonly ISessionAppService _sessionAppService; 11 | 12 | public SessionAppService_Tests() 13 | { 14 | _sessionAppService = Resolve(); 15 | } 16 | 17 | [Fact] 18 | public async Task Should_Get_Current_User_When_Logged_In_As_Host() 19 | { 20 | //Arrange 21 | LoginAsHostAdmin(); 22 | 23 | //Act 24 | var output = await _sessionAppService.GetCurrentLoginInformations(); 25 | 26 | //Assert 27 | var currentUser = await GetCurrentUserAsync(); 28 | output.User.ShouldNotBe(null); 29 | output.User.Name.ShouldBe(currentUser.Name); 30 | output.User.Surname.ShouldBe(currentUser.Surname); 31 | 32 | output.Tenant.ShouldBe(null); 33 | } 34 | 35 | [Fact] 36 | public async Task Should_Get_Current_User_And_Tenant_When_Logged_In_As_Tenant() 37 | { 38 | //Act 39 | var output = await _sessionAppService.GetCurrentLoginInformations(); 40 | 41 | //Assert 42 | var currentUser = await GetCurrentUserAsync(); 43 | var currentTenant = await GetCurrentTenantAsync(); 44 | 45 | output.User.ShouldNotBe(null); 46 | output.User.Name.ShouldBe(currentUser.Name); 47 | 48 | output.Tenant.ShouldNotBe(null); 49 | output.Tenant.Name.ShouldBe(currentTenant.Name); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /nupkg/pack_blog_modules.bat: -------------------------------------------------------------------------------- 1 | "..\src\.nuget\NuGet.exe" "pack" "..\src\Abp.Samples.Blog.Core\Abp.Samples.Blog.Core.csproj" -Properties Configuration=Release -IncludeReferencedProjects -Symbols 2 | "..\src\.nuget\NuGet.exe" "pack" "..\src\Abp.Samples.Blog.EntityFramework\Abp.Samples.Blog.EntityFramework.csproj" -Properties Configuration=Release -IncludeReferencedProjects -Symbols 3 | "..\src\.nuget\NuGet.exe" "pack" "..\src\Abp.Samples.Blog.Application\Abp.Samples.Blog.Application.csproj" -Properties Configuration=Release -IncludeReferencedProjects -Symbols 4 | "..\src\.nuget\NuGet.exe" "pack" "..\src\Abp.Samples.Blog.Web\Abp.Samples.Blog.Web.csproj" -Properties Configuration=Release -IncludeReferencedProjects -Symbols 5 | pause -------------------------------------------------------------------------------- /src/.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/sample-blog-module/6f5879a87900a7161315b51bfa95a1e7353ea6ca/src/.nuget/NuGet.exe -------------------------------------------------------------------------------- /src/.nuget/pack.ps1: -------------------------------------------------------------------------------- 1 | $version = '0.7.0-preview1' 2 | 3 | $app = (Get-Item -Path "./" -Verbose).FullName + "\Nuget.exe" 4 | 5 | $p1 = (Get-Item -Path "../").FullName + "\Abp.Samples.Blog.Core\Abp.Samples.Blog.Core.csproj" 6 | $p2 = (Get-Item -Path "../").FullName + "\Abp.Samples.Blog.EntityFramework\Abp.Samples.Blog.EntityFramework.csproj" 7 | $p3 = (Get-Item -Path "../").FullName + "\Abp.Samples.Blog.Application\Abp.Samples.Blog.Application.csproj" 8 | $p4 = (Get-Item -Path "../").FullName + "\Abp.Samples.Blog.Web\Abp.Samples.Blog.Web.csproj" 9 | 10 | write-host "`nSTARTED TO PACKING`n" 11 | & $app pack $p1 -Version $version 12 | write-host $p1 "successfully packed `n" 13 | & $app pack $p2 -Version $version 14 | write-host $p2 "successfully packed `n" 15 | & $app pack $p3 -Version $version 16 | write-host $p3 "successfully packed `n" 17 | & $app pack $p4 -Version $version 18 | write-host $p4 "successfully packed `n" 19 | write-host "`nALL PACKED" -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Abp.Samples.Blog.Application.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Abp.Samples.Blog.Application 5 | $version$ 6 | Abp.Samples.Blog.Application 7 | Halil İbrahim Kalkan 8 | Halil İbrahim Kalkan 9 | A sample blog module for ASP.NET Boilerplate. 10 | http://www.aspnetboilerplate.com 11 | http://www.aspnetboilerplate.com/images/abp_nupkg.png 12 | asp.net boilerplate sample blog module 13 | 14 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/AbpSampleBlogApplicationModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.AutoMapper; 3 | using Abp.Modules; 4 | 5 | namespace Abp.Samples.Blog 6 | { 7 | [DependsOn(typeof(AbpSampleBlogCoreModule), typeof(AbpAutoMapperModule))] 8 | public class AbpSampleBlogApplicationModule : AbpModule 9 | { 10 | public override void Initialize() 11 | { 12 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Application/Dtos/DefaultPagedResultRequest.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using Abp.Application.Services.Dto; 3 | 4 | namespace Abp.Samples.Blog.Application.Dtos 5 | { 6 | public class DefaultPagedResultRequest : IPagedResultRequest 7 | { 8 | [Range(1, int.MaxValue)] 9 | public int MaxResultCount { get; set; } 10 | 11 | [Range(0, int.MaxValue)] 12 | public int SkipCount { get; set; } 13 | 14 | public DefaultPagedResultRequest() 15 | { 16 | MaxResultCount = 10; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Application/Services/ICrudAppService.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services; 2 | using Abp.Application.Services.Dto; 3 | using Abp.Samples.Blog.Application.Dtos; 4 | 5 | namespace Abp.Samples.Blog.Application.Services 6 | { 7 | public interface ICrudAppService 8 | : IApplicationService 9 | where TSelectRequestInput : IPagedResultRequest 10 | { 11 | TEntityDto Get(EntityDto input); 12 | 13 | PagedResultDto GetAll(TSelectRequestInput input); 14 | 15 | TPrimaryKey Create(TCreateInput input); 16 | 17 | void Update(TUpdateInput input); 18 | 19 | void Delete(EntityDto input); 20 | } 21 | 22 | public interface ICrudAppService 23 | : ICrudAppService 24 | where TSelectRequestInput : IPagedResultRequest 25 | { 26 | 27 | } 28 | 29 | public interface ICrudAppService 30 | : ICrudAppService 31 | { 32 | 33 | } 34 | 35 | public interface ICrudAppService 36 | : ICrudAppService 37 | { 38 | 39 | } 40 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/BlogAppServiceBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services; 2 | 3 | namespace Abp.Samples.Blog 4 | { 5 | public abstract class BlogAppServiceBase : ApplicationService 6 | { 7 | protected BlogAppServiceBase() 8 | { 9 | //LocalizationSourceName = "AbpSampleBlog"; //TODO: Create a localization source 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Categories/CategoryAppService.cs: -------------------------------------------------------------------------------- 1 | using Abp.Samples.Blog.Application.Services; 2 | using Abp.Samples.Blog.Categories.Dto; 3 | using Abp.Samples.Blog.Domain.Repositories; 4 | 5 | namespace Abp.Samples.Blog.Categories 6 | { 7 | public class CategoryAppService : CrudAppService, ICategoryAppService 8 | { 9 | public CategoryAppService(ISampleBlogRepository repository) 10 | : base(repository) 11 | { 12 | 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Categories/Dto/CategoryDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using Abp.Application.Services.Dto; 3 | using Abp.AutoMapper; 4 | 5 | namespace Abp.Samples.Blog.Categories.Dto 6 | { 7 | [AutoMap(typeof(Category))] 8 | public class CategoryDto : EntityDto 9 | { 10 | [Required] 11 | [StringLength(Category.MaxNameLength)] 12 | public virtual string Name { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Categories/ICategoryAppService.cs: -------------------------------------------------------------------------------- 1 | using Abp.Samples.Blog.Application.Services; 2 | using Abp.Samples.Blog.Categories.Dto; 3 | 4 | namespace Abp.Samples.Blog.Categories 5 | { 6 | public interface ICategoryAppService : ICrudAppService 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Posts/Dtos/CreatePostInput.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using Abp.Application.Services.Dto; 3 | using Abp.AutoMapper; 4 | 5 | namespace Abp.Samples.Blog.Posts.Dtos 6 | { 7 | [AutoMapTo(typeof(Post))] 8 | public class CreatePostInput 9 | { 10 | [Range(1, int.MaxValue)] 11 | public int CategoryId { get; set; } 12 | 13 | [Required] 14 | [StringLength(Post.MaxTitleLength)] 15 | public string Title { get; set; } 16 | 17 | [Required] 18 | public string Content { get; set; } 19 | 20 | public string Tags { get; set; } 21 | 22 | public PostStatus Status { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Posts/Dtos/GetPostsInput.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using Abp.Application.Services.Dto; 3 | 4 | namespace Abp.Samples.Blog.Posts.Dtos 5 | { 6 | public class GetPostsInput : IPagedResultRequest 7 | { 8 | public const int DefaultPageSize = 10; 9 | 10 | [Range(1, int.MaxValue)] 11 | public int MaxResultCount { get; set; } 12 | 13 | [Range(0, int.MaxValue)] 14 | public int SkipCount { get; set; } 15 | 16 | public GetPostsInput() 17 | { 18 | MaxResultCount = DefaultPageSize; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Posts/Dtos/PostDto.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services.Dto; 2 | using Abp.AutoMapper; 3 | 4 | namespace Abp.Samples.Blog.Posts.Dtos 5 | { 6 | [AutoMapFrom(typeof(Post))] 7 | public class PostDto : EntityDto 8 | { 9 | public int CategoryId { get; set; } 10 | 11 | public string CategoryName { get; set; } 12 | 13 | public string Title { get; set; } 14 | 15 | public string Content { get; set; } 16 | 17 | public string Tags { get; set; } 18 | 19 | public PostStatus Status { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Posts/IPostAppService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Abp.Application.Services; 3 | using Abp.Application.Services.Dto; 4 | using Abp.Samples.Blog.Posts.Dtos; 5 | 6 | namespace Abp.Samples.Blog.Posts 7 | { 8 | public interface IPostAppService : IApplicationService 9 | { 10 | Task> GetPosts(GetPostsInput input); 11 | 12 | Task CreatePost(CreatePostInput input); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Posts/PostAppService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using Abp.Application.Services.Dto; 5 | using Abp.AutoMapper; 6 | using Abp.Domain.Repositories; 7 | using Abp.Linq.Extensions; 8 | using Abp.Samples.Blog.Domain.Repositories; 9 | using Abp.Samples.Blog.Posts.Dtos; 10 | 11 | namespace Abp.Samples.Blog.Posts 12 | { 13 | public class PostAppService : BlogAppServiceBase, IPostAppService 14 | { 15 | private readonly ISampleBlogRepository _postRepository; 16 | 17 | public PostAppService(ISampleBlogRepository postRepository) 18 | { 19 | _postRepository = postRepository; 20 | } 21 | 22 | public async Task> GetPosts(GetPostsInput input) 23 | { 24 | var postCount = await _postRepository.CountAsync(); 25 | var posts = _postRepository.GetAll().OrderByDescending(p => p.CreationTime).PageBy(input).ToList(); 26 | 27 | posts.ForEach(post => 28 | { 29 | _postRepository.EnsurePropertyLoaded(post, p => p.Category); 30 | }); 31 | 32 | return new PagedResultDto( 33 | postCount, 34 | posts.MapTo>() 35 | ); 36 | } 37 | 38 | public async Task CreatePost(CreatePostInput input) 39 | { 40 | await _postRepository.InsertAsync(input.MapTo()); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Abp.Samples.Blog; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Abp.Samples.Blog.Application")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Abp.Samples.Blog.Application")] 14 | [assembly: AssemblyCopyright("Copyright © 2015")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("a9c6abde-35be-4de5-a7da-4461c7647054")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion(AbpSampleBlogConsts.Version)] 37 | [assembly: AssemblyFileVersion(AbpSampleBlogConsts.Version)] 38 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Application/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Abp.Samples.Blog.Core.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Abp.Samples.Blog.Core 5 | $version$ 6 | Abp.Samples.Blog.Core 7 | Halil İbrahim Kalkan 8 | Halil İbrahim Kalkan 9 | A sample blog module for ASP.NET Boilerplate. 10 | http://www.aspnetboilerplate.com 11 | http://www.aspnetboilerplate.com/images/abp_nupkg.png 12 | asp.net boilerplate sample blog module 13 | 14 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/AbpSampleBlogConsts.cs: -------------------------------------------------------------------------------- 1 | namespace Abp.Samples.Blog 2 | { 3 | public class AbpSampleBlogConsts 4 | { 5 | public const string Version = "0.7.0.0"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/AbpSampleBlogCoreModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | using Abp.Zero; 4 | 5 | namespace Abp.Samples.Blog 6 | { 7 | [DependsOn(typeof(AbpZeroCoreModule))] 8 | public class AbpSampleBlogCoreModule : AbpModule 9 | { 10 | public override void Initialize() 11 | { 12 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogRole.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Roles; 2 | 3 | namespace Abp.Samples.Blog.Auth 4 | { 5 | public class BlogRole : AbpRole 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogRoleManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization; 2 | using Abp.Authorization.Roles; 3 | using Abp.Domain.Repositories; 4 | using Abp.Domain.Uow; 5 | using Abp.Organizations; 6 | using Abp.Runtime.Caching; 7 | using Abp.Samples.Blog.Domain.Repositories; 8 | using Abp.Zero.Configuration; 9 | 10 | namespace Abp.Samples.Blog.Auth 11 | { 12 | public class BlogRoleManager : AbpRoleManager 13 | { 14 | public BlogRoleManager( 15 | BlogRoleStore store, 16 | IPermissionManager permissionManager, 17 | IRoleManagementConfig roleManagementConfig, 18 | ICacheManager cacheManager, 19 | IUnitOfWorkManager unitOfWorkManager, 20 | ISampleBlogRepository organizationUnitRepository, 21 | ISampleBlogRepository organizationUnitRoleRepository) 22 | : base(store, permissionManager, roleManagementConfig, cacheManager, unitOfWorkManager, organizationUnitRepository, organizationUnitRoleRepository) 23 | { 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogRoleStore.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Roles; 2 | using Abp.Authorization.Users; 3 | using Abp.Samples.Blog.Domain.Repositories; 4 | 5 | namespace Abp.Samples.Blog.Auth 6 | { 7 | public class BlogRoleStore : AbpRoleStore 8 | { 9 | public BlogRoleStore( 10 | ISampleBlogRepository roleRepository, 11 | ISampleBlogRepository userRoleRepository, 12 | ISampleBlogRepository rolePermissionSettingRepository) 13 | : base( 14 | roleRepository, 15 | userRoleRepository, 16 | rolePermissionSettingRepository) 17 | { 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogTenant.cs: -------------------------------------------------------------------------------- 1 | using Abp.MultiTenancy; 2 | 3 | namespace Abp.Samples.Blog.Auth 4 | { 5 | public class BlogTenant : AbpTenant 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogTenantManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Features; 2 | using Abp.MultiTenancy; 3 | using Abp.Samples.Blog.Domain.Repositories; 4 | using Abp.Samples.Blog.Editions; 5 | 6 | namespace Abp.Samples.Blog.Auth 7 | { 8 | public class BlogTenantManager : AbpTenantManager 9 | { 10 | public BlogTenantManager( 11 | ISampleBlogRepository tenantRepository, 12 | ISampleBlogRepository tenantFeatureRepository, 13 | BlogEditionManager editionManager, 14 | IAbpZeroFeatureValueStore featureValueStore) 15 | : base( 16 | tenantRepository, 17 | tenantFeatureRepository, 18 | editionManager, 19 | featureValueStore) 20 | { 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogUser.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Users; 2 | 3 | namespace Abp.Samples.Blog.Auth 4 | { 5 | public class BlogUser : AbpUser 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogUserManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization; 2 | using Abp.Authorization.Users; 3 | using Abp.Configuration; 4 | using Abp.Domain.Repositories; 5 | using Abp.Domain.Uow; 6 | using Abp.IdentityFramework; 7 | using Abp.Localization; 8 | using Abp.Organizations; 9 | using Abp.Runtime.Caching; 10 | 11 | 12 | namespace Abp.Samples.Blog.Auth 13 | { 14 | public class BlogUserManager : AbpUserManager 15 | { 16 | public BlogUserManager( 17 | BlogUserStore userStore, 18 | BlogRoleManager roleManager, 19 | IPermissionManager permissionManager, 20 | IUnitOfWorkManager unitOfWorkManager, 21 | ICacheManager cacheManager, 22 | IRepository organizationUnitRepository, 23 | IRepository userOrganizationUnitRepository, 24 | IOrganizationUnitSettings organizationUnitSettings, 25 | IdentityEmailMessageService emailService, 26 | ILocalizationManager localizationManager, 27 | ISettingManager settingManager, 28 | IUserTokenProviderAccessor userTokenProviderAccessor) 29 | : base( 30 | userStore, 31 | roleManager, 32 | permissionManager, 33 | unitOfWorkManager, 34 | cacheManager, 35 | organizationUnitRepository, 36 | userOrganizationUnitRepository, 37 | organizationUnitSettings, 38 | localizationManager, 39 | emailService, 40 | settingManager, 41 | userTokenProviderAccessor) 42 | { 43 | 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Auth/BlogUserStore.cs: -------------------------------------------------------------------------------- 1 | using Abp.Authorization.Users; 2 | using Abp.Domain.Repositories; 3 | using Abp.Domain.Uow; 4 | using Abp.Organizations; 5 | using Abp.Samples.Blog.Domain.Repositories; 6 | 7 | namespace Abp.Samples.Blog.Auth 8 | { 9 | public class BlogUserStore : AbpUserStore 10 | { 11 | public BlogUserStore( 12 | ISampleBlogRepository userRepository, 13 | ISampleBlogRepository userLoginRepository, 14 | ISampleBlogRepository userRoleRepository, 15 | ISampleBlogRepository roleRepository, 16 | ISampleBlogRepository userPermissionSettingRepository, 17 | IUnitOfWorkManager unitOfWorkManager, 18 | ISampleBlogRepository userClaimRepository, 19 | ISampleBlogRepository userOrganizationUnitRepository, 20 | ISampleBlogRepository organizationUnitRoleRepository) 21 | : base(userRepository, userLoginRepository, userRoleRepository, roleRepository, userPermissionSettingRepository, unitOfWorkManager, userClaimRepository, userOrganizationUnitRepository, organizationUnitRoleRepository) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Categories/Category.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | using Abp.Domain.Entities.Auditing; 4 | using Abp.Samples.Blog.Auth; 5 | 6 | namespace Abp.Samples.Blog.Categories 7 | { 8 | [Table("BlgCategories")] 9 | public class Category : CreationAuditedEntity 10 | { 11 | public const int MaxNameLength = 128; 12 | 13 | [Required] 14 | [StringLength(MaxNameLength)] 15 | public virtual string Name { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Comments/Comment.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | using Abp.Domain.Entities.Auditing; 4 | using Abp.Samples.Blog.Auth; 5 | 6 | namespace Abp.Samples.Blog.Comments 7 | { 8 | [Table("BlgComments")] 9 | public class Comment : CreationAuditedEntity 10 | { 11 | public const int MaxContentLength = 2000; 12 | 13 | [Required] 14 | [StringLength(MaxContentLength)] 15 | public virtual string Content { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Domain/Repositories/ISampleBlogRepository.cs: -------------------------------------------------------------------------------- 1 | using Abp.Domain.Entities; 2 | using Abp.Domain.Repositories; 3 | 4 | namespace Abp.Samples.Blog.Domain.Repositories 5 | { 6 | public interface ISampleBlogRepository : IRepository 7 | where TEntity : class, IEntity 8 | { 9 | 10 | } 11 | 12 | public interface ISampleBlogRepository : IRepository 13 | where TEntity : class, IEntity 14 | { 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Editions/BlogEditionManager.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Editions; 2 | using Abp.Application.Features; 3 | using Abp.Samples.Blog.Domain.Repositories; 4 | 5 | namespace Abp.Samples.Blog.Editions 6 | { 7 | public class BlogEditionManager : AbpEditionManager 8 | { 9 | public BlogEditionManager( 10 | ISampleBlogRepository editionRepository, 11 | IAbpZeroFeatureValueStore featureValueStore) 12 | : base( 13 | editionRepository, 14 | featureValueStore) 15 | { 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Posts/Post.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | using Abp.Domain.Entities.Auditing; 4 | using Abp.Samples.Blog.Auth; 5 | using Abp.Samples.Blog.Categories; 6 | 7 | namespace Abp.Samples.Blog.Posts 8 | { 9 | [Table("BlgPosts")] 10 | public class Post : FullAuditedEntity 11 | { 12 | public const int MaxTitleLength = 128; 13 | 14 | [ForeignKey("CategoryId")] 15 | public virtual Category Category { get; set; } 16 | public virtual int CategoryId { get; set; } 17 | 18 | [Required] 19 | [StringLength(MaxTitleLength)] 20 | public virtual string Title { get; set; } 21 | 22 | [Required] 23 | public virtual string Content { get; set; } 24 | 25 | public virtual string Tags { get; set; } 26 | 27 | public virtual PostStatus Status { get; set; } 28 | 29 | public Post() 30 | { 31 | Status = PostStatus.Draft; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Posts/PostStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Abp.Samples.Blog.Posts 2 | { 3 | public enum PostStatus : byte 4 | { 5 | Draft = 0, 6 | Published = 1 7 | } 8 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Abp.Samples.Blog; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Abp.Samples.Blog.Core")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Abp.Samples.Blog.Core")] 14 | [assembly: AssemblyCopyright("Copyright © 2015")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("9fa469e2-0b0f-4fbe-b0e6-3acd1100c36b")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion(AbpSampleBlogConsts.Version)] 37 | [assembly: AssemblyFileVersion(AbpSampleBlogConsts.Version)] 38 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Core/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/Abp.Samples.Blog.EntityFramework.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Abp.Samples.Blog.EntityFramework 5 | $version$ 6 | Abp.Samples.Blog.EntityFramework 7 | Halil İbrahim Kalkan 8 | Halil İbrahim Kalkan 9 | A sample blog module for ASP.NET Boilerplate. 10 | http://www.aspnetboilerplate.com 11 | http://www.aspnetboilerplate.com/images/abp_nupkg.png 12 | asp.net boilerplate sample blog module 13 | 14 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/AbpSampleBlogEntityFrameworkModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | using Abp.Zero.EntityFramework; 4 | 5 | namespace Abp.Samples.Blog.EntityFramework 6 | { 7 | [DependsOn(typeof(AbpZeroEntityFrameworkModule), typeof(AbpSampleBlogCoreModule))] 8 | public class AbpSampleBlogEntityFrameworkModule : AbpModule 9 | { 10 | public override void Initialize() 11 | { 12 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/Migrations/201912100827426_Ugraded_To_Abp_5_1_0.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace Abp.Samples.Blog.EntityFramework.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.4.0")] 10 | public sealed partial class Ugraded_To_Abp_5_1_0 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(Ugraded_To_Abp_5_1_0)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201912100827426_Ugraded_To_Abp_5_1_0"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/Migrations/Configuration.cs: -------------------------------------------------------------------------------- 1 | using Abp.Samples.Blog.EntityFramework.Migrations.SeedData; 2 | using EntityFramework.DynamicFilters; 3 | 4 | namespace Abp.Samples.Blog.EntityFramework.Migrations 5 | { 6 | using System; 7 | using System.Data.Entity; 8 | using System.Data.Entity.Migrations; 9 | using System.Linq; 10 | 11 | internal sealed class Configuration : DbMigrationsConfiguration 12 | { 13 | public Configuration() 14 | { 15 | AutomaticMigrationsEnabled = false; 16 | ContextKey = "AbpSampleBlogModule"; 17 | } 18 | 19 | protected override void Seed(SampleBlogDbContext context) 20 | { 21 | context.DisableAllFilters(); 22 | new BlogTestDataBuilder(context).Build(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Abp.Samples.Blog; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Abp.Samples.Blog.EntityFramework")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Abp.Samples.Blog.EntityFramework")] 14 | [assembly: AssemblyCopyright("Copyright © 2015")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("bd80a08c-bf2f-4f13-b01a-0c7fa730ce4f")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion(AbpSampleBlogConsts.Version)] 37 | [assembly: AssemblyFileVersion(AbpSampleBlogConsts.Version)] 38 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/READ_ME.txt: -------------------------------------------------------------------------------- 1 | Running migrations (specify Password): 2 | 3 | Update-Database -ConnectionString "Server=localhost; Database=MyAbpZeroProject; User=sa; Password=;" -ConnectionProviderName "System.Data.SqlClient" -ProjectName "Abp.Samples.Blog.EntityFramework" -Verbose -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/Repositories/SampleBlogRepositoryBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Domain.Entities; 2 | using Abp.EntityFramework; 3 | using Abp.EntityFramework.Repositories; 4 | using Abp.Samples.Blog.Domain.Repositories; 5 | 6 | namespace Abp.Samples.Blog.EntityFramework.Repositories 7 | { 8 | public class SampleBlogRepositoryBase : SampleBlogRepositoryBase, ISampleBlogRepository 9 | where TEntity : class, IEntity 10 | { 11 | public SampleBlogRepositoryBase(IDbContextProvider dbContextProvider) 12 | : base(dbContextProvider) 13 | { 14 | } 15 | } 16 | 17 | public class SampleBlogRepositoryBase : EfRepositoryBase, ISampleBlogRepository 18 | where TEntity : class, IEntity 19 | { 20 | public SampleBlogRepositoryBase(IDbContextProvider dbContextProvider) 21 | : base(dbContextProvider) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.EntityFramework/SampleBlogDbContext.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Common; 2 | using System.Data.Entity; 3 | using Abp.Domain.Repositories; 4 | using Abp.Samples.Blog.Auth; 5 | using Abp.Samples.Blog.Categories; 6 | using Abp.Samples.Blog.Comments; 7 | using Abp.Samples.Blog.Domain.Repositories; 8 | using Abp.Samples.Blog.EntityFramework.Repositories; 9 | using Abp.Samples.Blog.Posts; 10 | using Abp.Zero.EntityFramework; 11 | 12 | namespace Abp.Samples.Blog.EntityFramework 13 | { 14 | [AutoRepositoryTypes( 15 | typeof(ISampleBlogRepository<>), 16 | typeof(ISampleBlogRepository<,>), 17 | typeof(SampleBlogRepositoryBase<>), 18 | typeof(SampleBlogRepositoryBase<,>) 19 | )] 20 | public class SampleBlogDbContext : AbpZeroDbContext 21 | { 22 | public IDbSet Posts { get; set; } 23 | 24 | public IDbSet Categories { get; set; } 25 | 26 | public IDbSet Comments { get; set; } 27 | 28 | /* NOTE: 29 | * Setting "Default" to base class helps us when working migration commands on Package Manager Console. 30 | * But it may cause problems when working Migrate.exe of EF. If you will apply migrations on command line, do not 31 | * pass connection string name to base classes. ABP works either way. 32 | */ 33 | public SampleBlogDbContext() 34 | : base("Default") 35 | { 36 | 37 | } 38 | 39 | /* NOTE: 40 | * This constructor is used by ABP to pass connection string defined in AbpProjectNameDataModule.PreInitialize. 41 | * Notice that, actually you will not directly create an instance of AbpProjectNameDbContext since ABP automatically handles it. 42 | */ 43 | public SampleBlogDbContext(string nameOrConnectionString) 44 | : base(nameOrConnectionString) 45 | { 46 | 47 | } 48 | 49 | //This constructor is used in tests 50 | public SampleBlogDbContext(DbConnection connection) 51 | : base(connection, true) 52 | { 53 | 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Tests/BlogTestModule.cs: -------------------------------------------------------------------------------- 1 | using Abp.Modules; 2 | using Abp.TestBase; 3 | using SampleApplication; 4 | 5 | namespace Abp.Samples.Blog.Tests 6 | { 7 | [DependsOn(typeof(SampleApplicationModule), typeof(AbpTestBaseModule))] 8 | public class BlogTestModule : AbpModule 9 | { 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Tests/Categories/CategoryAppService_Tests.cs: -------------------------------------------------------------------------------- 1 | using Abp.Samples.Blog.Application.Dtos; 2 | using Abp.Samples.Blog.Categories; 3 | using Shouldly; 4 | using Xunit; 5 | 6 | namespace Abp.Samples.Blog.Tests.Categories 7 | { 8 | public class CategoryAppService_Tests : SampleBlogTestBase 9 | { 10 | private readonly ICategoryAppService _categoryAppService; 11 | 12 | public CategoryAppService_Tests() 13 | { 14 | _categoryAppService = Resolve(); 15 | } 16 | 17 | [Fact] 18 | public void Should_Get_All_Categories() 19 | { 20 | var output = _categoryAppService.GetAll(new DefaultPagedResultRequest()); 21 | output.Items.Count.ShouldBe(2); 22 | output.TotalCount.ShouldBe(2); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Tests/Posts/PostAppService_Tests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using Abp.Samples.Blog.Posts; 5 | using Abp.Samples.Blog.Posts.Dtos; 6 | using Shouldly; 7 | using Xunit; 8 | 9 | namespace Abp.Samples.Blog.Tests.Posts 10 | { 11 | public class PostAppService_Tests : SampleBlogTestBase 12 | { 13 | private readonly IPostAppService _postAppService; 14 | 15 | public PostAppService_Tests() 16 | { 17 | _postAppService = Resolve(); 18 | } 19 | 20 | [Fact] 21 | public async Task Should_Get_Posts() 22 | { 23 | var posts = await _postAppService.GetPosts(new GetPostsInput()); 24 | posts.TotalCount.ShouldBe(2); 25 | posts.Items.Count.ShouldBe(2); 26 | } 27 | 28 | [Fact] 29 | public async Task Should_Get_Posts_With_Parameter() 30 | { 31 | var posts = await _postAppService.GetPosts(new GetPostsInput() 32 | { 33 | MaxResultCount = 1000 34 | }); 35 | posts.TotalCount.ShouldBe(2); 36 | posts.Items.Count.ShouldBe(2); 37 | } 38 | 39 | [Fact] 40 | public async Task Should_Insert_Post() 41 | { 42 | var title = Guid.NewGuid().ToString(); 43 | 44 | await _postAppService.CreatePost( 45 | new CreatePostInput 46 | { 47 | CategoryId = 1, 48 | Content = "a test content", 49 | Title = title, 50 | Status = PostStatus.Draft, 51 | Tags = "test tags" 52 | }); 53 | 54 | UsingDbContext(context => { context.Posts.FirstOrDefault(p => p.Title == title).ShouldNotBe(null); }); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Abp.Samples.Blog.Tests")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Abp.Samples.Blog.Tests")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0785a393-830f-4139-8d6e-748a787bb9d4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Tests/SampleBlogTestBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Data.Common; 3 | using Abp.Samples.Blog.EntityFramework; 4 | using Abp.Samples.Blog.EntityFramework.Migrations.SeedData; 5 | using Abp.Samples.Blog.Tests.Data; 6 | using Abp.TestBase; 7 | using Castle.MicroKernel.Registration; 8 | using Effort; 9 | using EntityFramework.DynamicFilters; 10 | 11 | namespace Abp.Samples.Blog.Tests 12 | { 13 | public abstract class SampleBlogTestBase : AbpIntegratedTestBase 14 | { 15 | protected SampleBlogTestBase() 16 | { 17 | //Seed initial data 18 | UsingDbContext(context => new DefaultTenantRoleAndUserBuilder(context).Build()); 19 | UsingDbContext(context => new BlogTestDataBuilder(context).Build()); 20 | } 21 | 22 | protected override void PreInitialize() 23 | { 24 | base.PreInitialize(); 25 | 26 | //Fake DbConnection using Effort! 27 | LocalIocManager.IocContainer.Register( 28 | Component.For() 29 | .UsingFactoryMethod(DbConnectionFactory.CreateTransient) 30 | .LifestyleSingleton() 31 | ); 32 | } 33 | 34 | public void UsingDbContext(Action action) 35 | { 36 | using (var context = LocalIocManager.Resolve()) 37 | { 38 | context.DisableAllFilters(); 39 | action(context); 40 | context.SaveChanges(); 41 | } 42 | } 43 | 44 | public T UsingDbContext(Func func) 45 | { 46 | T result; 47 | 48 | using (var context = LocalIocManager.Resolve()) 49 | { 50 | context.DisableAllFilters(); 51 | result = func(context); 52 | context.SaveChanges(); 53 | } 54 | 55 | return result; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/Abp.Samples.Blog.Web.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Abp.Samples.Blog.Web 5 | $version$ 6 | Abp.Samples.Blog.Web 7 | Halil İbrahim Kalkan 8 | Halil İbrahim Kalkan 9 | A sample blog module for ASP.NET Boilerplate. 10 | http://www.aspnetboilerplate.com 11 | http://www.aspnetboilerplate.com/images/abp_nupkg.png 12 | asp.net boilerplate sample blog module 13 | 14 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/AbpSampleBlogWebModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Application.Services; 3 | using Abp.Configuration.Startup; 4 | using Abp.Modules; 5 | using Abp.Samples.Blog.Posts; 6 | using Abp.Samples.Blog.Web.Navigation; 7 | using Abp.Web.Mvc; 8 | using Abp.WebApi; 9 | 10 | namespace Abp.Samples.Blog.Web 11 | { 12 | [DependsOn( 13 | typeof(AbpSampleBlogApplicationModule), 14 | typeof(AbpWebApiModule), 15 | typeof(AbpWebMvcModule)) 16 | ] 17 | public class AbpSampleBlogWebModule : AbpModule 18 | { 19 | public override void PreInitialize() 20 | { 21 | Configuration.Navigation.Providers.Add(); 22 | } 23 | 24 | public override void Initialize() 25 | { 26 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 27 | 28 | Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder 29 | .ForAll(typeof(PostAppService).Assembly, "blog") 30 | .Build(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/App/Main/views/blog/blog.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |
4 |
5 |

6 | Blog Posts 7 |

8 |
9 |
10 |
    11 |
  • 12 |

    {{post.title}}

    13 |

    {{post.content}}

    14 |
  • 15 |
16 |
17 |
18 |
19 |
-------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/App/Main/views/blog/blog.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | angular.module('app').config([ 4 | '$stateProvider', 5 | function ($stateProvider) { 6 | $stateProvider 7 | .state('blog', { 8 | url: '/blog', 9 | templateUrl: '/App/Main/views/blog/blog.cshtml', 10 | menu: 'SampleBlog.AdminPage' 11 | }); 12 | } 13 | ]); 14 | 15 | angular.module('app').controller('app.views.blog', [ 16 | '$scope', 'abp.services.blog.post', 17 | function ($scope, postService) { 18 | var vm = this; 19 | 20 | vm.posts = []; 21 | 22 | postService.getPosts({ 23 | maxResultCount: 1000 24 | }).then(function (result) { 25 | vm.posts = result.data.items; 26 | }); 27 | } 28 | ]); 29 | })(); -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/Navigation/BlogNavigationProvider.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Navigation; 2 | using Abp.Localization; 3 | 4 | namespace Abp.Samples.Blog.Web.Navigation 5 | { 6 | public class BlogNavigationProvider : NavigationProvider 7 | { 8 | public override void SetNavigation(INavigationProviderContext context) 9 | { 10 | context.Manager.MainMenu 11 | .AddItem( 12 | new MenuItemDefinition( 13 | "SampleBlog.AdminPage", 14 | new FixedLocalizableString("Blog"), 15 | url: "#/blog", 16 | icon: "fa fa-list" 17 | ) 18 | ); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Abp.Samples.Blog; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Abp.Samples.Blog.Web")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Abp.Samples.Blog.Web")] 14 | [assembly: AssemblyCopyright("Copyright © 2015")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("d7b95330-2f77-43c2-972c-38b30e849d19")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion(AbpSampleBlogConsts.Version)] 37 | [assembly: AssemblyFileVersion(AbpSampleBlogConsts.Version)] 38 | -------------------------------------------------------------------------------- /src/Abp.Samples.Blog.Web/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/SampleApplication/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SampleApplication")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SampleApplication")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d4a4795d-18ed-4446-865c-b75a951dd2df")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | --------------------------------------------------------------------------------