Browse Source

Merge branch 'dev' into issue-3813

pull/19282/head
oykuermann 3 years ago
parent
commit
40c5575f67
  1. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json
  2. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json
  3. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json
  4. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  5. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json
  6. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json
  7. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json
  8. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json
  10. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json
  11. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json
  12. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json
  13. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json
  14. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json
  15. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json
  16. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json
  17. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json
  18. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json
  19. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json
  20. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json
  21. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
  22. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json
  23. 3
      common.props
  24. 3
      docs/en/Dependency-Injection.md
  25. 34
      docs/en/UI/Angular/HTTP-Error-Handling.md
  26. 2
      docs/en/docs-nav.json
  27. 2
      docs/zh-Hans/Modules/Tenant-Management.md
  28. 15
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor
  29. 16
      framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantChangedEvent.cs
  30. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js
  31. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js
  32. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js
  33. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js
  34. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js
  35. BIN
      modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png
  36. BIN
      modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png
  37. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json
  38. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json
  39. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de-DE.json
  40. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json
  41. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json
  42. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
  43. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json
  44. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fa.json
  45. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json
  46. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json
  47. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json
  48. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json
  49. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json
  50. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json
  51. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json
  52. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json
  53. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json
  54. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json
  55. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json
  56. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json
  57. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json
  58. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json
  59. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json
  60. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json
  61. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json
  62. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json
  63. 2
      modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj
  64. 2
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  65. 20
      modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs
  66. 22
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs
  67. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
  68. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs
  69. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor.cs
  70. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json
  71. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json
  72. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json
  73. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json
  74. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json
  75. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en-GB.json
  76. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json
  77. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json
  78. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fa.json
  79. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json
  80. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json
  81. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json
  82. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json
  83. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json
  84. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json
  85. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json
  86. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json
  87. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json
  88. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json
  89. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json
  90. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json
  91. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json
  92. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json
  93. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json
  94. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json
  95. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json
  96. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json
  97. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js
  98. 11
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs
  99. 18
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantConfigurationCacheItemInvalidator.cs
  100. 12
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا السحب؟",
"CreateRaffle": "إنشاء السحب",
"RemoveImage": "إزالة الصورة",
"SuccessfullySaved": "تم الحفظ بنجاح",
"SavedSuccessfully": "تم الحفظ بنجاح",
"Menu:CommunityTalks": "محادثات المجتمع",
"Menu:Conferences": "المؤتمرات",
"Menu:OtherLiveEvents": "الأحداث المباشرة الأخرى",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Opravdu chcete smazat toto slosování?",
"CreateRaffle": "Vytvořit tombolu",
"RemoveImage": "Odebrat obrázek",
"SuccessfullySaved": "Úspěšně uloženo",
"SavedSuccessfully": "Úspěšně uloženo",
"Menu:CommunityTalks": "Komunitní rozhovory",
"Menu:Conferences": "Konference",
"Menu:OtherLiveEvents": "Další živé akce",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sind Sie sicher, dass Sie dieses Gewinnspiel löschen möchten?",
"CreateRaffle": "Gewinnspiel erstellen",
"RemoveImage": "Entferne Bild",
"SuccessfullySaved": "Erfolgreich gespeichert",
"SavedSuccessfully": "Erfolgreich gespeichert",
"Menu:CommunityTalks": "Community-Gespräche",
"Menu:Conferences": "Konferenzen",
"Menu:OtherLiveEvents": "Andere Live-Events",

