├── src ├── Czar.AbpDemo.Web │ ├── wwwroot │ │ ├── pages │ │ │ ├── index.min.css │ │ │ ├── index.css │ │ │ └── index.scss │ │ └── libs │ │ │ ├── font-awesome │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── select2 │ │ │ └── js │ │ │ │ └── i18n │ │ │ │ ├── zh-TW.js │ │ │ │ ├── zh-CN.js │ │ │ │ ├── az.js │ │ │ │ ├── ja.js │ │ │ │ ├── ko.js │ │ │ │ ├── ar.js │ │ │ │ ├── id.js │ │ │ │ ├── vi.js │ │ │ │ ├── is.js │ │ │ │ ├── tr.js │ │ │ │ ├── et.js │ │ │ │ ├── fi.js │ │ │ │ ├── nb.js │ │ │ │ ├── th.js │ │ │ │ ├── sv.js │ │ │ │ ├── bg.js │ │ │ │ ├── hu.js │ │ │ │ ├── km.js │ │ │ │ ├── ms.js │ │ │ │ ├── da.js │ │ │ │ ├── en.js │ │ │ │ ├── hy.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── fa.js │ │ │ │ ├── hr.js │ │ │ │ ├── eu.js │ │ │ │ ├── mk.js │ │ │ │ ├── af.js │ │ │ │ ├── de.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── lv.js │ │ │ │ ├── pt.js │ │ │ │ ├── ca.js │ │ │ │ ├── fr.js │ │ │ │ ├── it.js │ │ │ │ ├── ps.js │ │ │ │ ├── gl.js │ │ │ │ ├── sl.js │ │ │ │ ├── es.js │ │ │ │ ├── nl.js │ │ │ │ ├── ro.js │ │ │ │ ├── lt.js │ │ │ │ ├── pl.js │ │ │ │ ├── el.js │ │ │ │ ├── bs.js │ │ │ │ ├── sr.js │ │ │ │ ├── uk.js │ │ │ │ ├── sr-Cyrl.js │ │ │ │ ├── ru.js │ │ │ │ ├── dsb.js │ │ │ │ ├── hsb.js │ │ │ │ ├── cs.js │ │ │ │ └── sk.js │ │ │ ├── jquery-validation │ │ │ └── localization │ │ │ │ ├── methods_pt.js │ │ │ │ ├── methods_fi.js │ │ │ │ ├── methods_de.js │ │ │ │ ├── methods_es_CL.js │ │ │ │ ├── methods_nl.js │ │ │ │ ├── messages_zh.js │ │ │ │ ├── messages_zh_TW.js │ │ │ │ ├── messages_ko.js │ │ │ │ ├── messages_sk.js │ │ │ │ ├── messages_da.js │ │ │ │ ├── messages_vi.js │ │ │ │ ├── messages_ja.js │ │ │ │ ├── messages_he.js │ │ │ │ ├── messages_is.js │ │ │ │ ├── messages_ar.js │ │ │ │ ├── messages_th.js │ │ │ │ ├── messages_sv.js │ │ │ │ ├── messages_sd.js │ │ │ │ ├── messages_sr.js │ │ │ │ ├── messages_hy_AM.js │ │ │ │ ├── messages_hr.js │ │ │ │ ├── messages_mk.js │ │ │ │ ├── messages_no.js │ │ │ │ ├── messages_de.js │ │ │ │ ├── messages_hu.js │ │ │ │ ├── messages_sr_lat.js │ │ │ │ ├── messages_ur.js │ │ │ │ ├── messages_bn_BD.js │ │ │ │ ├── messages_cs.js │ │ │ │ ├── messages_ge.js │ │ │ │ ├── messages_et.js │ │ │ │ └── messages_si.js │ │ │ └── timeago │ │ │ └── locales │ │ │ ├── jquery.timeago.tr.js │ │ │ ├── jquery.timeago.it.js │ │ │ ├── jquery.timeago.fr-short.js │ │ │ ├── jquery.timeago.sq.js │ │ │ ├── jquery.timeago.hy.js │ │ │ ├── jquery.timeago.ja.js │ │ │ ├── jquery.timeago.de-short.js │ │ │ ├── jquery.timeago.en-short.js │ │ │ ├── jquery.timeago.it-short.js │ │ │ ├── jquery.timeago.ko.js │ │ │ ├── jquery.timeago.pt-short.js │ │ │ ├── jquery.timeago.tr-short.js │ │ │ ├── jquery.timeago.es-short.js │ │ │ ├── jquery.timeago.ro.js │ │ │ ├── jquery.timeago.pt-br-short.js │ │ │ ├── jquery.timeago.bg.js │ │ │ ├── jquery.timeago.da.js │ │ │ ├── jquery.timeago.gl.js │ │ │ ├── jquery.timeago.pt.js │ │ │ ├── jquery.timeago.no.js │ │ │ ├── jquery.timeago.zh-CN.js │ │ │ ├── jquery.timeago.zh-TW.js │ │ │ ├── jquery.timeago.az-short.js │ │ │ ├── jquery.timeago.es.js │ │ │ ├── jquery.timeago.pt-br.js │ │ │ ├── jquery.timeago.az.js │ │ │ ├── jquery.timeago.lt.js │ │ │ ├── jquery.timeago.lv.js │ │ │ ├── jquery.timeago.eu.js │ │ │ ├── jquery.timeago.de.js │ │ │ ├── jquery.timeago.el.js │ │ │ ├── jquery.timeago.is.js │ │ │ ├── jquery.timeago.si.js │ │ │ ├── jquery.timeago.sv.js │ │ │ ├── jquery.timeago.af.js │ │ │ ├── jquery.timeago.ca.js │ │ │ ├── jquery.timeago.am.js │ │ │ ├── jquery.timeago.cy.js │ │ │ ├── jquery.timeago.rw.js │ │ │ ├── jquery.timeago.id.js │ │ │ ├── jquery.timeago.mk.js │ │ │ ├── jquery.timeago.fa-short.js │ │ │ ├── jquery.timeago.fr.js │ │ │ ├── jquery.timeago.hu.js │ │ │ ├── jquery.timeago.ur.js │ │ │ ├── jquery.timeago.jv.js │ │ │ ├── jquery.timeago.th.js │ │ │ ├── jquery.timeago.en.js │ │ │ ├── jquery.timeago.vi.js │ │ │ ├── jquery.timeago.nl.js │ │ │ ├── jquery.timeago.he.js │ │ │ ├── jquery.timeago.uz.js │ │ │ ├── jquery.timeago.dv.js │ │ │ ├── jquery.timeago.fa.js │ │ │ ├── README.md │ │ │ ├── jquery.timeago.pl.js │ │ │ ├── jquery.timeago.et.js │ │ │ ├── jquery.timeago.fi.js │ │ │ ├── jquery.timeago.ky.js │ │ │ ├── jquery.timeago.uk.js │ │ │ ├── jquery.timeago.ru.js │ │ │ ├── jquery.timeago.cs.js │ │ │ └── jquery.timeago.sk.js │ ├── abp.resourcemapping.js │ ├── compilerconfig.json │ ├── Views │ │ └── _ViewImports.cshtml │ ├── package.json │ ├── appsettings.json │ ├── Pages │ │ ├── Index.cshtml.cs │ │ ├── _ViewImports.cshtml │ │ ├── AbpDemoPageModelBase.cs │ │ ├── Books │ │ │ ├── Index.cshtml.cs │ │ │ ├── EditModal.cshtml │ │ │ ├── CreateModal.cshtml │ │ │ ├── Index.cshtml │ │ │ └── CreateModal.cshtml.cs │ │ ├── AbpDemoPageBase.cs │ │ ├── JobSchedule │ │ │ ├── Index.cshtml.cs │ │ │ ├── EditModal.cshtml │ │ │ ├── CreateModal.cshtml │ │ │ └── Index.cshtml │ │ └── Index.cshtml │ ├── gulpfile.js │ ├── AbpDemoWebAutoMapperProfile.cs │ ├── Branding │ │ └── AbpDemoBrandingProvider.cs │ ├── zh-Hans.json │ ├── compilerconfig.json.defaults │ ├── Menus │ │ └── AbpDemoMenuContributor.cs │ └── Program.cs ├── Czar.AbpDemo.Core │ ├── Czar.AbpDemo.Core.csproj │ └── Result │ │ ├── ScheduleResult.cs │ │ └── BaseResult.cs ├── Czar.AbpDemo.Domain │ ├── Localization │ │ └── AbpDemo │ │ │ ├── AbpDemoResource.cs │ │ │ ├── tr.json │ │ │ ├── zh-Hans.json │ │ │ └── en.json │ ├── Settings │ │ ├── AbpDemoSettings.cs │ │ └── AbpDemoSettingDefinitionProvider.cs │ ├── Czar.AbpDemo.Domain.csproj │ ├── BookStore │ │ ├── BookType.cs │ │ └── Book.cs │ └── JobSchedule │ │ └── JobStatu.cs ├── Czar.AbpDemo.Application │ ├── AbpDemoApplicationAutoMapperProfile.cs │ ├── Permissions │ │ ├── AbpDemoPermissions.cs │ │ └── AbpDemoPermissionDefinitionProvider.cs │ ├── Czar.AbpDemo.Application.csproj │ ├── AbpDemoApplicationModule.cs │ └── BookStore │ │ ├── BookDto.cs │ │ ├── IBookAppService.cs │ │ ├── CreateUpdateBookDto.cs │ │ └── BookAppService.cs ├── Czar.AbpDemo.Quartz │ ├── Czar.AbpDemo.Quartz.csproj │ └── Job │ │ └── LogTestJob.cs └── Czar.AbpDemo.EntityFrameworkCore │ └── EntityFrameworkCore │ ├── AbpDemoDbContextFactory.cs │ ├── AbpDemoDbContext.cs │ └── AbpDemoEntityFrameworkCoreModule.cs ├── .gitattributes ├── test ├── Czar.AbpDemo.Web.Tests │ ├── xunit.runner.json │ ├── Samples │ │ └── SampleWebTest.cs │ └── AbpDemoWebTestStartup.cs └── Czar.AbpDemo.Application.Tests │ ├── AbpDemoApplicationTestBase.cs │ ├── Samples │ └── SampleTest.cs │ └── Czar.AbpDemo.Application.Tests.csproj ├── Czar.AbpDemo.sln.DotSettings └── LICENSE /src/Czar.AbpDemo.Web/wwwroot/pages/index.min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/pages/index.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | **/wwwroot/libs/** linguist-vendored 2 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/pages/index.scss: -------------------------------------------------------------------------------- 1 | body{ 2 | 3 | } 4 | -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Web.Tests/xunit.runner.json: -------------------------------------------------------------------------------- 1 | { 2 | "shadowCopy": false 3 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/abp.resourcemapping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | aliases: { 3 | 4 | }, 5 | mappings: { 6 | 7 | } 8 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/compilerconfig.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "outputFile": "wwwroot/pages/index.css", 4 | "inputFile": "wwwroot/pages/index.scss" 5 | } 6 | ] -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yilezhu/AbpQuzatzDemo/HEAD/src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI 3 | @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap 4 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "name": "Czar.AbpDemo", 4 | "private": true, 5 | "dependencies": { 6 | "@abp/aspnetcore.mvc.ui.theme.basic": "^0.4.9" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yilezhu/AbpQuzatzDemo/HEAD/src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yilezhu/AbpQuzatzDemo/HEAD/src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yilezhu/AbpQuzatzDemo/HEAD/src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yilezhu/AbpQuzatzDemo/HEAD/src/Czar.AbpDemo.Web/wwwroot/libs/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "Default": "Server=localhost;Database=CzarAbpDemo;User Id = sa;Password = 1;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | } 5 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | namespace Czar.AbpDemo.Pages 2 | { 3 | public class IndexModel : AbpDemoPageModelBase 4 | { 5 | public void OnGet() 6 | { 7 | 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Core/Czar.AbpDemo.Core.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | Czar.AbpDemo 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI 3 | @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap 4 | @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Localization/AbpDemo/AbpDemoResource.cs: -------------------------------------------------------------------------------- 1 | using Volo.Abp.Localization; 2 | 3 | namespace Czar.AbpDemo.Localization.AbpDemo 4 | { 5 | [LocalizationResourceName("AbpDemo")] 6 | public class AbpDemoResource 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Core/Result/ScheduleResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Czar.AbpDemo.Result 7 | { 8 | public class ScheduleResult : BaseResult 9 | { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Settings/AbpDemoSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Czar.AbpDemo.Settings 2 | { 3 | public static class AbpDemoSettings 4 | { 5 | private const string Prefix = "CzarAbp"; 6 | 7 | //Add your own setting names here. Example: 8 | //public const string MySetting1 = Prefix + ".MySetting1"; 9 | } 10 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/gulpfile.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var gulp = require("gulp"), 4 | path = require('path'), 5 | copyResources = require('./node_modules/@abp/aspnetcore.mvc.ui/gulp/copy-resources.js'); 6 | 7 | copyResources.init(path.resolve('./')); 8 | 9 | gulp.task('default', [copyResources.taskName], function () { 10 | 11 | }); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Localization/AbpDemo/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "culture": "tr", 3 | "texts": { 4 | "Menu:Home": "Ana sayfa", 5 | "Welcome": "Hoşgeldiniz", 6 | "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz." 7 | } 8 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/AbpDemoWebAutoMapperProfile.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace Czar.AbpDemo 4 | { 5 | public class AbpDemoWebAutoMapperProfile : Profile 6 | { 7 | public AbpDemoWebAutoMapperProfile() 8 | { 9 | //Configure your AutoMapper mapping configuration here... 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Core/Result/BaseResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Czar.AbpDemo.Result 7 | { 8 | public class BaseResult 9 | { 10 | public int Code { get; set; }=0; 11 | 12 | public string Message { get; set; } = "操作成功"; 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/AbpDemoApplicationAutoMapperProfile.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace Czar.AbpDemo 4 | { 5 | public class AbpDemoApplicationAutoMapperProfile : Profile 6 | { 7 | public AbpDemoApplicationAutoMapperProfile() 8 | { 9 | //Configure your AutoMapper mapping configuration here... 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Branding/AbpDemoBrandingProvider.cs: -------------------------------------------------------------------------------- 1 | using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components; 2 | using Volo.Abp.DependencyInjection; 3 | 4 | namespace Czar.AbpDemo.Branding 5 | { 6 | [Dependency(ReplaceServices = true)] 7 | public class AbpDemoBrandingProvider : DefaultBrandingProvider 8 | { 9 | public override string AppName => "AbpDemo"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/AbpDemoPageModelBase.cs: -------------------------------------------------------------------------------- 1 | using Czar.AbpDemo.Localization.AbpDemo; 2 | using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; 3 | 4 | namespace Czar.AbpDemo.Pages 5 | { 6 | public abstract class AbpDemoPageModelBase : AbpPageModel 7 | { 8 | protected AbpDemoPageModelBase() 9 | { 10 | LocalizationResourceType = typeof(AbpDemoResource); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Application.Tests/AbpDemoApplicationTestBase.cs: -------------------------------------------------------------------------------- 1 | using Volo.Abp; 2 | 3 | namespace Czar.AbpDemo 4 | { 5 | public abstract class AbpDemoApplicationTestBase : AbpIntegratedTest 6 | { 7 | protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) 8 | { 9 | options.UseAutofac(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Books/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace Czar.AbpDemo.Web.Pages.Books 9 | { 10 | public class IndexModel : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/AbpDemoPageBase.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Localization; 2 | using Microsoft.AspNetCore.Mvc.Razor.Internal; 3 | using Czar.AbpDemo.Localization.AbpDemo; 4 | using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; 5 | 6 | namespace Czar.AbpDemo.Pages 7 | { 8 | public abstract class AbpDemoPageBase : AbpPage 9 | { 10 | [RazorInject] 11 | public IHtmlLocalizer L { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/JobSchedule/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Czar.AbpDemo.JobSchedule; 6 | using Microsoft.AspNetCore.Mvc; 7 | using Microsoft.AspNetCore.Mvc.RazorPages; 8 | 9 | namespace Czar.AbpDemo.Web.Pages.JobSchedule 10 | { 11 | public class IndexModel : PageModel 12 | { 13 | 14 | public void OnGet() 15 | { 16 | 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "culture": "zh-Hans", 3 | "texts": { 4 | "Menu:Home": "首页", 5 | "Menu:BookStore": "图书馆", 6 | "Menu:Books": "图书管理", 7 | "Welcome": "欢迎", 8 | "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 cn.abp.io.", 9 | "Books:Name": "书籍名称", 10 | "Books:Type": "书籍类型", 11 | "Books:PublishDate": "出版日期", 12 | "Books:Price": "书籍价格", 13 | "Books:CreationTime": "创建时间", 14 | "Books:NewBook": "新书籍" 15 | } 16 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Settings/AbpDemoSettingDefinitionProvider.cs: -------------------------------------------------------------------------------- 1 | using Volo.Abp.Settings; 2 | 3 | namespace Czar.AbpDemo.Settings 4 | { 5 | public class AbpDemoSettingDefinitionProvider : SettingDefinitionProvider 6 | { 7 | public override void Define(ISettingDefinitionContext context) 8 | { 9 | //Define your own settings here. Example: 10 | //context.Add(new SettingDefinition(AbpDemoSettings.MySetting1)); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/Permissions/AbpDemoPermissions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Czar.AbpDemo.Permissions 4 | { 5 | public static class AbpDemoPermissions 6 | { 7 | public const string GroupName = "AbpDemo"; 8 | 9 | //Add your own permission names. Example: 10 | //public const string MyPermission1 = GroupName + ".MyPermission1"; 11 | 12 | public static string[] GetAll() 13 | { 14 | //Return an array of all permissions 15 | return Array.Empty(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/Czar.AbpDemo.Application.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | Czar.AbpDemo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Index.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @using Czar.AbpDemo.Pages 3 | @inherits AbpDemoPageBase 4 | @model IndexModel 5 | @section styles { 6 | 7 | } 8 | 9 | @L["Welcome"] 10 | 11 |

@L["LongWelcomeMessage"]

12 | @if (!CurrentUser.IsAuthenticated) 13 | { 14 |

@L["Login"]

15 | } 16 |
17 |

abp.io

18 |
19 |
-------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/methods_pt.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: PT_BR 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value ); 18 | } 19 | } ); 20 | return $; 21 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ja.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Books/EditModal.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal 4 | @model Czar.AbpDemo.Web.Pages.Books.EditModalModel 5 | 6 | @{ 7 | Layout = null; 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Books/CreateModal.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal 4 | @model Czar.AbpDemo.Web.Pages.Books.CreateModalModel 5 | @{ 6 | Layout = null; 7 | ViewData["Title"] = "CreateModal"; 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/JobSchedule/EditModal.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal 4 | @model Czar.AbpDemo.Web.Pages.JobSchedule.EditModalModel 5 | 6 | @{ 7 | Layout = null; 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Web.Tests/Samples/SampleWebTest.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Shouldly; 3 | using Xunit; 4 | 5 | namespace Czar.AbpDemo.Samples 6 | { 7 | public class SampleWebTest : AbpDemoWebTestBase 8 | { 9 | [Fact(Skip = "This is disabled since not working")] 10 | public async Task Welcome_Page() 11 | { 12 | var response = await GetResponseAsStringAsync("/"); 13 | response.ShouldNotBeNull(); 14 | } 15 | 16 | [Fact(Skip = "This is disabled since not working")] 17 | public async Task Login_Page() 18 | { 19 | var response = await GetResponseAsStringAsync("/Account/Login/"); 20 | response.ShouldNotBeNull(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/JobSchedule/CreateModal.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal 4 | @model Czar.AbpDemo.Web.Pages.JobSchedule.CreateModalModel 5 | @{ 6 | Layout = null; 7 | ViewData["Title"] = "CreateModal"; 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ar.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+" ký tự";return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.tr.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Turkish 11 | jQuery.timeago.settings.strings = { 12 | suffixAgo: 'önce', 13 | suffixFromNow: null, 14 | seconds: 'birkaç saniye', 15 | minute: '1 dakika', 16 | minutes: '%d dakika', 17 | hour: '1 saat', 18 | hours: '%d saat', 19 | day: '1 gün', 20 | days: '%d gün', 21 | month: '1 ay', 22 | months: '%d ay', 23 | year: '1 yıl', 24 | years: '%d yıl' 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn "+t+" tegn til";return n+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/km.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ms.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Web.Tests/AbpDemoWebTestStartup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.AspNetCore.Builder; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using Microsoft.Extensions.Logging; 5 | using Volo.Abp; 6 | 7 | namespace Czar.AbpDemo 8 | { 9 | public class AbpDemoWebTestStartup 10 | { 11 | public IServiceProvider ConfigureServices(IServiceCollection services) 12 | { 13 | services.AddApplication(options => 14 | { 15 | options.UseAutofac(); 16 | }); 17 | 18 | return services.BuildServiceProviderFromFactory(); 19 | } 20 | 21 | public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) 22 | { 23 | app.InitializeApplication(); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/methods_fi.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: FI 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.it.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Italian 11 | jQuery.timeago.settings.strings = { 12 | suffixAgo: "fa", 13 | suffixFromNow: "da ora", 14 | seconds: "meno di un minuto", 15 | minute: "circa un minuto", 16 | minutes: "%d minuti", 17 | hour: "circa un'ora", 18 | hours: "circa %d ore", 19 | day: "un giorno", 20 | days: "%d giorni", 21 | month: "circa un mese", 22 | months: "%d mesi", 23 | year: "circa un anno", 24 | years: "%d anni" 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/methods_de.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: DE 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.fr-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // French shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "il y a", 13 | prefixFromNow: "d'ici", 14 | seconds: "moins d'une minute", 15 | minute: "une minute", 16 | minutes: "%d minutes", 17 | hour: "une heure", 18 | hours: "%d heures", 19 | day: "un jour", 20 | days: "%d jours", 21 | month: "un mois", 22 | months: "%d mois", 23 | year: "un an", 24 | years: "%d ans" 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: ES_CL 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/hy.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.sq.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Albanian SQ 11 | jQuery.timeago.settings.strings = { 12 | suffixAgo: "më parë", 13 | suffixFromNow: "tani", 14 | seconds: "më pak se një minutë", 15 | minute: "rreth një minutë", 16 | minutes: "%d minuta", 17 | hour: "rreth një orë", 18 | hours: "rreth %d orë", 19 | day: "një ditë", 20 | days: "%d ditë", 21 | month: "rreth një muaj", 22 | months: "%d muaj", 23 | year: "rreth një vit", 24 | years: "%d vjet" 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.hy.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Armenian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "առաջ", 15 | suffixFromNow: "հետո", 16 | seconds: "վայրկյաններ", 17 | minute: "մեկ րոպե", 18 | minutes: "%d րոպե", 19 | hour: "մեկ ժամ", 20 | hours: "%d ժամ", 21 | day: "մեկ օր", 22 | days: "%d օր", 23 | month: "մեկ ամիս", 24 | months: "%d ամիս", 25 | year: "մեկ տարի", 26 | years: "%d տարի" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/methods_nl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: NL 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ja.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Japanese 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "", 13 | prefixFromNow: "今から", 14 | suffixAgo: "前", 15 | suffixFromNow: "後", 16 | seconds: "1 分未満", 17 | minute: "約 1 分", 18 | minutes: "%d 分", 19 | hour: "約 1 時間", 20 | hours: "約 %d 時間", 21 | day: "約 1 日", 22 | days: "約 %d 日", 23 | month: "約 1 ヶ月", 24 | months: "約 %d ヶ月", 25 | year: "約 1 年", 26 | years: "約 %d 年", 27 | wordSeparator: "" 28 | }; 29 | })); 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.de-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // German shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "s", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1T.", 22 | days: "%dT.", 23 | month: "1Mt.", 24 | months: "%dMt.", 25 | year: "1J.", 26 | years: "%dJ.", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.en-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // English shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1m", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1d", 22 | days: "%dd", 23 | month: "1mo", 24 | months: "%dmo", 25 | year: "1yr", 26 | years: "%dyr", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.it-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Italian shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1m", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1g", 22 | days: "%dg", 23 | month: "1me", 24 | months: "%dme", 25 | year: "1a", 26 | years: "%da", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ko.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Korean 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "전", 15 | suffixFromNow: "후", 16 | seconds: "1분", 17 | minute: "약 1분", 18 | minutes: "%d분", 19 | hour: "약 1시간", 20 | hours: "약 %d시간", 21 | day: "하루", 22 | days: "%d일", 23 | month: "약 1개월", 24 | months: "%d개월", 25 | year: "약 1년", 26 | years: "%d년", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | 32 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Portuguese shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1m", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1d", 22 | days: "%dd", 23 | month: "1M", 24 | months: "%dM", 25 | year: "1a", 26 | years: "%da", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.tr-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Turkish shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1dk", 17 | minute: "1dk", 18 | minutes: "%ddk", 19 | hour: "1s", 20 | hours: "%ds", 21 | day: "1g", 22 | days: "%dg", 23 | month: "1ay", 24 | months: "%day", 25 | year: "1y", 26 | years: "%dy", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/af.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Verwyders asseblief "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Voer asseblief "+t+" of meer karakters";return n},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var t="Kies asseblief net "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.es-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Spanish shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1m", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1d", 22 | days: "%dd", 23 | month: "1me", 24 | months: "%dme", 25 | year: "1a", 26 | years: "%da", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | 32 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ro.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Romanian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "acum", 13 | prefixFromNow: "in timp de", 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "mai putin de un minut", 17 | minute: "un minut", 18 | minutes: "%d minute", 19 | hour: "o ora", 20 | hours: "%d ore", 21 | day: "o zi", 22 | days: "%d zile", 23 | month: "o luna", 24 | months: "%d luni", 25 | year: "un an", 26 | years: "%d ani" 27 | }; 28 | })); 29 | 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/Permissions/AbpDemoPermissionDefinitionProvider.cs: -------------------------------------------------------------------------------- 1 | using Czar.AbpDemo.Localization.AbpDemo; 2 | using Volo.Abp.Authorization.Permissions; 3 | using Volo.Abp.Localization; 4 | 5 | namespace Czar.AbpDemo.Permissions 6 | { 7 | public class AbpDemoPermissionDefinitionProvider : PermissionDefinitionProvider 8 | { 9 | public override void Define(IPermissionDefinitionContext context) 10 | { 11 | var myGroup = context.AddGroup(AbpDemoPermissions.GroupName); 12 | 13 | //Define your own permissions here. Examaple: 14 | //myGroup.AddPermission(AbpDemoPermissions.MyPermission1, L("Permission:MyPermission1")); 15 | } 16 | 17 | private static LocalizableString L(string name) 18 | { 19 | return LocalizableString.Create(name); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-br-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Portuguese Brasil shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1m", 17 | minute: "1m", 18 | minutes: "%dm", 19 | hour: "1h", 20 | hours: "%dh", 21 | day: "1d", 22 | days: "%dd", 23 | month: "1M", 24 | months: "%dM", 25 | year: "1a", 26 | years: "%da", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.bg.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Bulgarian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "преди", 13 | prefixFromNow: "след", 14 | suffixAgo: null, 15 | suffixFromNow: null, 16 | seconds: "по-малко от минута", 17 | minute: "една минута", 18 | minutes: "%d минути", 19 | hour: "един час", 20 | hours: "%d часа", 21 | day: "един ден", 22 | days: "%d дни", 23 | month: "един месец", 24 | months: "%d месеца", 25 | year: "една година", 26 | years: "%d години" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.da.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Danish 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "for", 13 | prefixFromNow: "om", 14 | suffixAgo: "siden", 15 | suffixFromNow: "", 16 | seconds: "mindre end et minut", 17 | minute: "ca. et minut", 18 | minutes: "%d minutter", 19 | hour: "ca. en time", 20 | hours: "ca. %d timer", 21 | day: "en dag", 22 | days: "%d dage", 23 | month: "ca. en måned", 24 | months: "%d måneder", 25 | year: "ca. et år", 26 | years: "%d år" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.gl.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Galician 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "hai", 13 | prefixFromNow: "dentro de", 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "menos dun minuto", 17 | minute: "un minuto", 18 | minutes: "uns %d minutos", 19 | hour: "unha hora", 20 | hours: "%d horas", 21 | day: "un día", 22 | days: "%d días", 23 | month: "un mes", 24 | months: "%d meses", 25 | year: "un ano", 26 | years: "%d anos" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Portuguese 11 | jQuery.timeago.settings.strings = { 12 | suffixAgo: "atrás", 13 | suffixFromNow: "a partir de agora", 14 | seconds: "menos de um minuto", 15 | minute: "cerca de um minuto", 16 | minutes: "%d minutos", 17 | hour: "cerca de uma hora", 18 | hours: "cerca de %d horas", 19 | day: "um dia", 20 | days: "%d dias", 21 | month: "cerca de um mês", 22 | months: "%d meses", 23 | year: "cerca de um ano", 24 | years: "%d anos" 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.no.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Norwegian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "for", 13 | prefixFromNow: "om", 14 | suffixAgo: "siden", 15 | suffixFromNow: "", 16 | seconds: "mindre enn et minutt", 17 | minute: "ca. et minutt", 18 | minutes: "%d minutter", 19 | hour: "ca. en time", 20 | hours: "ca. %d timer", 21 | day: "en dag", 22 | days: "%d dager", 23 | month: "ca. en måned", 24 | months: "%d måneder", 25 | year: "ca. et år", 26 | years: "%d år" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Simplified Chinese 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: "从现在开始", 14 | suffixAgo: "之前", 15 | suffixFromNow: null, 16 | seconds: "不到1分钟", 17 | minute: "大约1分钟", 18 | minutes: "%d分钟", 19 | hour: "大约1小时", 20 | hours: "大约%d小时", 21 | day: "1天", 22 | days: "%d天", 23 | month: "大约1个月", 24 | months: "%d月", 25 | year: "大约1年", 26 | years: "%d年", 27 | numbers: [], 28 | wordSeparator: "" 29 | }; 30 | })); 31 | 32 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.zh-TW.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Traditional Chinese, zh-tw 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: "從現在開始", 14 | suffixAgo: "之前", 15 | suffixFromNow: null, 16 | seconds: "不到1分鐘", 17 | minute: "大約1分鐘", 18 | minutes: "%d分鐘", 19 | hour: "大約1小時", 20 | hours: "%d小時", 21 | day: "大約1天", 22 | days: "%d天", 23 | month: "大約1個月", 24 | months: "%d個月", 25 | year: "大約1年", 26 | years: "%d年", 27 | numbers: [], 28 | wordSeparator: "" 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Supprimez "+t+" caractère"+(t>1)?"s":""},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Saisissez au moins "+t+" caractère"+(t>1)?"s":""},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1)?"s":""},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.az-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Azerbaijani shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: '1 dəq', 17 | minute: '1 dəq', 18 | minutes: '%d dəq', 19 | hour: '1 saat', 20 | hours: '%d saat', 21 | day: '1 gün', 22 | days: '%d gün', 23 | month: '1 ay', 24 | months: '%d ay', 25 | year: '1 il', 26 | years: '%d il', 27 | wordSeparator: '', 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.es.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Spanish 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "hace", 13 | prefixFromNow: "dentro de", 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "menos de un minuto", 17 | minute: "un minuto", 18 | minutes: "unos %d minutos", 19 | hour: "una hora", 20 | hours: "%d horas", 21 | day: "un día", 22 | days: "%d días", 23 | month: "un mes", 24 | months: "%d meses", 25 | year: "un año", 26 | years: "%d años" 27 | }; 28 | })); 29 | 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-br.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Brazilian Portuguese 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "há", 13 | prefixFromNow: "em", 14 | suffixAgo: null, 15 | suffixFromNow: null, 16 | seconds: "alguns segundos", 17 | minute: "um minuto", 18 | minutes: "%d minutos", 19 | hour: "uma hora", 20 | hours: "%d horas", 21 | day: "um dia", 22 | days: "%d dias", 23 | month: "um mês", 24 | months: "%d meses", 25 | year: "um ano", 26 | years: "%d anos" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ps.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="د مهربانۍ لمخي "+t+" توری ړنګ کړئ";return t!=1&&(n=n.replace("توری","توري")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لږ تر لږه "+t+" يا ډېر توري وليکئ";return n},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(e){var t="تاسو يوازي "+e.maximum+" قلم په نښه کولای سی";return e.maximum!=1&&(t=t.replace("قلم","قلمونه")),t},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.az.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Azerbaijani 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: 'əvvəl', 15 | suffixFromNow: 'sonra', 16 | seconds: 'saniyələr', 17 | minute: '1 dəqiqə', 18 | minutes: '%d dəqiqə', 19 | hour: '1 saat', 20 | hours: '%d saat', 21 | day: '1 gün', 22 | days: '%d gün', 23 | month: '1 ay', 24 | months: '%d ay', 25 | year: '1 il', 26 | years: '%d il', 27 | wordSeparator: '', 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.lt.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | //Lithuanian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "prieš", 13 | prefixFromNow: null, 14 | suffixAgo: null, 15 | suffixFromNow: "nuo dabar", 16 | seconds: "%d sek.", 17 | minute: "min.", 18 | minutes: "%d min.", 19 | hour: "val.", 20 | hours: "%d val.", 21 | day: "1 d.", 22 | days: "%d d.", 23 | month: "mėn.", 24 | months: "%d mėn.", 25 | year: "metus", 26 | years: "%d metus", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.lv.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | //Latvian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "pirms", 13 | prefixFromNow: null, 14 | suffixAgo: null, 15 | suffixFromNow: "no šī brīža", 16 | seconds: "%d sek.", 17 | minute: "min.", 18 | minutes: "%d min.", 19 | hour: "st.", 20 | hours: "%d st.", 21 | day: "1 d.", 22 | days: "%d d.", 23 | month: "mēnesis.", 24 | months: "%d mēnesis.", 25 | year: "gads", 26 | years: "%d gads", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Quartz/Czar.AbpDemo.Quartz.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | Czar.AbpDemo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/sl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.eu.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | jQuery.timeago.settings.strings = { 11 | prefixAgo: "duela", 12 | prefixFromNow: "hemendik", 13 | suffixAgo: "", 14 | suffixFromNow: "barru", 15 | seconds: "minutu bat bainu gutxiago", 16 | minute: "minutu bat", 17 | minutes: "%d minutu inguru", 18 | hour: "ordu bat", 19 | hours: "%d ordu", 20 | day: "egun bat", 21 | days: "%d egun", 22 | month: "hilabete bat", 23 | months: "%d hilabete", 24 | year: "urte bat", 25 | years: "%d urte" 26 | }; 27 | })); 28 | 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.de.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // German 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "vor", 13 | prefixFromNow: "in", 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "wenigen Sekunden", 17 | minute: "etwa einer Minute", 18 | minutes: "%d Minuten", 19 | hour: "etwa einer Stunde", 20 | hours: "%d Stunden", 21 | day: "etwa einem Tag", 22 | days: "%d Tagen", 23 | month: "etwa einem Monat", 24 | months: "%d Monaten", 25 | year: "etwa einem Jahr", 26 | years: "%d Jahren" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.el.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Greek 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "πριν", 13 | prefixFromNow: "σε", 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "λιγότερο από ένα λεπτό", 17 | minute: "περίπου ένα λεπτό", 18 | minutes: "%d λεπτά", 19 | hour: "περίπου μία ώρα", 20 | hours: "περίπου %d ώρες", 21 | day: "μία μέρα", 22 | days: "%d μέρες", 23 | month: "περίπου ένα μήνα", 24 | months: "%d μήνες", 25 | year: "περίπου ένα χρόνο", 26 | years: "%d χρόνια" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.is.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | jQuery.timeago.settings.strings = { 11 | prefixAgo: "fyrir", 12 | prefixFromNow: "eftir", 13 | suffixAgo: "síðan", 14 | suffixFromNow: null, 15 | seconds: "minna en mínútu", 16 | minute: "mínútu", 17 | minutes: "%d mínútum", 18 | hour: "klukkutíma", 19 | hours: "um %d klukkutímum", 20 | day: "degi", 21 | days: "%d dögum", 22 | month: "mánuði", 23 | months: "%d mánuðum", 24 | year: "ári", 25 | years: "%d árum", 26 | wordSeparator: " ", 27 | numbers: [] 28 | }; 29 | })); 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.si.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Sinhalese (SI) 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "පෙර", 15 | suffixFromNow: "පසුව", 16 | seconds: "තත්පර කිහිපයකට", 17 | minute: "මිනිත්තුවකට පමණ", 18 | minutes: "මිනිත්තු %d කට", 19 | hour: "පැයක් පමණ ", 20 | hours: "පැය %d කට පමණ", 21 | day: "දවසක ට", 22 | days: "දවස් %d කට ", 23 | month: "මාසයක් පමණ", 24 | months: "මාස %d කට", 25 | year: "වසරක් පමණ", 26 | years: "වසරක් %d කට පමණ" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.sv.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Swedish 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "för", 13 | prefixFromNow: "om", 14 | suffixAgo: "sedan", 15 | suffixFromNow: "", 16 | seconds: "mindre än en minut", 17 | minute: "ungefär en minut", 18 | minutes: "%d minuter", 19 | hour: "ungefär en timme", 20 | hours: "ungefär %d timmar", 21 | day: "en dag", 22 | days: "%d dagar", 23 | month: "ungefär en månad", 24 | months: "%d månader", 25 | year: "ungefär ett år", 26 | years: "%d år" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Application.Tests/Samples/SampleTest.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using Shouldly; 4 | using Volo.Abp.Identity; 5 | using Xunit; 6 | 7 | namespace Czar.AbpDemo.Samples 8 | { 9 | public class SampleTest : AbpDemoApplicationTestBase 10 | { 11 | private readonly IIdentityUserAppService _userAppService; 12 | 13 | public SampleTest() 14 | { 15 | _userAppService = ServiceProvider.GetRequiredService(); 16 | } 17 | 18 | [Fact] 19 | public async Task Initial_Data_Should_Contain_Admin_User() 20 | { 21 | var result = await _userAppService.GetListAsync(new GetIdentityUsersInput()); 22 | result.TotalCount.ShouldBeGreaterThan(0); 23 | result.Items.ShouldContain(u => u.UserName == "admin"); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+" sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.af.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Afrikaans 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "gelede", 15 | suffixFromNow: "van nou af", 16 | seconds: "%d sekondes", 17 | minute: "1 minuut", 18 | minutes: "%d minute", 19 | hour: "1 uur", 20 | hours: "%d ure", 21 | day: "1 dag", 22 | days: "%d dae", 23 | month: "1 maand", 24 | months: "%d maande", 25 | year: "1 jaar", 26 | years: "%d jaar", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ca.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Catalan 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "fa", 13 | prefixFromNow: "d'aquí", 14 | suffixAgo: null, 15 | suffixFromNow: null, 16 | seconds: "menys d'un minut", 17 | minute: "un minut", 18 | minutes: "%d minuts", 19 | hour: "una hora", 20 | hours: "%d hores", 21 | day: "un dia", 22 | days: "%d dies", 23 | month: "un mes", 24 | months: "%d mesos", 25 | year: "un any", 26 | years: "%d anys", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.am.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Amharic 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "በፊት", 15 | suffixFromNow: "በኋላ", 16 | seconds: "ከአንድ ደቂቃ በታች", 17 | minute: "ከአንድ ደቂቃ ገደማ", 18 | minutes: "ከ%d ደቂቃ", 19 | hour: "ከአንድ ሰዓት ገደማ", 20 | hours: "ከ%d ሰዓት ገደማ", 21 | day: "ከአንድ ቀን", 22 | days: "ከ%d ቀን", 23 | month: "ከአንድ ወር ገደማ", 24 | months: "ከ%d ወር", 25 | year: "ከአንድ ዓመት ገደማ", 26 | years: "ከ%d ዓመት", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.cy.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Welsh 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "yn ôl", 15 | suffixFromNow: "o hyn", 16 | seconds: "llai na munud", 17 | minute: "am funud", 18 | minutes: "%d munud", 19 | hour: "tua awr", 20 | hours: "am %d awr", 21 | day: "y dydd", 22 | days: "%d diwrnod", 23 | month: "tua mis", 24 | months: "%d mis", 25 | year: "am y flwyddyn", 26 | years: "%d blynedd", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.rw.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Kinyarwanda 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "hashize", 13 | prefixFromNow: "mu", 14 | suffixAgo: null, 15 | suffixFromNow: null, 16 | seconds: "amasegonda macye", 17 | minute: "umunota", 18 | minutes: "iminota %d", 19 | hour: "isaha", 20 | hours: "amasaha %d", 21 | day: "umunsi", 22 | days: "iminsi %d", 23 | month: "ukwezi", 24 | months: "amezi %d", 25 | year: "umwaka", 26 | years: "imyaka %d", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Czar.AbpDemo.Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | Czar.AbpDemo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.id.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Indonesian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "yang lalu", 15 | suffixFromNow: "dari sekarang", 16 | seconds: "kurang dari semenit", 17 | minute: "sekitar satu menit", 18 | minutes: "%d menit", 19 | hour: "sekitar sejam", 20 | hours: "sekitar %d jam", 21 | day: "sehari", 22 | days: "%d hari", 23 | month: "sekitar sebulan", 24 | months: "%d bulan", 25 | year: "sekitar setahun", 26 | years: "%d tahun" 27 | }; 28 | })); 29 | 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.mk.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Macedonian 11 | (function() { 12 | jQuery.timeago.settings.strings={ 13 | prefixAgo: "пред", 14 | prefixFromNow: "за", 15 | suffixAgo: null, 16 | suffixFromNow: null, 17 | seconds: "%d секунди", 18 | minute: "%d минута", 19 | minutes: "%d минути", 20 | hour: "%d час", 21 | hours: "%d часа", 22 | day: "%d ден", 23 | days: "%d денови" , 24 | month: "%d месец", 25 | months: "%d месеци", 26 | year: "%d година", 27 | years: "%d години" 28 | }; 29 | })(); 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Quartz/Job/LogTestJob.cs: -------------------------------------------------------------------------------- 1 | 2 | using Quartz; 3 | using Serilog; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | 10 | namespace Czar.AbpDemo.Job 11 | { 12 | public class LogTestJob : IJob 13 | { 14 | public async Task Execute(IJobExecutionContext context) 15 | { 16 | JobDataMap dataMap = context.JobDetail.JobDataMap; 17 | string serverName = dataMap.GetString("ServerName"); 18 | if (string.IsNullOrEmpty(serverName)) 19 | { 20 | serverName = "kong"; 21 | } 22 | Log.Information(serverName); 23 | await Task.CompletedTask; 24 | } 25 | 26 | public async Task Test() 27 | { 28 | Thread.Sleep(10000); 29 | await Task.CompletedTask; 30 | 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.fa-short.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // persion shortened 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "", 15 | suffixFromNow: "", 16 | seconds: "1دقیقه", 17 | minute: "1دقیقه", 18 | minutes: "%dدقیقه", 19 | hour: "1ساعت", 20 | hours: "%dساعت", 21 | day: "1روز", 22 | days: "%dروز", 23 | month: "1ماه", 24 | months: "%dماه", 25 | year: "1سال", 26 | years: "%dسال", 27 | wordSeparator: " ", 28 | numbers: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.fr.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // French 11 | jQuery.timeago.settings.strings = { 12 | // environ ~= about, it's optional 13 | prefixAgo: "il y a", 14 | prefixFromNow: "d'ici", 15 | seconds: "moins d'une minute", 16 | minute: "environ une minute", 17 | minutes: "environ %d minutes", 18 | hour: "environ une heure", 19 | hours: "environ %d heures", 20 | day: "environ un jour", 21 | days: "environ %d jours", 22 | month: "environ un mois", 23 | months: "environ %d mois", 24 | year: "un an", 25 | years: "%d ans" 26 | }; 27 | })); 28 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.hu.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Hungarian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: null, 15 | suffixFromNow: null, 16 | seconds: "kevesebb mint egy perce", 17 | minute: "körülbelül egy perce", 18 | minutes: "%d perce", 19 | hour: "körülbelül egy órája", 20 | hours: "körülbelül %d órája", 21 | day: "körülbelül egy napja", 22 | days: "%d napja", 23 | month: "körülbelül egy hónapja", 24 | months: "%d hónapja", 25 | year: "körülbelül egy éve", 26 | years: "%d éve" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ur.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Urdu 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "پہلے", 15 | suffixFromNow: "اب سے", 16 | seconds: "کچھ سیکنڈز", 17 | minute: "تقریباً ایک منٹ", 18 | minutes: "%d منٹ", 19 | hour: "تقریباً ایک گھنٹہ", 20 | hours: "تقریباً %d گھنٹے", 21 | day: "ایک دن", 22 | days: "%d دن", 23 | month: "تقریباً ایک مہینہ", 24 | months: "%d مہینے", 25 | year: "تقریباً ایک سال", 26 | years: "%d سال", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/el.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/bs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bs",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.jv.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Javanesse (Boso Jowo) 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "kepungkur", 15 | suffixFromNow: "seko saiki", 16 | seconds: "kurang seko sakmenit", 17 | minute: "kurang luwih sakmenit", 18 | minutes: "%d menit", 19 | hour: "kurang luwih sakjam", 20 | hours: "kurang luwih %d jam", 21 | day: "sedina", 22 | days: "%d dina", 23 | month: "kurang luwih sewulan", 24 | months: "%d wulan", 25 | year: "kurang luwih setahun", 26 | years: "%d tahun" 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.th.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Thai 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "ที่แล้ว", 15 | suffixFromNow: "จากตอนนี้", 16 | seconds: "น้อยกว่าหนึ่งนาที", 17 | minute: "ประมาณหนึ่งนาที", 18 | minutes: "%d นาที", 19 | hour: "ประมาณหนึ่งชั่วโมง", 20 | hours: "ประมาณ %d ชั่วโมง", 21 | day: "หนึ่งวัน", 22 | days: "%d วัน", 23 | month: "ประมาณหนึ่งเดือน", 24 | months: "%d เดือน", 25 | year: "ประมาณหนึ่งปี", 26 | years: "%d ปี", 27 | wordSeparator: "", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.en.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // English (Template) 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "ago", 15 | suffixFromNow: "from now", 16 | seconds: "less than a minute", 17 | minute: "about a minute", 18 | minutes: "%d minutes", 19 | hour: "about an hour", 20 | hours: "about %d hours", 21 | day: "a day", 22 | days: "%d days", 23 | month: "about a month", 24 | months: "%d months", 25 | year: "about a year", 26 | years: "%d years", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.vi.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Vietnamese 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: 'cách đây', 13 | prefixFromNow: null, 14 | suffixAgo: null, 15 | suffixFromNow: "trước", 16 | seconds: "chưa đến một phút", 17 | minute: "khoảng một phút", 18 | minutes: "%d phút", 19 | hour: "khoảng một tiếng", 20 | hours: "khoảng %d tiếng", 21 | day: "một ngày", 22 | days: "%d ngày", 23 | month: "khoảng một tháng", 24 | months: "%d tháng", 25 | year: "khoảng một năm", 26 | years: "%d năm", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.nl.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Dutch 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: "over", 14 | suffixAgo: "geleden", 15 | suffixFromNow: null, 16 | seconds: "minder dan een minuut", 17 | minute: "ongeveer een minuut", 18 | minutes: "%d minuten", 19 | hour: "ongeveer een uur", 20 | hours: "ongeveer %d uur", 21 | day: "een dag", 22 | days: "%d dagen", 23 | month: "ongeveer een maand", 24 | months: "%d maanden", 25 | year: "ongeveer een jaar", 26 | years: "%d jaar", 27 | wordSeparator: " ", 28 | numbers: [] 29 | }; 30 | })); 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.he.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Hebrew 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: "לפני", 13 | prefixFromNow: "עוד", 14 | seconds: "פחות מדקה", 15 | minute: "דקה", 16 | minutes: "%d דקות", 17 | hour: "שעה", 18 | hours: function(number){return (number===2) ? "שעתיים" : "%d שעות";}, 19 | day: "יום", 20 | days: function(number){return (number===2) ? "יומיים" : "%d ימים";}, 21 | month: "חודש", 22 | months: function(number){return (number===2) ? "חודשיים" : "%d חודשים";}, 23 | year: "שנה", 24 | years: function(number){return (number===2) ? "שנתיים" : "%d שנים";} 25 | }; 26 | })); 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/dsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/dsb",[],function(){var e=["znamuško","znamušce","znamuška","znamuškow"],t=["zapisk","zapiska","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Pšosym lašuj "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Pšosym zapódaj nanejmjenjej "+r+" "+n(r,e)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(e){return"Móžoš jano "+e.maximum+" "+n(e.maximum,t)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/hsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hsb",[],function(){var e=["znamješko","znamješce","znamješka","znamješkow"],t=["zapisk","zapiskaj","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Prošu zhašej "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Prošu zapodaj znajmjeńša "+r+" "+n(r,e)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(e){return"Móžeš jenož "+e.maximum+" "+n(e.maximum,t)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.uz.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | //Uzbek 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: "keyin", 14 | suffixAgo: "avval", 15 | suffixFromNow: null, 16 | seconds: "bir necha soniya", 17 | minute: "1 daqiqa", 18 | minutes: function(value) { return "%d daqiqa"; }, 19 | hour: "1 soat", 20 | hours: function(value) { return "%d soat"; }, 21 | day: "1 kun", 22 | days: function(value) { return "%d kun"; }, 23 | month: "1 oy", 24 | months: function(value) { return "%d oy"; }, 25 | year: "1 yil", 26 | years: function(value) { return "%d yil"; }, 27 | wordSeparator: " " 28 | }; 29 | })); 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.dv.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | /** 11 | * Dhivehi time in Thaana for timeago.js 12 | **/ 13 | jQuery.timeago.settings.strings = { 14 | prefixAgo: null, 15 | prefixFromNow: null, 16 | suffixAgo: "ކުރިން", 17 | suffixFromNow: "ފަހުން", 18 | seconds: "ސިކުންތުކޮޅެއް", 19 | minute: "މިނިޓެއްވަރު", 20 | minutes: "%d މިނިޓު", 21 | hour: "ގަޑިއެއްވަރު", 22 | hours: "ގާތްގަނޑަކަށް %d ގަޑިއިރު", 23 | day: "އެއް ދުވަސް", 24 | days: "މީގެ %d ދުވަސް", 25 | month: "މަހެއްވަރު", 26 | months: "މީގެ %d މަސް", 27 | year: "އަހަރެއްވަރު", 28 | years: "މީގެ %d އަހަރު", 29 | wordSeparator: " ", 30 | numbers: [] 31 | }; 32 | })); 33 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/AbpDemoApplicationModule.cs: -------------------------------------------------------------------------------- 1 | using Czar.AbpDemo.Permissions; 2 | using Volo.Abp.Authorization.Permissions; 3 | using Volo.Abp.AutoMapper; 4 | using Volo.Abp.Identity; 5 | using Volo.Abp.Modularity; 6 | using Volo.Abp.PermissionManagement; 7 | 8 | namespace Czar.AbpDemo 9 | { 10 | [DependsOn( 11 | typeof(AbpDemoDomainModule), 12 | typeof(AbpIdentityApplicationModule), 13 | typeof(AbpPermissionManagementApplicationModule) 14 | )] 15 | public class AbpDemoApplicationModule : AbpModule 16 | { 17 | public override void ConfigureServices(ServiceConfigurationContext context) 18 | { 19 | Configure(options => 20 | { 21 | options.DefinitionProviders.Add(); 22 | }); 23 | 24 | Configure(options => 25 | { 26 | options.AddProfile(); 27 | }); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.fa.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Persian 11 | // Use DIR attribute for RTL text in Persian Language for ABBR tag . 12 | // By MB.seifollahi@gmail.com 13 | jQuery.timeago.settings.strings = { 14 | prefixAgo: null, 15 | prefixFromNow: null, 16 | suffixAgo: "پیش", 17 | suffixFromNow: "از حال", 18 | seconds: "کمتر از یک دقیقه", 19 | minute: "حدود یک دقیقه", 20 | minutes: "%d دقیقه", 21 | hour: "حدود یک ساعت", 22 | hours: "حدود %d ساعت", 23 | day: "یک روز", 24 | days: "%d روز", 25 | month: "حدود یک ماه", 26 | months: "%d ماه", 27 | year: "حدود یک سال", 28 | years: "%d سال", 29 | wordSeparator: " ", 30 | numbers: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] 31 | }; 32 | })); 33 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/README.md: -------------------------------------------------------------------------------- 1 | # Locale override examples for timeago 2 | 3 | You can represent time statements in most western languages where 4 | a prefix and/or suffix is used. 5 | 6 | The default case is to use suffix only (as in English), which you 7 | do by providing the `suffixAgo` and `suffixFromNow` settings in 8 | the strings hash (earlier versions of timeago used the deprecated 9 | `ago` and `fromNow` options). If present, they are used. 10 | 11 | 2 minutes [suffixAgo] 12 | 2 minutes [suffixFromNow] 13 | 14 | In case you want to use prefix only instead of 15 | suffix (e.g. Greek), you provide the `prefixAgo` and 16 | `prefixFromNow` options in the strings hash and leave `suffixAgo` 17 | and `suffixFromNow` empty or null. 18 | 19 | [prefixAgo] 2 minutes 20 | [prefixFromNow] 2 minutes 21 | 22 | For languages where you want to use a prefix only for future 23 | tense and prefix/suffix for past tense (for example swedish), you 24 | can combine the prefix and suffixes as needed. 25 | 26 | [prefixAgo] 2 minutes [suffixAgo] 27 | [prefixFromNow] 2 minutes 28 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/BookStore/BookType.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述: 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/19 14:09:16 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.BookStore 10 | *│ 类 名: BookType 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.Text; 16 | 17 | namespace Czar.AbpDemo.BookStore 18 | { 19 | public enum BookType:byte 20 | { 21 | Undefined, 22 | Advanture, 23 | Biography, 24 | Dystopia, 25 | Fantastic, 26 | Horror, 27 | Science, 28 | ScienceFiction, 29 | Poetry 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Czar.AbpDemo.sln.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | True 3 | D:\github\abp\common.DotSettings 4 | ..\..\..\common.DotSettings 5 | True 6 | 1 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 依乐祝 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 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.EntityFrameworkCore/EntityFrameworkCore/AbpDemoDbContextFactory.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using Microsoft.EntityFrameworkCore; 3 | using Microsoft.EntityFrameworkCore.Design; 4 | using Microsoft.Extensions.Configuration; 5 | 6 | namespace Czar.AbpDemo.EntityFrameworkCore 7 | { 8 | public class AbpDemoDbContextFactory : IDesignTimeDbContextFactory 9 | { 10 | public AbpDemoDbContext CreateDbContext(string[] args) 11 | { 12 | var configuration = BuildConfiguration(); 13 | 14 | var builder = new DbContextOptionsBuilder() 15 | .UseSqlServer(configuration.GetConnectionString("Default")); 16 | 17 | return new AbpDemoDbContext(builder.Options); 18 | } 19 | 20 | private static IConfigurationRoot BuildConfiguration() 21 | { 22 | var builder = new ConfigurationBuilder() 23 | .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../Czar.AbpDemo.Web/")) 24 | .AddJsonFile("appsettings.json", optional: false); 25 | 26 | return builder.Build(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Localization/AbpDemo/zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "culture": "zh-Hans", 3 | "texts": { 4 | "Menu:Home": "首页", 5 | "Menu:BookStore": "图书馆", 6 | "Menu:Books": "图书管理", 7 | "Menu:JobSchedule": "任务调度", 8 | "Menu:JobInfo": "任务管理", 9 | "Welcome": "欢迎", 10 | "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 cn.abp.io.", 11 | "New": "新增", 12 | "Update": "更新", 13 | "Actions": "操作", 14 | "ActionsEdit": "编辑", 15 | "ActionsDelete": "删除", 16 | "ActionsDeletionConfirmationMessage": "确定删除{0}吗?", 17 | "ActionsSuccessfullyDeleted": "删除成功!", 18 | "Books:Name": "书籍名称", 19 | "Books:Type": "书籍类型", 20 | "Books:PublishDate": "出版日期", 21 | "Books:Price": "书籍价格", 22 | "Books:CreationTime": "创建时间", 23 | "Books:Book": "书籍", 24 | "JobSchedule:JobInfo": "任务调度", 25 | "JobSchedule:JobGroup": "工作组", 26 | "JobSchedule:JobName": "任务名称", 27 | "JobSchedule:JobDescription": "任务描述", 28 | "JobSchedule:JobStatus": "任务状态", 29 | "JobSchedule:CronExpress": "Cron表达式", 30 | "JobSchedule:StarTime": "开始时间", 31 | "JobSchedule:EndTime": "结束时间", 32 | "JobSchedule:NextTime": "下次执行时间" 33 | } 34 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/compilerconfig.json.defaults: -------------------------------------------------------------------------------- 1 | { 2 | "compilers": { 3 | "less": { 4 | "autoPrefix": "", 5 | "cssComb": "none", 6 | "ieCompat": true, 7 | "strictMath": false, 8 | "strictUnits": false, 9 | "relativeUrls": true, 10 | "rootPath": "", 11 | "sourceMapRoot": "", 12 | "sourceMapBasePath": "", 13 | "sourceMap": false 14 | }, 15 | "sass": { 16 | "includePath": "", 17 | "indentType": "space", 18 | "indentWidth": 2, 19 | "outputStyle": "nested", 20 | "Precision": 5, 21 | "relativeUrls": true, 22 | "sourceMapRoot": "", 23 | "sourceMap": false 24 | }, 25 | "stylus": { 26 | "sourceMap": false 27 | }, 28 | "babel": { 29 | "sourceMap": false 30 | }, 31 | "coffeescript": { 32 | "bare": false, 33 | "runtimeMode": "node", 34 | "sourceMap": false 35 | } 36 | }, 37 | "minifiers": { 38 | "css": { 39 | "enabled": true, 40 | "termSemicolons": true, 41 | "gzip": false 42 | }, 43 | "javascript": { 44 | "enabled": true, 45 | "termSemicolons": true, 46 | "gzip": false 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Books/Index.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @model Czar.AbpDemo.Web.Pages.Books.IndexModel 4 | @section scripts{ 5 | 6 | } 7 | 8 | 9 | 10 | 11 |

@L["Books:Book"]

12 | 13 | 14 | 15 | 16 |
17 | 18 |
19 | 20 | 21 | 22 | 23 | @L["Actions"] 24 | @L["Books:Name"] 25 | @L["Books:Type"] 26 | @L["Books:PublishDate"] 27 | @L["Books:Price"] 28 | @L["Books:CreationTime"] 29 | 30 | 31 | 32 | 33 |
34 | 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/cs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadejte o jeden znak méně.":n<=4?"Prosím, zadejte o "+e(n,!0)+" znaky méně.":"Prosím, zadejte o "+n+" znaků méně."},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadejte ještě jeden znak.":n<=4?"Prosím, zadejte ještě další "+e(n,!0)+" znaky.":"Prosím, zadejte ještě dalších "+n+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku.":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky.":"Můžete zvolit maximálně "+n+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/JobSchedule/JobStatu.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述: 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/25 17:26:48 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.JobSchedule 10 | *│ 类 名: JobStatus 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.ComponentModel; 16 | using System.Text; 17 | 18 | namespace Czar.AbpDemo.JobSchedule 19 | { 20 | public enum JobStatu: byte 21 | { 22 | [Description("执行中")] 23 | Running, 24 | [Description("已完成")] 25 | Completed, 26 | [Description("已停止")] 27 | Stopped, 28 | [Description("系统停止")] 29 | SystemStopped, 30 | [Description("已删除")] 31 | Deleted, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_zh.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "这是必填字段", 17 | remote: "请修正此字段", 18 | email: "请输入有效的电子邮件地址", 19 | url: "请输入有效的网址", 20 | date: "请输入有效的日期", 21 | dateISO: "请输入有效的日期 (YYYY-MM-DD)", 22 | number: "请输入有效的数字", 23 | digits: "只能输入数字", 24 | creditcard: "请输入有效的信用卡号码", 25 | equalTo: "你的输入不相同", 26 | extension: "请输入有效的后缀", 27 | maxlength: $.validator.format( "最多可以输入 {0} 个字符" ), 28 | minlength: $.validator.format( "最少要输入 {0} 个字符" ), 29 | rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ), 30 | range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ), 31 | max: $.validator.format( "请输入不大于 {0} 的数值" ), 32 | min: $.validator.format( "请输入不小于 {0} 的数值" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/select2/js/i18n/sk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語) 14 | * Region: TW (Taiwan) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "必須填寫", 18 | remote: "請修正此欄位", 19 | email: "請輸入有效的電子郵件", 20 | url: "請輸入有效的網址", 21 | date: "請輸入有效的日期", 22 | dateISO: "請輸入有效的日期 (YYYY-MM-DD)", 23 | number: "請輸入正確的數值", 24 | digits: "只可輸入數字", 25 | creditcard: "請輸入有效的信用卡號碼", 26 | equalTo: "請重複輸入一次", 27 | extension: "請輸入有效的後綴", 28 | maxlength: $.validator.format( "最多 {0} 個字" ), 29 | minlength: $.validator.format( "最少 {0} 個字" ), 30 | rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ), 31 | range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ), 32 | max: $.validator.format( "請輸入不大於 {0} 的數值" ), 33 | min: $.validator.format( "請輸入不小於 {0} 的數值" ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/BookStore/BookDto.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述:在 基础设施层 和 应用层 传递数据 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/19 14:21:27 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.BookStore 10 | *│ 类 名: BookDto 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.Text; 16 | using Volo.Abp.Application.Dtos; 17 | using Volo.Abp.AutoMapper; 18 | 19 | namespace Czar.AbpDemo.BookStore 20 | { 21 | [AutoMapFrom(typeof(Book))] 22 | public class BookDto:AuditedEntityDto 23 | { 24 | public string Name { get; set; } 25 | 26 | public BookType Type { get; set; } 27 | 28 | public DateTime PublishDate { get; set; } 29 | 30 | public float Price { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_ko.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: KO (Korean; 한국어) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "필수 항목입니다.", 17 | remote: "항목을 수정하세요.", 18 | email: "유효하지 않은 E-Mail주소입니다.", 19 | url: "유효하지 않은 URL입니다.", 20 | date: "올바른 날짜를 입력하세요.", 21 | dateISO: "올바른 날짜(ISO)를 입력하세요.", 22 | number: "유효한 숫자가 아닙니다.", 23 | digits: "숫자만 입력 가능합니다.", 24 | creditcard: "신용카드 번호가 바르지 않습니다.", 25 | equalTo: "같은 값을 다시 입력하세요.", 26 | extension: "올바른 확장자가 아닙니다.", 27 | maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ), 28 | minlength: $.validator.format( "{0}자 이상 입력하세요." ), 29 | rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ), 30 | range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ), 31 | max: $.validator.format( "{0} 이하의 값을 입력하세요." ), 32 | min: $.validator.format( "{0} 이상의 값을 입력하세요." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_sk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SK (Slovak; slovenčina, slovenský jazyk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Povinné zadať.", 17 | maxlength: $.validator.format( "Maximálne {0} znakov." ), 18 | minlength: $.validator.format( "Minimálne {0} znakov." ), 19 | rangelength: $.validator.format( "Minimálne {0} a maximálne {1} znakov." ), 20 | email: "E-mailová adresa musí byť platná.", 21 | url: "URL musí byť platná.", 22 | date: "Musí byť dátum.", 23 | number: "Musí byť číslo.", 24 | digits: "Môže obsahovať iba číslice.", 25 | equalTo: "Dve hodnoty sa musia rovnať.", 26 | range: $.validator.format( "Musí byť medzi {0} a {1}." ), 27 | max: $.validator.format( "Nemôže byť viac ako {0}." ), 28 | min: $.validator.format( "Nemôže byť menej ako {0}." ), 29 | creditcard: "Číslo platobnej karty musí byť platné." 30 | } ); 31 | return $; 32 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_da.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: DA (Danish; dansk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dette felt er påkrævet.", 17 | maxlength: $.validator.format( "Indtast højst {0} tegn." ), 18 | minlength: $.validator.format( "Indtast mindst {0} tegn." ), 19 | rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ), 20 | email: "Indtast en gyldig email-adresse.", 21 | url: "Indtast en gyldig URL.", 22 | date: "Indtast en gyldig dato.", 23 | number: "Indtast et tal.", 24 | digits: "Indtast kun cifre.", 25 | equalTo: "Indtast den samme værdi igen.", 26 | range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ), 27 | max: $.validator.format( "Angiv en værdi der højst er {0}." ), 28 | min: $.validator.format( "Angiv en værdi der mindst er {0}." ), 29 | creditcard: "Indtast et gyldigt kreditkortnummer." 30 | } ); 31 | return $; 32 | })); -------------------------------------------------------------------------------- /test/Czar.AbpDemo.Application.Tests/Czar.AbpDemo.Application.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | Czar.AbpDemo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/BookStore/Book.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述:书籍信息 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/19 14:03:52 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.BookStore 10 | *│ 类 名: Book 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.Text; 16 | using System.ComponentModel.DataAnnotations; 17 | using System.ComponentModel.DataAnnotations.Schema; 18 | using Volo.Abp.Domain.Entities.Auditing; 19 | 20 | namespace Czar.AbpDemo.BookStore 21 | { 22 | [Table("Books")] 23 | public class Book:AuditedAggregateRoot 24 | { 25 | [Required,StringLength(128)] 26 | public string Name { get; set; } 27 | 28 | public BookType Type { get; set; } 29 | 30 | public DateTime PublishDate{ get; set; } 31 | 32 | public float Price { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.pl.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Polish 11 | function numpf(n, s, t) { 12 | // s - 2-4, 22-24, 32-34 ... 13 | // t - 5-21, 25-31, ... 14 | var n10 = n % 10; 15 | if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { 16 | return s; 17 | } else { 18 | return t; 19 | } 20 | } 21 | 22 | jQuery.timeago.settings.strings = { 23 | prefixAgo: null, 24 | prefixFromNow: "za", 25 | suffixAgo: "temu", 26 | suffixFromNow: null, 27 | seconds: "mniej niż minutę", 28 | minute: "minutę", 29 | minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); }, 30 | hour: "godzinę", 31 | hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); }, 32 | day: "dzień", 33 | days: "%d dni", 34 | month: "miesiąc", 35 | months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); }, 36 | year: "rok", 37 | years: function(value) { return numpf(value, "%d lata", "%d lat"); } 38 | }; 39 | })); 40 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Domain/Localization/AbpDemo/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "culture": "en", 3 | "texts": { 4 | "Menu:Home": "Home", 5 | "Menu:BookStore": "Book Store", 6 | "Menu:Books": "Books", 7 | "Menu:JobSchedule": "JobSchedule", 8 | "Menu:JobInfo": "Job", 9 | "Welcome": "Welcome", 10 | "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io.", 11 | "New": "New", 12 | "Update": "Update", 13 | "Actions": "Actions", 14 | "ActionsEdit": "Edit", 15 | "ActionsDelete": "Delete", 16 | "ActionsBookDeletionConfirmationMessage": "Are you sure to delete this book: {0}", 17 | "ActionsSuccessfullyDeleted": "Deleted Sucessful!", 18 | "Books:Name": "Name", 19 | "Books:Type": "Type", 20 | "Books:PublishDate": "PublishDate", 21 | "Books:Price": "Price", 22 | "Books:CreationTime": "CreationTime", 23 | "Books:Book": "Book", 24 | "JobSchedule:JobInfo": "JobSchedule", 25 | "JobSchedule:JobGroup": "Group", 26 | "JobSchedule:JobName": "Name", 27 | "JobSchedule:JobDescription": "Description", 28 | "JobSchedule:JobStatus": "Status", 29 | "JobSchedule:CronExpress": "CronExpress", 30 | "JobSchedule:StarTime": "StarTime", 31 | "JobSchedule:EndTime": "EndTime", 32 | "JobSchedule:NextTime": "NextTime" 33 | } 34 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_vi.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: VI (Vietnamese; Tiếng Việt) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Hãy nhập.", 17 | remote: "Hãy sửa cho đúng.", 18 | email: "Hãy nhập email.", 19 | url: "Hãy nhập URL.", 20 | date: "Hãy nhập ngày.", 21 | dateISO: "Hãy nhập ngày (ISO).", 22 | number: "Hãy nhập số.", 23 | digits: "Hãy nhập chữ số.", 24 | creditcard: "Hãy nhập số thẻ tín dụng.", 25 | equalTo: "Hãy nhập thêm lần nữa.", 26 | extension: "Phần mở rộng không đúng.", 27 | maxlength: $.validator.format( "Hãy nhập từ {0} kí tự trở xuống." ), 28 | minlength: $.validator.format( "Hãy nhập từ {0} kí tự trở lên." ), 29 | rangelength: $.validator.format( "Hãy nhập từ {0} đến {1} kí tự." ), 30 | range: $.validator.format( "Hãy nhập từ {0} đến {1}." ), 31 | max: $.validator.format( "Hãy nhập từ {0} trở xuống." ), 32 | min: $.validator.format( "Hãy nhập từ {1} trở lên." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.EntityFrameworkCore/EntityFrameworkCore/AbpDemoDbContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | using Volo.Abp.AuditLogging.EntityFrameworkCore; 3 | using Volo.Abp.BackgroundJobs.EntityFrameworkCore; 4 | using Volo.Abp.Data; 5 | using Volo.Abp.EntityFrameworkCore; 6 | using Volo.Abp.Identity.EntityFrameworkCore; 7 | using Volo.Abp.PermissionManagement.EntityFrameworkCore; 8 | using Volo.Abp.SettingManagement.EntityFrameworkCore; 9 | 10 | namespace Czar.AbpDemo.EntityFrameworkCore 11 | { 12 | [ConnectionStringName("Default")] 13 | public class AbpDemoDbContext : AbpDbContext 14 | { 15 | public AbpDemoDbContext(DbContextOptions options) 16 | : base(options) 17 | { 18 | 19 | } 20 | 21 | public DbSet Books { get; set; } 22 | public DbSet JobInfos { get; set; } 23 | 24 | 25 | protected override void OnModelCreating(ModelBuilder modelBuilder) 26 | { 27 | base.OnModelCreating(modelBuilder); 28 | 29 | modelBuilder.ConfigureIdentity(); 30 | modelBuilder.ConfigurePermissionManagement(); 31 | modelBuilder.ConfigureSettingManagement(); 32 | modelBuilder.ConfigureBackgroundJobs(); 33 | modelBuilder.ConfigureAuditLogging(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_ja.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: JA (Japanese; 日本語) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "このフィールドは必須です。", 17 | remote: "このフィールドを修正してください。", 18 | email: "有効なEメールアドレスを入力してください。", 19 | url: "有効なURLを入力してください。", 20 | date: "有効な日付を入力してください。", 21 | dateISO: "有効な日付(ISO)を入力してください。", 22 | number: "有効な数字を入力してください。", 23 | digits: "数字のみを入力してください。", 24 | creditcard: "有効なクレジットカード番号を入力してください。", 25 | equalTo: "同じ値をもう一度入力してください。", 26 | extension: "有効な拡張子を含む値を入力してください。", 27 | maxlength: $.validator.format( "{0} 文字以内で入力してください。" ), 28 | minlength: $.validator.format( "{0} 文字以上で入力してください。" ), 29 | rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ), 30 | range: $.validator.format( "{0} から {1} までの値を入力してください。" ), 31 | step: $.validator.format( "{0} の倍数を入力してください。" ), 32 | max: $.validator.format( "{0} 以下の値を入力してください。" ), 33 | min: $.validator.format( "{0} 以上の値を入力してください。" ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/BookStore/IBookAppService.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述:继承IAsyncCrudAppService中定义了基础的 CRUD方法: 4 | * GetAsync, GetListAsync, CreateAsync, UpdateAsync 和 DeleteAsync 5 | *│ 作 者:yilezhu 6 | *│ 版 本:1.0 7 | *│ 创建时间:2019/2/19 14:27:44 8 | *└──────────────────────────────────────────────────────────────┘ 9 | *┌──────────────────────────────────────────────────────────────┐ 10 | *│ 命名空间: Czar.AbpDemo.BookStore 11 | *│ 接口名称: IBookAppService 12 | *└──────────────────────────────────────────────────────────────┘ 13 | */ 14 | using System; 15 | using System.Collections.Generic; 16 | using System.Text; 17 | using Volo.Abp.Application.Dtos; 18 | using Volo.Abp.Application.Services; 19 | 20 | namespace Czar.AbpDemo.BookStore 21 | { 22 | public interface IBookAppService : 23 | IAsyncCrudAppService< //定义了CRUD方法 24 | BookDto, //用来展示书籍 25 | Int32, //Book实体的主键 26 | PagedAndSortedResultRequestDto, //获取书籍的时候用于分页和排序 27 | CreateUpdateBookDto, //用于创建书籍 28 | CreateUpdateBookDto> //用户更新书籍 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_he.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HE (Hebrew; עברית) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "השדה הזה הינו שדה חובה", 17 | remote: "נא לתקן שדה זה", 18 | email: "נא למלא כתובת דוא\"ל חוקית", 19 | url: "נא למלא כתובת אינטרנט חוקית", 20 | date: "נא למלא תאריך חוקי", 21 | dateISO: "נא למלא תאריך חוקי (ISO)", 22 | number: "נא למלא מספר", 23 | digits: "נא למלא רק מספרים", 24 | creditcard: "נא למלא מספר כרטיס אשראי חוקי", 25 | equalTo: "נא למלא את אותו ערך שוב", 26 | extension: "נא למלא ערך עם סיומת חוקית", 27 | maxlength: $.validator.format( ".נא לא למלא יותר מ- {0} תווים" ), 28 | minlength: $.validator.format( "נא למלא לפחות {0} תווים" ), 29 | rangelength: $.validator.format( "נא למלא ערך בין {0} ל- {1} תווים" ), 30 | range: $.validator.format( "נא למלא ערך בין {0} ל- {1}" ), 31 | max: $.validator.format( "נא למלא ערך קטן או שווה ל- {0}" ), 32 | min: $.validator.format( "נא למלא ערך גדול או שווה ל- {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.et.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Estonian 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "tagasi", 15 | suffixFromNow: "pärast", 16 | seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega"; }, 17 | minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega"; }, 18 | minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit"; }, 19 | hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega"; }, 20 | hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi"; }, 21 | day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev"; }, 22 | days: "%d päeva", 23 | month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega"; }, 24 | months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud"; }, 25 | year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega"; }, 26 | years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat"; } 27 | }; 28 | })); 29 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_is.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: IS (Icelandic; íslenska) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Þessi reitur er nauðsynlegur.", 17 | remote: "Lagaðu þennan reit.", 18 | maxlength: $.validator.format( "Sláðu inn mest {0} stafi." ), 19 | minlength: $.validator.format( "Sláðu inn minnst {0} stafi." ), 20 | rangelength: $.validator.format( "Sláðu inn minnst {0} og mest {1} stafi." ), 21 | email: "Sláðu inn gilt netfang.", 22 | url: "Sláðu inn gilda vefslóð.", 23 | date: "Sláðu inn gilda dagsetningu.", 24 | number: "Sláðu inn tölu.", 25 | digits: "Sláðu inn tölustafi eingöngu.", 26 | equalTo: "Sláðu sama gildi inn aftur.", 27 | range: $.validator.format( "Sláðu inn gildi milli {0} og {1}." ), 28 | max: $.validator.format( "Sláðu inn gildi sem er minna en eða jafnt og {0}." ), 29 | min: $.validator.format( "Sláðu inn gildi sem er stærra en eða jafnt og {0}." ), 30 | creditcard: "Sláðu inn gilt greiðslukortanúmer." 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/BookStore/CreateUpdateBookDto.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述:创建和更新书籍的时候被使用,用来从页面获取图书信息 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/19 14:24:33 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.BookStore 10 | *│ 类 名: CreateUpdateBookDto 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.Text; 16 | using Volo.Abp.AutoMapper; 17 | using System.ComponentModel.DataAnnotations; 18 | 19 | namespace Czar.AbpDemo.BookStore 20 | { 21 | [AutoMapTo(typeof(Book))] 22 | [AutoMapFrom(typeof(BookDto))] 23 | public class CreateUpdateBookDto 24 | { 25 | [Required, StringLength(128)] 26 | public string Name { get; set; } 27 | [Required] 28 | public BookType Type { get; set; } = BookType.Undefined; 29 | [Required] 30 | public DateTime PublishDate { get; set; } 31 | [Required] 32 | public float Price { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/JobSchedule/Index.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @inherits Czar.AbpDemo.Pages.AbpDemoPageBase 3 | @model Czar.AbpDemo.Web.Pages.JobSchedule.IndexModel 4 | @section scripts{ 5 | 6 | } 7 | 8 | 9 | 10 | 11 |

@L["JobSchedule:JobInfo"]

12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 | 20 | 21 | @L["Actions"] 22 | @L["JobSchedule:JobGroup"] 23 | @L["JobSchedule:JobName"] 24 | @L["JobSchedule:JobDescription"] 25 | @L["JobSchedule:JobStatus"] 26 | @L["JobSchedule:CronExpress"] 27 | @L["JobSchedule:StarTime"] 28 | @L["JobSchedule:EndTime"] 29 | @L["JobSchedule:NextTime"] 30 | 31 | 32 | 33 | 34 |
35 | 36 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.fi.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Finnish 11 | jQuery.timeago.settings.strings = { 12 | prefixAgo: null, 13 | prefixFromNow: null, 14 | suffixAgo: "sitten", 15 | suffixFromNow: "tulevaisuudessa", 16 | seconds: "alle minuutti", 17 | minute: "minuutti", 18 | minutes: "%d minuuttia", 19 | hour: "tunti", 20 | hours: "%d tuntia", 21 | day: "päivä", 22 | days: "%d päivää", 23 | month: "kuukausi", 24 | months: "%d kuukautta", 25 | year: "vuosi", 26 | years: "%d vuotta" 27 | }; 28 | 29 | // The above is not a great localization because one would usually 30 | // write "2 days ago" in Finnish as "2 päivää sitten", however 31 | // one would write "2 days into the future" as "2:n päivän päästä" 32 | // which cannot be achieved with localization support this simple. 33 | // This is because Finnish has word suffixes (attached directly 34 | // to the end of the word). The word "day" is "päivä" in Finnish. 35 | // As workaround, the above localizations will say 36 | // "2 päivää tulevaisuudessa" which is understandable but 37 | // not as fluent. 38 | })); 39 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_ar.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: AR (Arabic; العربية) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "هذا الحقل إلزامي", 17 | remote: "يرجى تصحيح هذا الحقل للمتابعة", 18 | email: "رجاء إدخال عنوان بريد إلكتروني صحيح", 19 | url: "رجاء إدخال عنوان موقع إلكتروني صحيح", 20 | date: "رجاء إدخال تاريخ صحيح", 21 | dateISO: "رجاء إدخال تاريخ صحيح (ISO)", 22 | number: "رجاء إدخال عدد بطريقة صحيحة", 23 | digits: "رجاء إدخال أرقام فقط", 24 | creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", 25 | equalTo: "رجاء إدخال نفس القيمة", 26 | extension: "رجاء إدخال ملف بامتداد موافق عليه", 27 | maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ), 28 | minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ), 29 | rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ), 30 | range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ), 31 | max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي {0}" ), 32 | min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_th.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: TH (Thai; ไทย) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "โปรดระบุ", 17 | remote: "โปรดแก้ไขให้ถูกต้อง", 18 | email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง", 19 | url: "โปรดระบุ URL ที่ถูกต้อง", 20 | date: "โปรดระบุวันที่ ที่ถูกต้อง", 21 | dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).", 22 | number: "โปรดระบุทศนิยมที่ถูกต้อง", 23 | digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง", 24 | creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง", 25 | equalTo: "โปรดระบุค่าเดิมอีกครั้ง", 26 | extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง", 27 | maxlength: $.validator.format( "โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ" ), 28 | minlength: $.validator.format( "โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ" ), 29 | rangelength: $.validator.format( "โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ" ), 30 | range: $.validator.format( "โปรดระบุค่าระหว่าง {0} และ {1}" ), 31 | max: $.validator.format( "โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}" ), 32 | min: $.validator.format( "โปรดระบุค่ามากกว่าหรือเท่ากับ {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_sv.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SV (Swedish; Svenska) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Detta fält är obligatoriskt.", 17 | maxlength: $.validator.format( "Du får ange högst {0} tecken." ), 18 | minlength: $.validator.format( "Du måste ange minst {0} tecken." ), 19 | rangelength: $.validator.format( "Ange minst {0} och max {1} tecken." ), 20 | email: "Ange en korrekt e-postadress.", 21 | url: "Ange en korrekt URL.", 22 | date: "Ange ett korrekt datum.", 23 | dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).", 24 | number: "Ange ett korrekt nummer.", 25 | digits: "Ange endast siffror.", 26 | equalTo: "Ange samma värde igen.", 27 | range: $.validator.format( "Ange ett värde mellan {0} och {1}." ), 28 | max: $.validator.format( "Ange ett värde som är mindre eller lika med {0}." ), 29 | min: $.validator.format( "Ange ett värde som är större eller lika med {0}." ), 30 | creditcard: "Ange ett korrekt kreditkortsnummer." 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Menus/AbpDemoMenuContributor.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using Microsoft.Extensions.Localization; 4 | using Czar.AbpDemo.Localization.AbpDemo; 5 | using Volo.Abp.UI.Navigation; 6 | 7 | namespace Czar.AbpDemo.Menus 8 | { 9 | public class AbpDemoMenuContributor : IMenuContributor 10 | { 11 | public async Task ConfigureMenuAsync(MenuConfigurationContext context) 12 | { 13 | if (context.Menu.Name == StandardMenus.Main) 14 | { 15 | await ConfigureMainMenuAsync(context); 16 | } 17 | } 18 | 19 | private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) 20 | { 21 | var l = context.ServiceProvider.GetRequiredService>(); 22 | context.Menu.Items.Insert(0, new ApplicationMenuItem("Czar.AbpDemo.Home", l["Menu:Home"].Value, "/")); 23 | context.Menu.AddItem( 24 | new ApplicationMenuItem("BooksStore", l["Menu:BookStore"].Value) 25 | .AddItem(new ApplicationMenuItem("BooksStore.Books", l["Menu:Books"].Value, url: "/Books"))); 26 | context.Menu.AddItem( 27 | new ApplicationMenuItem("JobSchedule", l["Menu:JobSchedule"].Value) 28 | .AddItem(new ApplicationMenuItem("JobSchedule.JobInfo", l["Menu:JobInfo"].Value, url: "/JobSchedule"))); 29 | await Task.CompletedTask; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_sd.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SD (Sindhi; سنڌي) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "هنن جاين جي ضرورت آهي", 17 | remote: "هنن جاين جي ضرورت آهي", 18 | email: "لکيل اي ميل غلط آهي", 19 | url: "لکيل ايڊريس غلط آهي", 20 | date: "لکيل تاريخ غلط آهي", 21 | dateISO: "جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ", 22 | number: "لکيل انگ صحيح ناهي", 23 | digits: "رڳو انگ داخل ڪري سگهجي ٿو", 24 | creditcard: "لکيل ڪارڊ نمبر صحيح نه آهي", 25 | equalTo: "داخل ٿيل ڀيٽ صحيح نه آهي", 26 | extension: "لکيل غلط آهي", 27 | maxlength: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ), 28 | minlength: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ), 29 | rangelength: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ), 30 | range: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ), 31 | max: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ), 32 | min: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Pages/Books/CreateModal.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Czar.AbpDemo.Pages; 6 | using Microsoft.AspNetCore.Mvc; 7 | using Microsoft.AspNetCore.Mvc.RazorPages; 8 | using Czar.AbpDemo.BookStore; 9 | 10 | namespace Czar.AbpDemo.Web.Pages.Books 11 | { 12 | /// 13 | /// 继承了 BookStorePageModelBase 而非默认的 PageModel. 14 | /// BookStorePageModelBase 继承了 PageModel 并且添加了一些Razor页面模型通用的属性和方法. 15 | /// 16 | public class CreateModalModel : AbpDemoPageModelBase 17 | { 18 | /// 19 | /// 在 Book 属性上标记的 [BindProperty] 特性绑定了post请求提交上来的数据. 20 | /// 21 | [BindProperty] 22 | public CreateUpdateBookDto Book { get; set; } 23 | 24 | private readonly IBookAppService _bookAppService; 25 | 26 | /// 27 | /// 该类通过构造函数注入了 IBookAppService 应用服务. 28 | /// 29 | /// 30 | public CreateModalModel(IBookAppService bookAppService) 31 | { 32 | _bookAppService = bookAppService; 33 | } 34 | 35 | /// 36 | /// 并且在 OnPostAsync 方法中调用了服务的 CreateAsync 方法 37 | /// 38 | /// 39 | public async Task OnPostAsync() 40 | { 41 | await _bookAppService.CreateAsync(Book); 42 | return NoContent(); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_sr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SR (Serbian; српски језик) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Поље је обавезно.", 17 | remote: "Средите ово поље.", 18 | email: "Унесите исправну и-мејл адресу.", 19 | url: "Унесите исправан URL.", 20 | date: "Унесите исправан датум.", 21 | dateISO: "Унесите исправан датум (ISO).", 22 | number: "Унесите исправан број.", 23 | digits: "Унесите само цифе.", 24 | creditcard: "Унесите исправан број кредитне картице.", 25 | equalTo: "Унесите исту вредност поново.", 26 | extension: "Унесите вредност са одговарајућом екстензијом.", 27 | maxlength: $.validator.format( "Унесите мање од {0} карактера." ), 28 | minlength: $.validator.format( "Унесите барем {0} карактера." ), 29 | rangelength: $.validator.format( "Унесите вредност дугачку између {0} и {1} карактера." ), 30 | range: $.validator.format( "Унесите вредност између {0} и {1}." ), 31 | max: $.validator.format( "Унесите вредност мању или једнаку {0}." ), 32 | min: $.validator.format( "Унесите вредност већу или једнаку {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HY_AM (Armenian; հայերեն լեզու) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Պարտադիր լրացման դաշտ", 17 | remote: "Ներմուծեք ճիշտ արժեքը", 18 | email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե", 19 | url: "Ներմուծեք վավեր URL", 20 | date: "Ներմուծեք վավեր ամսաթիվ", 21 | dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։", 22 | number: "Ներմուծեք թիվ", 23 | digits: "Ներմուծեք միայն թվեր", 24 | creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար", 25 | equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ", 26 | extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ", 27 | maxlength: $.validator.format( "Ներմուծեք ոչ ավել քան {0} նիշ" ), 28 | minlength: $.validator.format( "Ներմուծեք ոչ պակաս քան {0} նիշ" ), 29 | rangelength: $.validator.format( "Ներմուծեք {0}֊ից {1} երկարությամբ արժեք" ), 30 | range: $.validator.format( "Ներմուծեք թիվ {0}֊ից {1} միջակայքում" ), 31 | max: $.validator.format( "Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին" ), 32 | min: $.validator.format( "Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using Microsoft.AspNetCore.Hosting; 4 | using Serilog; 5 | using Serilog.Events; 6 | 7 | namespace Czar.AbpDemo 8 | { 9 | public class Program 10 | { 11 | public static int Main(string[] args) 12 | { 13 | Log.Logger = new LoggerConfiguration() 14 | .MinimumLevel.Debug() //TODO: Should be configurable! 15 | .MinimumLevel.Override("Microsoft", LogEventLevel.Information) 16 | .Enrich.FromLogContext() 17 | .WriteTo.File("Logs/logs.txt",rollingInterval:RollingInterval.Day) 18 | .CreateLogger(); 19 | 20 | try 21 | { 22 | Log.Information("Starting web host."); 23 | BuildWebHostInternal(args).Run(); 24 | return 0; 25 | } 26 | catch (Exception ex) 27 | { 28 | Log.Fatal(ex, "Host terminated unexpectedly!"); 29 | return 1; 30 | } 31 | finally 32 | { 33 | Log.CloseAndFlush(); 34 | } 35 | } 36 | 37 | public static IWebHost BuildWebHostInternal(string[] args) => 38 | new WebHostBuilder() 39 | .UseKestrel() 40 | .UseContentRoot(Directory.GetCurrentDirectory()) 41 | .UseIISIntegration() 42 | .UseStartup() 43 | .UseSerilog() 44 | .Build(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ky.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Russian 11 | function numpf(n, f, s, t) { 12 | // f - 1, 21, 31, ... 13 | // s - 2-4, 22-24, 32-34 ... 14 | // t - 5-20, 25-30, ... 15 | var n10 = n % 10; 16 | if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) { 17 | return f; 18 | } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { 19 | return s; 20 | } else { 21 | return t; 22 | } 23 | } 24 | 25 | jQuery.timeago.settings.strings = { 26 | prefixAgo: null, 27 | prefixFromNow: "через", 28 | suffixAgo: "мурун", 29 | suffixFromNow: null, 30 | seconds: "1 минуттан аз", 31 | minute: "минута", 32 | minutes: function(value) { return numpf(value, "%d минута", "%d минута", "%d минут"); }, 33 | hour: "саат", 34 | hours: function(value) { return numpf(value, "%d саат", "%d саат", "%d саат"); }, 35 | day: "күн", 36 | days: function(value) { return numpf(value, "%d күн", "%d күн", "%d күн"); }, 37 | month: "ай", 38 | months: function(value) { return numpf(value, "%d ай", "%d ай", "%d ай"); }, 39 | year: "жыл", 40 | years: function(value) { return numpf(value, "%d жыл", "%d жыл", "%d жыл"); } 41 | }; 42 | })); 43 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_hr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HR (Croatia; hrvatski jezik) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Ovo polje je obavezno.", 17 | remote: "Ovo polje treba popraviti.", 18 | email: "Unesite ispravnu e-mail adresu.", 19 | url: "Unesite ispravan URL.", 20 | date: "Unesite ispravan datum.", 21 | dateISO: "Unesite ispravan datum (ISO).", 22 | number: "Unesite ispravan broj.", 23 | digits: "Unesite samo brojeve.", 24 | creditcard: "Unesite ispravan broj kreditne kartice.", 25 | equalTo: "Unesite ponovo istu vrijednost.", 26 | extension: "Unesite vrijednost sa ispravnom ekstenzijom.", 27 | maxlength: $.validator.format( "Maksimalni broj znakova je {0} ." ), 28 | minlength: $.validator.format( "Minimalni broj znakova je {0} ." ), 29 | rangelength: $.validator.format( "Unesite vrijednost između {0} i {1} znakova." ), 30 | range: $.validator.format( "Unesite vrijednost između {0} i {1}." ), 31 | max: $.validator.format( "Unesite vrijednost manju ili jednaku {0}." ), 32 | min: $.validator.format( "Unesite vrijednost veću ili jednaku {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_mk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: MK (Macedonian; македонски јазик) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Полето е задолжително.", 17 | remote: "Поправете го ова поле", 18 | email: "Внесете правилна e-mail адреса", 19 | url: "Внесете правилен URL.", 20 | date: "Внесете правилен датум", 21 | dateISO: "Внесете правилен датум (ISO).", 22 | number: "Внесете правилен број.", 23 | digits: "Внесете само бројки.", 24 | creditcard: "Внесете правилен број на кредитната картичка.", 25 | equalTo: "Внесете ја истата вредност повторно.", 26 | extension: "Внесете вредност со соодветна екстензија.", 27 | maxlength: $.validator.format( "Внесете максимално {0} знаци." ), 28 | minlength: $.validator.format( "Внесете барем {0} знаци." ), 29 | rangelength: $.validator.format( "Внесете вредност со должина помеѓу {0} и {1} знаци." ), 30 | range: $.validator.format( "Внесете вредност помеѓу {0} и {1}." ), 31 | max: $.validator.format( "Внесете вредност помала или еднаква на {0}." ), 32 | min: $.validator.format( "Внесете вредност поголема или еднаква на {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_no.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: NO (Norwegian; Norsk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dette feltet er obligatorisk.", 17 | maxlength: $.validator.format( "Maksimalt {0} tegn." ), 18 | minlength: $.validator.format( "Minimum {0} tegn." ), 19 | rangelength: $.validator.format( "Angi minimum {0} og maksimum {1} tegn." ), 20 | email: "Oppgi en gyldig epostadresse.", 21 | url: "Angi en gyldig URL.", 22 | date: "Angi en gyldig dato.", 23 | dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).", 24 | dateSE: "Angi en gyldig dato.", 25 | number: "Angi et gyldig nummer.", 26 | numberSE: "Angi et gyldig nummer.", 27 | digits: "Skriv kun tall.", 28 | equalTo: "Skriv samme verdi igjen.", 29 | range: $.validator.format( "Angi en verdi mellom {0} og {1}." ), 30 | max: $.validator.format( "Angi en verdi som er mindre eller lik {0}." ), 31 | min: $.validator.format( "Angi en verdi som er større eller lik {0}." ), 32 | step: $.validator.format( "Angi en verdi ganger {0}." ), 33 | creditcard: "Angi et gyldig kredittkortnummer." 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_de.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: DE (German, Deutsch) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dieses Feld ist ein Pflichtfeld.", 17 | maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ), 18 | minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), 19 | rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ), 20 | email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", 21 | url: "Geben Sie bitte eine gültige URL ein.", 22 | date: "Bitte geben Sie ein gültiges Datum ein.", 23 | number: "Geben Sie bitte eine Nummer ein.", 24 | digits: "Geben Sie bitte nur Ziffern ein.", 25 | equalTo: "Bitte denselben Wert wiederholen.", 26 | range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ), 27 | max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ), 28 | min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ), 29 | creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein." 30 | } ); 31 | return $; 32 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_hu.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HU (Hungarian; Magyar) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Kötelező megadni.", 17 | maxlength: $.validator.format( "Legfeljebb {0} karakter hosszú legyen." ), 18 | minlength: $.validator.format( "Legalább {0} karakter hosszú legyen." ), 19 | rangelength: $.validator.format( "Legalább {0} és legfeljebb {1} karakter hosszú legyen." ), 20 | email: "Érvényes e-mail címnek kell lennie.", 21 | url: "Érvényes URL-nek kell lennie.", 22 | date: "Dátumnak kell lennie.", 23 | number: "Számnak kell lennie.", 24 | digits: "Csak számjegyek lehetnek.", 25 | equalTo: "Meg kell egyeznie a két értéknek.", 26 | range: $.validator.format( "{0} és {1} közé kell esnie." ), 27 | max: $.validator.format( "Nem lehet nagyobb, mint {0}." ), 28 | min: $.validator.format( "Nem lehet kisebb, mint {0}." ), 29 | creditcard: "Érvényes hitelkártyaszámnak kell lennie.", 30 | remote: "Kérem javítsa ki ezt a mezőt.", 31 | dateISO: "Kérem írjon be egy érvényes dátumot (ISO).", 32 | step: $.validator.format( "A {0} egyik többszörösét adja meg." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Polje je obavezno.", 17 | remote: "Sredite ovo polje.", 18 | email: "Unesite ispravnu e-mail adresu", 19 | url: "Unesite ispravan URL.", 20 | date: "Unesite ispravan datum.", 21 | dateISO: "Unesite ispravan datum (ISO).", 22 | number: "Unesite ispravan broj.", 23 | digits: "Unesite samo cifre.", 24 | creditcard: "Unesite ispravan broj kreditne kartice.", 25 | equalTo: "Unesite istu vrednost ponovo.", 26 | extension: "Unesite vrednost sa odgovarajućom ekstenzijom.", 27 | maxlength: $.validator.format( "Unesite manje od {0} karaktera." ), 28 | minlength: $.validator.format( "Unesite barem {0} karaktera." ), 29 | rangelength: $.validator.format( "Unesite vrednost dugačku između {0} i {1} karaktera." ), 30 | range: $.validator.format( "Unesite vrednost između {0} i {1}." ), 31 | max: $.validator.format( "Unesite vrednost manju ili jednaku {0}." ), 32 | min: $.validator.format( "Unesite vrednost veću ili jednaku {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_ur.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: UR (Urdu; اردو) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "ان معلومات کا اندراج ضروری ہے", 17 | remote: "ان معلومات کا اندراج ضروری ہے", 18 | email: "درج کی ہوئی ای میل درست نہیں ہے", 19 | url: "درج کیا گیا پتہ درست نہیں ہے", 20 | date: "درج کی گئی تاریخ درست نہیں ہے", 21 | dateISO: "معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ", 22 | number: "درج کیےگئے ہندسے درست نہیں ہیں", 23 | digits: "صرف ہندسے اندراج کئے جاسکتے ہیں", 24 | creditcard: "درج کیا گیا کارڈ نمبر درست نہیں ہے", 25 | equalTo: "اندراج کا موازنہ درست نہیں ہے", 26 | extension: "اندراج درست نہیں ہے", 27 | maxlength: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ), 28 | minlength: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ), 29 | rangelength: $.validator.format( "اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے" ), 30 | range: $.validator.format( "اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے" ), 31 | max: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ), 32 | min: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.uk.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Ukrainian 11 | function numpf(n, f, s, t) { 12 | // f - 1, 21, 31, ... 13 | // s - 2-4, 22-24, 32-34 ... 14 | // t - 5-20, 25-30, ... 15 | var n10 = n % 10; 16 | if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) { 17 | return f; 18 | } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { 19 | return s; 20 | } else { 21 | return t; 22 | } 23 | } 24 | 25 | jQuery.timeago.settings.strings = { 26 | prefixAgo: null, 27 | prefixFromNow: "через", 28 | suffixAgo: "тому", 29 | suffixFromNow: null, 30 | seconds: "менше хвилини", 31 | minute: "хвилина", 32 | minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); }, 33 | hour: "година", 34 | hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); }, 35 | day: "день", 36 | days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); }, 37 | month: "місяць", 38 | months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); }, 39 | year: "рік", 40 | years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); } 41 | }; 42 | })); 43 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.ru.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Russian 11 | function numpf(n, f, s, t) { 12 | // f - 1, 21, 31, ... 13 | // s - 2-4, 22-24, 32-34 ... 14 | // t - 5-20, 25-30, ... 15 | n = n % 100; 16 | var n10 = n % 10; 17 | if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) { 18 | return f; 19 | } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { 20 | return s; 21 | } else { 22 | return t; 23 | } 24 | } 25 | 26 | jQuery.timeago.settings.strings = { 27 | prefixAgo: null, 28 | prefixFromNow: "через", 29 | suffixAgo: "назад", 30 | suffixFromNow: null, 31 | seconds: "меньше минуты", 32 | minute: "минуту", 33 | minutes: function(value) { return numpf(value, "%d минуту", "%d минуты", "%d минут"); }, 34 | hour: "час", 35 | hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); }, 36 | day: "день", 37 | days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); }, 38 | month: "месяц", 39 | months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); }, 40 | year: "год", 41 | years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); } 42 | }; 43 | })); 44 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: bn_BD (Bengali, Bangladesh) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "এই তথ্যটি আবশ্যক।", 17 | remote: "এই তথ্যটি ঠিক করুন।", 18 | email: "অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।", 19 | url: "অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।", 20 | date: "তারিখ সঠিক নয়।", 21 | dateISO: "অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।", 22 | number: "অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।", 23 | digits: "এখানে শুধু সংখ্যা ব্যবহার করা যাবে।", 24 | creditcard: "অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।", 25 | equalTo: "একই মান আবার লিখুন।", 26 | extension: "সঠিক ধরনের ফাইল আপলোড করুন।", 27 | maxlength: $.validator.format( "{0}টির বেশি অক্ষর লেখা যাবে না।" ), 28 | minlength: $.validator.format( "{0}টির কম অক্ষর লেখা যাবে না।" ), 29 | rangelength: $.validator.format( "{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।" ), 30 | range: $.validator.format( "{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।" ), 31 | max: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।" ), 32 | min: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_cs.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: CS (Czech; čeština, český jazyk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Tento údaj je povinný.", 17 | remote: "Prosím, opravte tento údaj.", 18 | email: "Prosím, zadejte platný e-mail.", 19 | url: "Prosím, zadejte platné URL.", 20 | date: "Prosím, zadejte platné datum.", 21 | dateISO: "Prosím, zadejte platné datum (ISO).", 22 | number: "Prosím, zadejte číslo.", 23 | digits: "Prosím, zadávejte pouze číslice.", 24 | creditcard: "Prosím, zadejte číslo kreditní karty.", 25 | equalTo: "Prosím, zadejte znovu stejnou hodnotu.", 26 | extension: "Prosím, zadejte soubor se správnou příponou.", 27 | maxlength: $.validator.format( "Prosím, zadejte nejvíce {0} znaků." ), 28 | minlength: $.validator.format( "Prosím, zadejte nejméně {0} znaků." ), 29 | rangelength: $.validator.format( "Prosím, zadejte od {0} do {1} znaků." ), 30 | range: $.validator.format( "Prosím, zadejte hodnotu od {0} do {1}." ), 31 | max: $.validator.format( "Prosím, zadejte hodnotu menší nebo rovnu {0}." ), 32 | min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_ge.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /** 12 | * @author @tatocaster 13 | * Translated default messages for the jQuery validation plugin. 14 | * Locale: GE (Georgian; ქართული) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "ეს ველი სავალდებულოა", 18 | remote: "გთხოვთ შეასწოროთ.", 19 | email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 20 | url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 21 | date: "გთხოვთ შეიყვანოთ სწორი თარიღი.", 22 | dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).", 23 | number: "გთხოვთ შეიყვანოთ რიცხვი.", 24 | digits: "დაშვებულია მხოლოდ ციფრები.", 25 | creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.", 26 | equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.", 27 | maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ), 28 | minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ), 29 | rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ), 30 | range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ), 31 | max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ), 32 | min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.cs.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Czech 11 | (function() { 12 | function f(n, d, a) { 13 | return a[d>=0 ? 0 : a.length===2 || n<5 ? 1 : 2]; 14 | } 15 | 16 | jQuery.timeago.settings.strings = { 17 | prefixAgo: 'před', 18 | prefixFromNow: 'za', 19 | suffixAgo: null, 20 | suffixFromNow: null, 21 | seconds: function(n, d) {return f(n, d, ['méně než minutou', 'méně než minutu']);}, 22 | minute: function(n, d) {return f(n, d, ['minutou', 'minutu']);}, 23 | minutes: function(n, d) {return f(n, d, ['%d minutami', '%d minuty', '%d minut']);}, 24 | hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu']);}, 25 | hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodin']);}, 26 | day: function(n, d) {return f(n, d, ['%d dnem', '%d den']);}, 27 | days: function(n, d) {return f(n, d, ['%d dny', '%d dny', '%d dní']);}, 28 | month: function(n, d) {return f(n, d, ['%d měsícem', '%d měsíc']);}, 29 | months: function(n, d) {return f(n, d, ['%d měsíci', '%d měsíce', '%d měsíců']);}, 30 | year: function(n, d) {return f(n, d, ['%d rokem', '%d rok']);}, 31 | years: function(n, d) {return f(n, d, ['%d lety', '%d roky', '%d let']);} 32 | }; 33 | })(); 34 | })); 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Application/BookStore/BookAppService.cs: -------------------------------------------------------------------------------- 1 | /** 2 | *┌──────────────────────────────────────────────────────────────┐ 3 | *│ 描 述:继承了AsyncCrudAppService<...>实现了接口定义的CRUD方法 4 | *│ 作 者:yilezhu 5 | *│ 版 本:1.0 6 | *│ 创建时间:2019/2/19 14:33:32 7 | *└──────────────────────────────────────────────────────────────┘ 8 | *┌──────────────────────────────────────────────────────────────┐ 9 | *│ 命名空间: Czar.AbpDemo.BookStore 10 | *│ 类 名: BookAppService 11 | *└──────────────────────────────────────────────────────────────┘ 12 | */ 13 | using System; 14 | using System.Collections.Generic; 15 | using System.Text; 16 | using Volo.Abp.Application.Dtos; 17 | using Volo.Abp.Application.Services; 18 | using Volo.Abp.Domain.Repositories; 19 | 20 | namespace Czar.AbpDemo.BookStore 21 | { 22 | public class BookAppService: 23 | AsyncCrudAppService,//用户更新书籍 30 | IBookAppService 31 | { 32 | //注入了IRepository是默认为Book创建的仓储.ABP会自动为每一个聚合根(或实体)创建仓储 33 | public BookAppService(IRepository repository) : base(repository) 34 | { 35 | 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.EntityFrameworkCore/EntityFrameworkCore/AbpDemoEntityFrameworkCoreModule.cs: -------------------------------------------------------------------------------- 1 | using Czar.AbpDemo.JobSchedule; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using Volo.Abp.AuditLogging.EntityFrameworkCore; 4 | using Volo.Abp.BackgroundJobs.EntityFrameworkCore; 5 | using Volo.Abp.EntityFrameworkCore.SqlServer; 6 | using Volo.Abp.Identity.EntityFrameworkCore; 7 | using Volo.Abp.Modularity; 8 | using Volo.Abp.PermissionManagement.EntityFrameworkCore; 9 | using Volo.Abp.SettingManagement.EntityFrameworkCore; 10 | 11 | namespace Czar.AbpDemo.EntityFrameworkCore 12 | { 13 | [DependsOn( 14 | typeof(AbpDemoDomainModule), 15 | typeof(AbpIdentityEntityFrameworkCoreModule), 16 | typeof(AbpPermissionManagementEntityFrameworkCoreModule), 17 | typeof(AbpSettingManagementEntityFrameworkCoreModule), 18 | typeof(AbpEntityFrameworkCoreSqlServerModule), 19 | typeof(BackgroundJobsEntityFrameworkCoreModule), 20 | typeof(AbpAuditLoggingEntityFrameworkCoreModule) 21 | )] 22 | public class AbpDemoEntityFrameworkCoreModule : AbpModule 23 | { 24 | public override void ConfigureServices(ServiceConfigurationContext context) 25 | { 26 | context.Services.AddAbpDbContext(options => 27 | { 28 | //Remove "includeAllEntities: true" to create default repositories only for aggregate roots 29 | options.AddDefaultRepositories(includeAllEntities: true); 30 | options.AddRepository(); 31 | }); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_et.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ET (Estonian; eesti, eesti keel) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "See väli peab olema täidetud.", 17 | maxlength: $.validator.format( "Palun sisestage vähem kui {0} tähemärki." ), 18 | minlength: $.validator.format( "Palun sisestage vähemalt {0} tähemärki." ), 19 | rangelength: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki." ), 20 | email: "Palun sisestage korrektne e-maili aadress.", 21 | url: "Palun sisestage korrektne URL.", 22 | date: "Palun sisestage korrektne kuupäev.", 23 | dateISO: "Palun sisestage korrektne kuupäev (YYYY-MM-DD).", 24 | number: "Palun sisestage korrektne number.", 25 | digits: "Palun sisestage ainult numbreid.", 26 | equalTo: "Palun sisestage sama väärtus uuesti.", 27 | range: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1}." ), 28 | max: $.validator.format( "Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}." ), 29 | min: $.validator.format( "Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}." ), 30 | creditcard: "Palun sisestage korrektne krediitkaardi number." 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/timeago/locales/jquery.timeago.sk.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | define(['jquery'], factory); 4 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 5 | factory(require('jquery')); 6 | } else { 7 | factory(jQuery); 8 | } 9 | }(function (jQuery) { 10 | // Slovak 11 | (function() { 12 | function f(n, d, a) { 13 | return a[d>=0 ? 0 : a.length===2 || n<5 ? 1 : 2]; 14 | } 15 | 16 | jQuery.timeago.settings.strings = { 17 | prefixAgo: 'pred', 18 | prefixFromNow: 'o', 19 | suffixAgo: null, 20 | suffixFromNow: null, 21 | seconds: function(n, d) {return f(n, d, ['menej ako minútou', 'menej ako minútu']);}, 22 | minute: function(n, d) {return f(n, d, ['minútou', 'minútu']);}, 23 | minutes: function(n, d) {return f(n, d, ['%d minútami', '%d minúty', '%d minút']);}, 24 | hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu']);}, 25 | hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodín']);}, 26 | day: function(n, d) {return f(n, d, ['%d dňom', '%d deň']);}, 27 | days: function(n, d) {return f(n, d, ['%d dňami', '%d dni', '%d dní']);}, 28 | month: function(n, d) {return f(n, d, ['%d mesiacom', '%d mesiac']);}, 29 | months: function(n, d) {return f(n, d, ['%d mesiacmi', '%d mesiace', '%d mesiacov']);}, 30 | year: function(n, d) {return f(n, d, ['%d rokom', '%d rok']);}, 31 | years: function(n, d) {return f(n, d, ['%d rokmi', '%d roky', '%d rokov']);} 32 | }; 33 | })(); 34 | })); 35 | -------------------------------------------------------------------------------- /src/Czar.AbpDemo.Web/wwwroot/libs/jquery-validation/localization/messages_si.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SI (Slovenian) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "To polje je obvezno.", 17 | remote: "Vpis v tem polju ni v pravi obliki.", 18 | email: "Prosimo, vnesite pravi email naslov.", 19 | url: "Prosimo, vnesite pravi URL.", 20 | date: "Prosimo, vnesite pravi datum.", 21 | dateISO: "Prosimo, vnesite pravi datum (ISO).", 22 | number: "Prosimo, vnesite pravo številko.", 23 | digits: "Prosimo, vnesite samo številke.", 24 | creditcard: "Prosimo, vnesite pravo številko kreditne kartice.", 25 | equalTo: "Prosimo, ponovno vnesite enako vsebino.", 26 | extension: "Prosimo, vnesite vsebino z pravo končnico.", 27 | maxlength: $.validator.format( "Prosimo, da ne vnašate več kot {0} znakov." ), 28 | minlength: $.validator.format( "Prosimo, vnesite vsaj {0} znakov." ), 29 | rangelength: $.validator.format( "Prosimo, vnesite od {0} do {1} znakov." ), 30 | range: $.validator.format( "Prosimo, vnesite vrednost med {0} in {1}." ), 31 | max: $.validator.format( "Prosimo, vnesite vrednost manjšo ali enako {0}." ), 32 | min: $.validator.format( "Prosimo, vnesite vrednost večjo ali enako {0}." ) 33 | } ); 34 | return $; 35 | })); --------------------------------------------------------------------------------