7
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Are you sure you want to delete this raffle?",
"CreateRaffle": "Create Raffle",
"RemoveImage": "Remove Image",
"SuccessfullySaved": "Successfully saved",
"SavedSuccessfully": "Saved successfully",
"Menu:CommunityTalks": "Community Talks",
"Menu:Conferences": "Conferences",
"Menu:OtherLiveEvents": "Other Live Events",
@ -597,6 +597,9 @@
"DontSendEmailForLicenseExpire": "Don't Send Email For License Expire",
"SuccessfullyChanged": "Successfully changed",
"WinnerCountMustBeLessThanMaxWinnerCount": "Winner count must be less than max winner count",
"NoChangesDetected": "No changes detected"
"NoChangesDetected": "No changes detected",
"ProductCount": "Product Count",
"Actions": "Actions",
"CreateInvoice": "Create Invoice"
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "¿Estás seguro de que quieres eliminar este sorteo?",
"CreateRaffle": "Crear sorteo",
"RemoveImage": "Quita la imagen",
"SuccessfullySaved": "Guardado con éxito",
"SavedSuccessfully": "Guardado con éxito",
"Menu:CommunityTalks": "Charlas comunitarias",
"Menu:Conferences": "Conferencias",
"Menu:OtherLiveEvents": "Otros eventos en vivo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän arvonnan?",
"CreateRaffle": "Luo arpajaiset",
"RemoveImage": "Poista kuva",
"SuccessfullySaved": "Tallennettu onnistuneesti",
"SavedSuccessfully": "Tallennettu onnistuneesti",
"Menu:CommunityTalks": "Yhteisön keskustelut",
"Menu:Conferences": "Konferenssit",
"Menu:OtherLiveEvents": "Muut live-tapahtumat",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer ce tirage au sort ?",
"CreateRaffle": "Créer un tirage au sort",
"RemoveImage": "Supprimer l'image",
"SuccessfullySaved": "Enregistré avec succès",
"SavedSuccessfully": "Enregistré avec succès",
"Menu:CommunityTalks": "Discussions communautaires",
"Menu:Conferences": "Conférences",
"Menu:OtherLiveEvents": "Autres événements en direct",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "क्या आप वाकई इस रैफ़ल को हटाना चाहते हैं?",
"CreateRaffle": "रैफ़ल बनाएं",
"RemoveImage": "छवि हटाएँ",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है",
"SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है",
"Menu:CommunityTalks": "सामुदायिक वार्ता",
"Menu:Conferences": "सम्मेलन",
"Menu:OtherLiveEvents": "अन्य लाइव इवेंट",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu nagradnu igru?",
"CreateRaffle": "Napravite nagradnu igru",
"RemoveImage": "Ukloni sliku",
"SuccessfullySaved": "Uspješno spremljeno",
"SavedSuccessfully": "Uspješno spremljeno",
"Menu:CommunityTalks": "Razgovori zajednice",
"Menu:Conferences": "Konferencije",
"Menu:OtherLiveEvents": "Ostali događaji uživo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Biztosan törölni szeretnéd ezt a nyereményjátékot?",
"CreateRaffle": "Hozzon létre tombolát",
"RemoveImage": "Kép eltávolítása",
"SuccessfullySaved": "Sikeresen mentve",
"SavedSuccessfully": "Sikeresen mentve",
"Menu:CommunityTalks": "Közösségi beszélgetések",
"Menu:Conferences": "Konferenciák",
"Menu:OtherLiveEvents": "Egyéb élő események",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessari happdrætti?",
"CreateRaffle": "Búðu til happdrætti",
"RemoveImage": "Fjarlægja mynd",
"SuccessfullySaved": "Vistað",
"SavedSuccessfully": "Vistað",
"Menu:CommunityTalks": "Samfélagsspjall",
"Menu:Conferences": "Ráðstefnur",
"Menu:OtherLiveEvents": "Aðrir viðburðir í beinni",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sei sicuro di voler eliminare questa lotteria?",
"CreateRaffle": "Crea lotteria",
"RemoveImage": "Rimuovi immagine",
"SuccessfullySaved": "Salvato con successo",
"SavedSuccessfully": "Salvato con successo",
"Menu:CommunityTalks": "Colloqui comunitari",
"Menu:Conferences": "Conferenze",
"Menu:OtherLiveEvents": "Altri eventi dal vivo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Weet je zeker dat je deze loterij wilt verwijderen?",
"CreateRaffle": "Maak een loterij",
"RemoveImage": "Afbeelding verwijderen",
"SuccessfullySaved": "Succesvol opgeslagen",
"SavedSuccessfully": "Succesvol opgeslagen",
"Menu:CommunityTalks": "Gemeenschapsgesprekken",
"Menu:Conferences": "Conferenties",
"Menu:OtherLiveEvents": "Andere live-evenementen",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę loterię?",
"CreateRaffle": "Utwórz loterię",
"RemoveImage": "Usuń obraz",
"SuccessfullySaved": "Pomyślnie zapisano",
"SavedSuccessfully": "Pomyślnie zapisano",
"Menu:CommunityTalks": "Rozmowy społecznościowe",
"Menu:Conferences": "Konferencje",
"Menu:OtherLiveEvents": "Inne wydarzenia na żywo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Tem certeza de que deseja excluir este sorteio?",
"CreateRaffle": "Criar sorteio",
"RemoveImage": "Remover imagem",
"SuccessfullySaved": "Salvo com sucesso",
"SavedSuccessfully": "Salvo com sucesso",
"Menu:CommunityTalks": "Palestras Comunitárias",
"Menu:Conferences": "Conferências",
"Menu:OtherLiveEvents": "Outros eventos ao vivo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sigur doriți să ștergeți această tombolă?",
"CreateRaffle": "Creați tombolă",
"RemoveImage": "Eliminați imaginea",
"SuccessfullySaved": "Salvat cu succes",
"SavedSuccessfully": "Salvat cu succes",
"Menu:CommunityTalks": "Discuții comunitare",
"Menu:Conferences": "Conferințe",
"Menu:OtherLiveEvents": "Alte evenimente live",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json

@ -547,7 +547,7 @@
"RaffleDeletionConfirmationMessage": "Вы уверены, что хотите удалить этот розыгрыш?",
"CreateRaffle": "Создать лотерею",
"RemoveImage": "Удалить изображение",
"SuccessfullySaved": "Успешно сохранено",
"SavedSuccessfully": "Успешно сохранено",
"Menu:CommunityTalks": "Обсуждения сообщества",
"Menu:Conferences": "Конференции",
"Menu:OtherLiveEvents": "Другие живые события",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Naozaj chcete odstrániť túto tombolu?",
"CreateRaffle": "Vytvorenie tomboly",
"RemoveImage": "Odstrániť obrázok",
"SuccessfullySaved": "Úspešne uložené",
"SavedSuccessfully": "Úspešne uložené",
"Menu:CommunityTalks": "Komunitné rozhovory",
"Menu:Conferences": "konferencie",
"Menu:OtherLiveEvents": "Ďalšie živé podujatia",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati to nagradno igro?",
"CreateRaffle": "Ustvari nagradno igro",
"RemoveImage": "Odstrani sliko",
"SuccessfullySaved": "Uspešno shranjeno",
"SavedSuccessfully": "Uspešno shranjeno",
"Menu:CommunityTalks": "Skupnostni pogovori",
"Menu:Conferences": "konference",
"Menu:OtherLiveEvents": "Drugi dogodki v živo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa xổ số này không?",
"CreateRaffle": "Tạo xổ số",
"RemoveImage": "Xóa hình ảnh",
"SuccessfullySaved": "Lưu thành công",
"SavedSuccessfully": "Lưu thành công",
"Menu:CommunityTalks": "Tọa đàm cộng đồng",
"Menu:Conferences": "Hội nghị",
"Menu:OtherLiveEvents": "Sự kiện trực tiếp khác",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "您确定要删除这次抽奖吗?",
"CreateRaffle": "创建抽奖活动",
"RemoveImage": "移除图像",
"SuccessfullySaved": "成功保存",
"SavedSuccessfully": "成功保存",
"Menu:CommunityTalks": "社区讲座",
"Menu:Conferences": "会议",
"Menu:OtherLiveEvents": "其他现场活动",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "您確定要刪除此抽獎嗎?",
"CreateRaffle": "創建抽獎活動",
"RemoveImage": "刪除影像",
"SuccessfullySaved": "保存成功",
"SavedSuccessfully": "保存成功",
"Menu:CommunityTalks": "社區講座",
"Menu:Conferences": "會議",
"Menu:OtherLiveEvents": "其他現場活動",

3
common.props

@ -1,7 +1,8 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>8.2.0</Version>
<Version>8.2.0-preview</Version>
<LeptonXVersion>3.2.0-preview</LeptonXVersion>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageIconUrl>https://abp.io/assets/abp_nupkg.png</PackageIconUrl>
<PackageProjectUrl>https://abp.io/</PackageProjectUrl>

3
docs/en/Dependency-Injection.md

@ -129,6 +129,7 @@ If you do not specify which services to expose, ABP expose services by conventio
* The class itself is exposed by default. That means you can inject it by ``TaxCalculator`` class.
* Default interfaces are exposed by default. Default interfaces are determined by naming convention. In this example, ``ICalculator`` and ``ITaxCalculator`` are default interfaces of ``TaxCalculator``, but ``ICanCalculate`` is not. A generic interface (e.g. `ICalculator<string>`) is also considered as a default interface if the naming convention is satisfied.
* The resolved instances will be the same if multiple services are exposed for **Singleton** and **Scoped** services. This behavior requires exposing the class itself.
### Combining All Together
@ -566,4 +567,4 @@ Startup templates come with Autofac installed. See [Autofac integration](Autofac
## See Also
* [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96)
* [Video tutorial](https://abp.io/video-courses/essentials/dependency-injection)
* [Video tutorial](https://abp.io/video-courses/essentials/dependency-injection)

34
docs/en/UI/Angular/HTTP-Error-Handling.md

@ -1,8 +1,40 @@
# HTTP Error Handling
When the `RestService` is used, all HTTP errors are reported to the [`HttpErrorReporterService`](./HTTP-Error-Reporter-Service), and then `ErrorHandler`, a service exposed by the `@abp/ng.theme.shared` package automatically handles the errors.
### Error Configurations
ABP offers a configurations for errors handling like below
```ts
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { MyCustomRouteErrorComponent } from './my-custom-route.component';
@NgModule({
imports: [
ThemeSharedModule.forRoot({
httpErrorConfig: {
skipHandledErrorCodes: [403],
errorScreen: {
forWhichErrors: [404],
component: CustomErrorComponent,
hideCloseIcon: false
}
}
}),
...
],
})
export class AppModule {}
```
- `ErrorScreenErrorCodes` the error codes that you can pass to `skipHandledErrorCodes` and `forWhichErrors`.
- `skipHandledErrorCodes` the error codes those you don't want to handle it.
- `errorScreen` the screen that you want to show when a route error occurs.
- `component` component that you want to show.
- `forWhichErrors` same as `ErrorScreenErrorCodes`
- `hideCloseIcon` hides close icon in default ABP component.
## Custom HTTP Error Handler
When the `RestService` is used, all HTTP errors are reported to the [`HttpErrorReporterService`](./HTTP-Error-Reporter-Service), and then `ErrorHandler`, a service exposed by the `@abp/ng.theme.shared` package automatically handles the errors.
### Function Method `Deprecated`

2
docs/en/docs-nav.json

@ -1059,7 +1059,7 @@
"path": "UI/Angular/HTTP-Requests.md"
},
{
"text": "HTTP Error Handling / Customization",
"text": "Customize Error Handling",
"path": "UI/Angular/HTTP-Error-Handling.md"
}
]

2
docs/zh-Hans/Modules/Tenant-Management.md

@ -16,7 +16,7 @@
### 源代码
可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/identity) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它.
可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/tenant-management) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它.
## 用户界面

15
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor

@ -1,11 +1,24 @@
@using Blazorise
@using Microsoft.Extensions.Options
@using Microsoft.AspNetCore.Components.Web
@using Volo.Abp.Ui.Branding
@inject IOptions<PageHeaderOptions> Options
@inject IBrandingProvider BrandingProvider
<Row Class="entry-row">
@if (PageLayout.Title.IsNullOrEmpty())
{
<PageTitle>@BrandingProvider.AppName</PageTitle>
}
else
{
<PageTitle>@PageLayout.Title | @BrandingProvider.AppName</PageTitle>
}
@if(Options.Value.RenderPageTitle)
{
{
<Column ColumnSize="ColumnSize.IsAuto">
<h1 class="content-header-title">@PageLayout.Title</h1>
</Column>

16
framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantChangedEvent.cs

@ -0,0 +1,16 @@
using System;
namespace Volo.Abp.MultiTenancy;
[Serializable]
public class TenantChangedEvent
{
public Guid? Id { get; set; }
public string? NormalizedName { get; set; }
public TenantChangedEvent(Guid? id = null, string? normalizedName = null)
{
Id = id;
NormalizedName = normalizedName;
}
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js

@ -165,7 +165,7 @@ $(function () {
}
function finishSaving() {
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy();
location.href = "../BlogPosts";
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js

@ -95,7 +95,7 @@ $(function () {
.draft(data.record.id)
.then(function () {
dataTable.ajax.reloadEx();
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
checkHasBlogPostWaitingForReview();
});
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js

@ -134,7 +134,7 @@ $(function () {
}
function finishSaving(result) {
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy();
location.href = "../../BlogPosts";
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js

@ -37,7 +37,7 @@ $(function () {
$createForm.ajaxSubmit({
success: function (result) {
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy();
location.href = "../Pages";
},

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js

@ -35,7 +35,7 @@ $(function () {
$formUpdate.ajaxSubmit({
success: function (result) {
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy();
location.href = "../../Pages";
}

BIN
modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 483 KiB

BIN
modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 36 KiB

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "الرجاء كتابة موضوع",
"Submit": "يقدم",
"Subscribe": "الإشتراك",
"SuccessfullySaved": "تم الحفظ بنجاح!",
"SavedSuccessfully": "تم الحفظ بنجاح!",
"TagDeletionConfirmationMessage": "هل أنت متأكد من حذف العلامة \"{0}\"؟",
"Tags": "العلامات",
"Text": "نص",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Zadejte předmět",
"Submit": "Předložit",
"Subscribe": "předplatit",
"SuccessfullySaved": "Úspěšně uloženo!",
"SavedSuccessfully": "Úspěšně uloženo!",
"TagDeletionConfirmationMessage": "Opravdu chcete smazat značku '{0}'?",
"Tags": "Tagy",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de-DE.json

@ -142,7 +142,7 @@
"SubjectPlaceholder": "Bitte geben Sie einen Betreff ein",
"Submit": "einreichen",
"Subscribe": "Abonnieren",
"SuccessfullySaved": "Erfolgreich gespeichert!",
"SavedSuccessfully": "Erfolgreich gespeichert!",
"TagDeletionConfirmationMessage": "Möchten Sie das Tag '{0}' wirklich löschen?",
"Tags": "Stichworte",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Bitte geben Sie einen Betreff ein",
"Submit": "Einreichen",
"Subscribe": "Abonnieren",
"SuccessfullySaved": "Erfolgreich gespeichert!",
"SavedSuccessfully": "Erfolgreich gespeichert!",
"TagDeletionConfirmationMessage": "Sind Sie sicher, dass Sie das Tag „{0}“ löschen?",
"Tags": "Stichworte",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json

@ -145,7 +145,7 @@
"SubjectPlaceholder": "Πληκτρολογήστε ένα θέμα",
"Submit": "Υποβολή",
"Subscribe": "Εγγραφή",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία!",
"SavedSuccessfully": "Αποθηκεύτηκε με επιτυχία!",
"TagDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε την ετικέτα '{0}'.;",
"Tags": "Ετικέτες",
"Text": "Κείμενο",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Please type a subject",
"Submit": "Submit",
"Subscribe": "Subscribe",
"SuccessfullySaved": "Successfully saved!",
"SavedSuccessfully": "Saved successfully!",
"TagDeletionConfirmationMessage": "Are you sure to delete '{0}' tag?",
"Tags": "Tags",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Por favor escriba un asunto",
"Submit": "Enviar",
"Subscribe": "Suscribir",
"SuccessfullySaved": "¡Guardado con éxito!",
"SavedSuccessfully": "¡Guardado con éxito!",
"TagDeletionConfirmationMessage": "¿Está seguro de eliminar la etiqueta \"{0}\"?",
"Tags": "Etiquetas",
"Text": "Texto",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fa.json

@ -142,7 +142,7 @@
"SubjectPlaceholder": "لطفا یک موضوع را تایپ کنید",
"Submit": "ارسال",
"Subscribe": "اشتراک",
"SuccessfullySaved": "با موفقیت ذخیره گردید!",
"SavedSuccessfully": "با موفقیت ذخیره گردید!",
"TagDeletionConfirmationMessage": "آیا مطمئن هستید که برچسب '{0}' را حذف می کنید؟",
"Tags": "برچسب ها",
"Text": "متن",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Kirjoita aihe",
"Submit": "Lähetä",
"Subscribe": "Tilaa",
"SuccessfullySaved": "Tallennettu onnistuneesti!",
"SavedSuccessfully": "Tallennettu onnistuneesti!",
"TagDeletionConfirmationMessage": "Haluatko varmasti poistaa tagin {0}?",
"Tags": "Tunnisteet",
"Text": "Teksti",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Veuillez saisir un sujet",
"Submit": "Soumettre",
"Subscribe": "S'abonner",
"SuccessfullySaved": "Enregistré avec succès!",
"SavedSuccessfully": "Enregistré avec succès!",
"TagDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer la balise \"{0}\"?",
"Tags": "Mots clés",
"Text": "Texte",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "कृपया एक विषय लिखें",
"Submit": "प्रस्तुत",
"Subscribe": "सदस्यता लेने के",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है!",
"SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है!",
"TagDeletionConfirmationMessage": "क्या आप '{0}' टैग हटाना सुनिश्चित कर रहे हैं?",
"Tags": "टैग",
"Text": "टेक्स्ट",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Molimo upišite predmet",
"Submit": "podnijeti",
"Subscribe": "Pretplatite se",
"SuccessfullySaved": "Uspješno spremljeno!",
"SavedSuccessfully": "Uspješno spremljeno!",
"TagDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati oznaku &#39;{0}&#39;?",
"Tags": "Oznake",
"Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Kérjük, írjon be egy tárgyat",
"Submit": "Beküldés",
"Subscribe": "Iratkozz fel",
"SuccessfullySaved": "Sikeres mentés!",
"SavedSuccessfully": "Sikeres mentés!",
"TagDeletionConfirmationMessage": "Biztosan törli a(z) \"{0}\" címkét?",
"Tags": "Címkék",
"Text": "Szöveg",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vinsamlegast settu inn viðfangsefni",
"Submit": "Senda inn",
"Subscribe": "Gerast áskrifandi",
"SuccessfullySaved": "Tókst að vista!",
"SavedSuccessfully": "Tókst að vista!",
"TagDeletionConfirmationMessage": "Ertu viss um að eyða tagginu '{0}'?",
"Tags": "Tögg",
"Text": "Texti",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Si prega di digitare un oggetto",
"Submit": "Invia",
"Subscribe": "Sottoscrivi",
"SuccessfullySaved": "Salvato con successo!",
"SavedSuccessfully": "Salvato con successo!",
"TagDeletionConfirmationMessage": "Sei sicuro di eliminare il tag '{0}'?",
"Tags": "Tag",
"Text": "Testo",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Typ een onderwerp",
"Submit": "Verzenden",
"Subscribe": "Abonneren",
"SuccessfullySaved": "Succesvol opgeslagen!",
"SavedSuccessfully": "Succesvol opgeslagen!",
"TagDeletionConfirmationMessage": "Weet u zeker dat u de tag '{0}' wilt verwijderen?",
"Tags": "Tags",
"Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Proszę wpisać temat",
"Submit": "Składać",
"Subscribe": "Subskrybuj",
"SuccessfullySaved": "Zapisano pomyślnie!",
"SavedSuccessfully": "Zapisano pomyślnie!",
"TagDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tag „{0}”?",
"Tags": "Tagi",
"Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Por favor digite um assunto",
"Submit": "Enviar",
"Subscribe": "Inscrever-se",
"SuccessfullySaved": "Salvo com sucesso!",
"SavedSuccessfully": "Salvo com sucesso!",
"TagDeletionConfirmationMessage": "Tem certeza que deseja excluir a tag '{0}'?",
"Tags": "Tag",
"Text": "Texto",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vă rugăm să scrieţi un subiect",
"Submit": "Trimiteţi",
"Subscribe": "Abonaţi-vă",
"SuccessfullySaved": "Salvat cu succes!",
"SavedSuccessfully": "Salvat cu succes!",
"TagDeletionConfirmationMessage": "Sunteţi sigur(ă) că vreţi să ştergeţi eticheta '{0}'?",
"Tags": "Etichete",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Пожалуйста, введите тему",
"Submit": "Представлять на рассмотрение",
"Subscribe": "Подписывайся",
"SuccessfullySaved": "Успешно сохранено!",
"SavedSuccessfully": "Успешно сохранено!",
"TagDeletionConfirmationMessage": "Вы действительно хотите удалить тег \"{0}\"?",
"Tags": "Теги",
"Text": "Текст",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Zadajte prosím predmet",
"Submit": "Odoslať",
"Subscribe": "Odoberať",
"SuccessfullySaved": "Úspešne uložené!",
"SavedSuccessfully": "Úspešne uložené!",
"TagDeletionConfirmationMessage": "Určite chcete odstrániť tag '{0}'?",
"Tags": "Tagy",
"Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vnesite zadevo",
"Submit": "Pošlji",
"Subscribe": "Naročite se",
"SuccessfullySaved": "Uspešno shranjeno!",
"SavedSuccessfully": "Uspešno shranjeno!",
"TagDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati oznako »{0}«?",
"Tags": "Oznake",
"Text": "Besedilo",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json

@ -144,7 +144,7 @@
"SubjectPlaceholder": "Lütfen bir konu yazınız",
"Submit": "Kaydet",
"Subscribe": "Abone ol",
"SuccessfullySaved": "Başarıyla kaydedildi!",
"SavedSuccessfully": "Başarıyla kaydedildi!",
"TagDeletionConfirmationMessage": "'{0}' etiketini silmek istediğinize emin misiniz?",
"Tags": "Etiketler",
"Text": "Metin",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vui lòng nhập một chủ đề",
"Submit": "Nộp",
"Subscribe": "Đặt mua",
"SuccessfullySaved": "Lưu thành công!",
"SavedSuccessfully": "Lưu thành công!",
"TagDeletionConfirmationMessage": "Bạn có chắc chắn xóa thẻ '{0}' không?",
"Tags": "Thẻ",
"Text": "Chữ",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "请输入主题",
"Submit": "提交",
"Subscribe": "订阅",
"SuccessfullySaved": "成功保存!",
"SavedSuccessfully": "成功保存!",
"TagDeletionConfirmationMessage": "您确定要删除\"{0}\"标签吗?",
"Tags": "标签",
"Text": "文本",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "請輸入主題",
"Submit": "提交",
"Subscribe": "訂閱",
"SuccessfullySaved": "保存成功!",
"SavedSuccessfully": "保存成功!",
"TagDeletionConfirmationMessage": "你確定刪除 '{0}' 標籤嗎?",
"Tags": "標籤",
"Text": "文本",

2
modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj

@ -31,6 +31,7 @@
<ProjectReference Include="..\..\src\Volo.Docs.Web\Volo.Docs.Web.csproj" />
<ProjectReference Include="..\..\src\Volo.Docs.Admin.Web\Volo.Docs.Admin.Web.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Caching.StackExchangeRedis\Volo.Abp.Caching.StackExchangeRedis.csproj" />
<ProjectReference Include="..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" />
<ProjectReference Include="..\VoloDocs.EntityFrameworkCore\VoloDocs.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\modules\identity\src\Volo.Abp.Identity.Application\Volo.Abp.Identity.Application.csproj" />
@ -42,6 +43,7 @@
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.HttpApi\Volo.Abp.Account.HttpApi.csproj" />
</ItemGroup>
<ItemGroup>

2
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -35,6 +35,7 @@ using Volo.Abp.Account;
using Volo.Abp.PermissionManagement.HttpApi;
using Volo.Abp.Validation.Localization;
using Volo.Docs.Documents.FullSearch.Elastic;
using Volo.Abp.Caching.StackExchangeRedis;
namespace VoloDocs.Web
{
@ -57,6 +58,7 @@ namespace VoloDocs.Web
typeof(AbpPermissionManagementApplicationModule),
typeof(AbpPermissionManagementHttpApiModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule)
,typeof(AbpCachingStackExchangeRedisModule)
)]
public class VoloDocsWebModule : AbpModule
{

20
modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs

@ -58,21 +58,21 @@ namespace Volo.Docs.Admin.Documents
await _versionCache.RemoveAsync(versionCacheKey, true);
var documents = await _documentRepository.GetListByProjectId(project.Id);
foreach (var document in documents)
{
var documentUpdateInfoCacheKey = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(
var documentUpdateInfoCacheKeys = documents.Select(document =>
CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(
project: project,
documentName: document.Name,
languageCode: document.LanguageCode,
version: document.Version
);
await _documentUpdateCache.RemoveAsync(documentUpdateInfoCacheKey);
)
);
await _documentUpdateCache.RemoveManyAsync(documentUpdateInfoCacheKeys);
documents.ForEach(document => document.LastCachedTime = DateTime.MinValue);
document.LastCachedTime = DateTime.MinValue;
await _documentRepository.UpdateAsync(document);
}
await _documentRepository.UpdateManyAsync(documents);
}
public virtual async Task PullAllAsync(PullAllDocumentInput input)

22
modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs

@ -118,18 +118,24 @@ namespace Volo.Docs.Documents
.Where(x => !x.Path.IsNullOrWhiteSpace())
.ToList();
var cacheKeys = leafs.Select(leaf =>
CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version)
);
var documentUpdateInfos = await DocumentUpdateCache.GetManyAsync(cacheKeys);
foreach (var leaf in leafs)
{
var cacheKey =
CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode,
input.Version);
var documentUpdateInfo = await DocumentUpdateCache.GetAsync(cacheKey);
if (documentUpdateInfo != null)
var key = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version);
var (_, documentUpdateInfo) = documentUpdateInfos.FirstOrDefault(x => x.Key == key);
if (documentUpdateInfo == null)
{
leaf.CreationTime = documentUpdateInfo.CreationTime;
leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime;
leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime;
continue;
}
leaf.CreationTime = documentUpdateInfo.CreationTime;
leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime;
leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime;
}
await NavigationTreePostProcessor.ProcessAsync(

2
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -328,7 +328,7 @@ namespace Volo.Docs.Pages.Documents.Project
}
var output = await _projectAppService.GetVersionsAsync(Project.ShortName);
var versions = output.Items.ToList()
var versions = output.Items
.Select(v => new VersionInfoViewModel(v.DisplayName, v.Name))
.ToList();

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs

@ -72,7 +72,7 @@ public partial class EmailSettingGroupViewComponent
await CurrentApplicationConfigurationCacheResetService.ResetAsync();
await UiMessageService.Success(L["SuccessfullySaved"]);
await Notify.Success(L["SavedSuccessfully"]);
}
catch (Exception ex)
{

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor.cs

@ -48,7 +48,7 @@ public partial class TimeZoneSettingGroupViewComponent
{
await TimeZoneSettingsAppService.UpdateAsync(TimezoneSettings.Timezone);
await CurrentApplicationConfigurationCacheResetService.ResetAsync();
await UiMessageService.Success(L["SuccessfullySaved"]);
await Notify.Success(L["SavedSuccessfully"]);
}
catch (Exception ex)
{

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json

@ -2,7 +2,7 @@
"culture": "ar",
"texts": {
"Settings": "الإعدادات",
"SuccessfullySaved": "تم الحفظ بنجاح",
"SavedSuccessfully": "تم الحفظ بنجاح",
"Permission:SettingManagement": "إدارة الإعداد",
"Permission:Emailing": "إرسال بالبريد الإلكتروني",
"Permission:EmailingTest": "اختبار البريد الإلكتروني",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json

@ -2,7 +2,7 @@
"culture": "cs",
"texts": {
"Settings": "Nastavení",
"SuccessfullySaved": "Úspěšně uloženo",
"SavedSuccessfully": "Úspěšně uloženo",
"Permission:SettingManagement": "Správa nastavení",
"Permission:Emailing": "Zasílání e-mailem",
"Permission:EmailingTest": "Test zasílání e-mailem",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json

@ -2,7 +2,7 @@
"culture": "de-DE",
"texts": {
"Settings": "Einstellungen",
"SuccessfullySaved": "Erfolgreich gespeichert",
"SavedSuccessfully": "Erfolgreich gespeichert",
"Permission:SettingManagement": "Einstellungen-Verwaltung",
"Permission:Emailing": "E-Mail",
"Permission:EmailingTest": "Test E-Mails",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json

@ -2,7 +2,7 @@
"culture": "de",
"texts": {
"Settings": "Einstellungen",
"SuccessfullySaved": "Erfolgreich gespeichert",
"SavedSuccessfully": "Erfolgreich gespeichert",
"Permission:SettingManagement": "Einstellungsmanagement",
"Permission:Emailing": "E-Mail senden",
"Permission:EmailingTest": "E-Mail-Test",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json

@ -2,7 +2,7 @@
"culture": "el",
"texts": {
"Settings": "Ρυθμίσεις",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία",
"SavedSuccessfully": "Αποθηκεύτηκε με επιτυχία",
"Permission:SettingManagement": "Διαχείριση ρυθμίσεων",
"Permission:Emailing": "Αποστολή email",
"Permission:EmailingTest": "Αποστολή δοκιμαστικού email",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en-GB.json

@ -2,6 +2,6 @@
"culture": "en-GB",
"texts": {
"Settings": "Settings",
"SuccessfullySaved": "Successfully saved"
"SavedSuccessfully": "Saved successfully"
}
}

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json

@ -2,7 +2,7 @@
"culture": "en",
"texts": {
"Settings": "Settings",
"SuccessfullySaved": "Successfully saved",
"SavedSuccessfully": "Saved successfully",
"Permission:SettingManagement": "Setting management",
"Permission:Emailing": "Emailing",
"Permission:EmailingTest": "Emailing test",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json

@ -2,7 +2,7 @@
"culture": "es",
"texts": {
"Settings": "Configuraciones",
"SuccessfullySaved": "Guardado correctamente",
"SavedSuccessfully": "Guardado correctamente",
"Permission:SettingManagement": "Configuraciones de correo electronico",
"Permission:Emailing": "Configuración",
"Permission:EmailingTest": "prueba de correo electrónico",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fa.json

@ -2,7 +2,7 @@
"culture": "fa",
"texts": {
"Settings": "تنظیمات",
"SuccessfullySaved": "با موفقیت ذخیره شد",
"SavedSuccessfully": "با موفقیت ذخیره شد",
"Permission:SettingManagement": "مدیریت تنظیمات",
"Permission:Emailing": "تنظیمات ایمیل",
"Menu:Emailing": "تنظیمات ایمیل",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json

@ -2,7 +2,7 @@
"culture": "fi",
"texts": {
"Settings": "Asetukset",
"SuccessfullySaved": "Tallennettu onnistuneesti",
"SavedSuccessfully": "Tallennettu onnistuneesti",
"Permission:SettingManagement": "Asetusten hallinta",
"Permission:Emailing": "Sähköpostiviestit",
"Permission:EmailingTest": "Sähköpostitesti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json

@ -2,7 +2,7 @@
"culture": "fr",
"texts": {
"Settings": "Paramètres",
"SuccessfullySaved": "Enregistré avec succès",
"SavedSuccessfully": "Enregistré avec succès",
"Permission:SettingManagement": "Gestion des paramètres",
"Permission:Emailing": "Envoi par e-mail",
"Permission:EmailingTest": "Test d&#39;emailing",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json

@ -2,7 +2,7 @@
"culture": "hi",
"texts": {
"Settings": "समायोजन",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है",
"SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है",
"Permission:SettingManagement": "प्रबंधन की स्थापना",
"Permission:Emailing": "ईमेल से भेजना",
"Permission:EmailingTest": "ईमेल परीक्षण",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json

@ -2,7 +2,7 @@
"culture": "hr",
"texts": {
"Settings": "Postavke",
"SuccessfullySaved": "Uspješno spremljeno",
"SavedSuccessfully": "Uspješno spremljeno",
"Permission:SettingManagement": "Upravljanje postavkama",
"Permission:Emailing": "Slanje e-poštom",
"Permission:EmailingTest": "Test slanja e-pošte",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json

@ -2,7 +2,7 @@
"culture": "hu",
"texts": {
"Settings": "Beállítások",
"SuccessfullySaved": "Sikeresen mentve",
"SavedSuccessfully": "Sikeresen mentve",
"Permission:SettingManagement": "Beállításkezelés",
"Permission:Emailing": "E-mailezés",
"Permission:EmailingTest": "E-mail teszt",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json

@ -2,7 +2,7 @@
"culture": "is",
"texts": {
"Settings": "Stillingar",
"SuccessfullySaved": "Tókst að vista",
"SavedSuccessfully": "Tókst að vista",
"Permission:SettingManagement": "Stillingar",
"Permission:Emailing": "Senda tölvupóst",
"Permission:EmailingTest": "Próf í tölvupósti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json

@ -2,7 +2,7 @@
"culture": "it",
"texts": {
"Settings": "Impostazioni",
"SuccessfullySaved": "Salvato con successo",
"SavedSuccessfully": "Salvato con successo",
"Permission:SettingManagement": "Gestione delle impostazioni",
"Permission:Emailing": "Invio di e-mail",
"Permission:EmailingTest": "Prova di invio tramite posta elettronica",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json

@ -2,7 +2,7 @@
"culture": "nl",
"texts": {
"Settings": "Instellingen",
"SuccessfullySaved": "Succesvol opgeslagen",
"SavedSuccessfully": "Succesvol opgeslagen",
"Permission:SettingManagement": "Instellingenbeheer",
"Permission:Emailing": "E-mail",
"Permission:EmailingTest": "E-mailtest",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json

@ -2,7 +2,7 @@
"culture": "pl-PL",
"texts": {
"Settings": "Ustawienia",
"SuccessfullySaved": "Zapisano pomyślnie",
"SavedSuccessfully": "Zapisano pomyślnie",
"Permission:SettingManagement": "Zarządzanie ustawieniami",
"Permission:Emailing": "Wysyłanie e-maili",
"Permission:EmailingTest": "Test wysyłania e-maili",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json

@ -2,7 +2,7 @@
"culture": "pt-BR",
"texts": {
"Settings": "Configurações",
"SuccessfullySaved": "Salvo com sucesso!",
"SavedSuccessfully": "Salvo com sucesso!",
"Permission:SettingManagement": "Gestão de Cenários",
"Permission:Emailing": "Enviando por e-mail",
"Permission:EmailingTest": "Teste de e-mail",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json

@ -2,7 +2,7 @@
"culture": "ro-RO",
"texts": {
"Settings": "Setări",
"SuccessfullySaved": "Salvat cu succes",
"SavedSuccessfully": "Salvat cu succes",
"Permission:SettingManagement": "Administrarea setărilor",
"Permission:Emailing": "Emailing",
"Permission:EmailingTest": "Test de trimitere prin e-mail",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json

@ -2,7 +2,7 @@
"culture": "ru",
"texts": {
"Settings": "Настройки",
"SuccessfullySaved": "Успешно сохранено",
"SavedSuccessfully": "Успешно сохранено",
"Permission:SettingManagement": "Управление настройками",
"Permission:Emailing": "Отправка по электронной почте",
"Permission:EmailingTest": "Тестовая рассылка по электронной почте",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json

@ -2,7 +2,7 @@
"culture": "sk",
"texts": {
"Settings": "Nastavenia",
"SuccessfullySaved": "Úspešne uložené",
"SavedSuccessfully": "Úspešne uložené",
"Permission:SettingManagement": "Správa nastavení",
"Permission:Emailing": "Posielanie emailov",
"Permission:EmailingTest": "Test odosielania e-mailov",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json

@ -2,7 +2,7 @@
"culture": "sl",
"texts": {
"Settings": "Nastavitve",
"SuccessfullySaved": "Uspešno shranjeno",
"SavedSuccessfully": "Uspešno shranjeno",
"Permission:SettingManagement": "Upravljanje nastavitev",
"Permission:Emailing": "Pošiljanje po e-pošti",
"Permission:EmailingTest": "Test pošiljanja po e-pošti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json

@ -2,7 +2,7 @@
"culture": "tr",
"texts": {
"Settings": "Ayarlar",
"SuccessfullySaved": "Başarıyla Kaydedildi",
"SavedSuccessfully": "Başarıyla Kaydedildi",
"Permission:SettingManagement": "Ayarlar yönetimi",
"Permission:Emailing": "Email",
"Permission:EmailingTest": "Email testi",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json

@ -2,7 +2,7 @@
"culture": "vi",
"texts": {
"Settings": "Cài đặt",
"SuccessfullySaved": "Lưu thành công",
"SavedSuccessfully": "Lưu thành công",
"Permission:SettingManagement": "Cài đặt quản lý",
"Permission:Emailing": "Gửi email",
"Permission:EmailingTest": "Kiểm tra gửi email",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json

@ -2,7 +2,7 @@
"culture": "zh-Hans",
"texts": {
"Settings": "设置",
"SuccessfullySaved": "保存成功",
"SavedSuccessfully": "保存成功",
"Permission:SettingManagement": "设置管理",
"Permission:Emailing": "邮件",
"Permission:EmailingTest": "邮件测试",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json

@ -2,7 +2,7 @@
"culture": "zh-Hant",
"texts": {
"Settings": "設置",
"SuccessfullySaved": "保存成功",
"SavedSuccessfully": "保存成功",
"Permission:SettingManagement": "設定管理",
"Permission:Emailing": "信箱",
"Permission:EmailingTest": "郵件測試",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js

@ -27,7 +27,7 @@
}).first().click();
$(document).on('AbpSettingSaved', function () {
abp.notify.success(l('SuccessfullySaved'));
abp.notify.success(l('SavedSuccessfully'));
abp.ajax({
url: abp.appPath + 'SettingManagement?handler=RefreshConfiguration'

11
modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs

@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy;
using Volo.Abp.ObjectExtending;
@ -17,17 +18,20 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
protected ITenantRepository TenantRepository { get; }
protected ITenantManager TenantManager { get; }
protected IDistributedEventBus DistributedEventBus { get; }
protected ILocalEventBus LocalEventBus { get; }
public TenantAppService(
ITenantRepository tenantRepository,
ITenantManager tenantManager,
IDataSeeder dataSeeder,
IDistributedEventBus distributedEventBus)
IDistributedEventBus distributedEventBus,
ILocalEventBus localEventBus)
{
DataSeeder = dataSeeder;
TenantRepository = tenantRepository;
TenantManager = tenantManager;
DistributedEventBus = distributedEventBus;
LocalEventBus = localEventBus;
}
public virtual async Task<TenantDto> GetAsync(Guid id)
@ -132,6 +136,10 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
public virtual async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString)
{
var tenant = await TenantRepository.GetAsync(id);
if (tenant.FindDefaultConnectionString() != defaultConnectionString)
{
await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
}
tenant.SetDefaultConnectionString(defaultConnectionString);
await TenantRepository.UpdateAsync(tenant);
}
@ -141,6 +149,7 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
{
var tenant = await TenantRepository.GetAsync(id);
tenant.RemoveDefaultConnectionString();
await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
await TenantRepository.UpdateAsync(tenant);
}
}

18
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantConfigurationCacheItemInvalidator.cs

@ -4,14 +4,16 @@ using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events;
using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.TenantManagement;
[LocalEventHandlerOrder(-1)]
public class TenantConfigurationCacheItemInvalidator :
ILocalEventHandler<EntityChangedEventData<Tenant>>,
ILocalEventHandler<EntityDeletedEventData<Tenant>>, ITransientDependency
ILocalEventHandler<TenantChangedEvent>,
ITransientDependency
{
protected IDistributedCache<TenantConfigurationCacheItem> Cache { get; }
@ -22,12 +24,17 @@ public class TenantConfigurationCacheItemInvalidator :
public virtual async Task HandleEventAsync(EntityChangedEventData<Tenant> eventData)
{
if (eventData is EntityCreatedEventData<Tenant>)
{
return;
}
await ClearCacheAsync(eventData.Entity.Id, eventData.Entity.NormalizedName);
}
public virtual async Task HandleEventAsync(EntityDeletedEventData<Tenant> eventData)
public virtual async Task HandleEventAsync(TenantChangedEvent eventData)
{
await ClearCacheAsync(eventData.Entity.Id, eventData.Entity.NormalizedName);
await ClearCacheAsync(eventData.Id, eventData.NormalizedName);
}
protected virtual async Task ClearCacheAsync(Guid? id, string normalizedName)
@ -37,6 +44,7 @@ public class TenantConfigurationCacheItemInvalidator :
{
TenantConfigurationCacheItem.CalculateCacheKey(id, null),
TenantConfigurationCacheItem.CalculateCacheKey(null, normalizedName),
TenantConfigurationCacheItem.CalculateCacheKey(id, normalizedName),
});
}
}
}

12
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs

@ -2,6 +2,7 @@
using System.Threading.Tasks;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Services;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.TenantManagement;
@ -9,14 +10,17 @@ namespace Volo.Abp.TenantManagement;
public class TenantManager : DomainService, ITenantManager
{
protected ITenantRepository TenantRepository { get; }
protected IDistributedCache<TenantConfigurationCacheItem> Cache { get; }
protected ITenantNormalizer TenantNormalizer { get; }
protected ILocalEventBus LocalEventBus { get; }
public TenantManager(ITenantRepository tenantRepository, IDistributedCache<TenantConfigurationCacheItem> cache, ITenantNormalizer tenantNormalizer)
public TenantManager(
ITenantRepository tenantRepository,
ITenantNormalizer tenantNormalizer,
ILocalEventBus localEventBus)
{
TenantRepository = tenantRepository;
Cache = cache;
TenantNormalizer = tenantNormalizer;
LocalEventBus = localEventBus;
}
public virtual async Task<Tenant> CreateAsync(string name)
@ -36,7 +40,7 @@ public class TenantManager : DomainService, ITenantManager
var normalizedName = TenantNormalizer.NormalizeName(name);
await ValidateNameAsync(normalizedName, tenant.Id);
await Cache.RemoveAsync(TenantConfigurationCacheItem.CalculateCacheKey(tenant.NormalizedName));
await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
tenant.SetName(name);
tenant.SetNormalizedName(normalizedName);
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save