diff --git a/.github/ISSUE_TEMPLATE/03_article_request.yml b/.github/ISSUE_TEMPLATE/03_article_request.yml
index 34082596c5..282ac107bf 100644
--- a/.github/ISSUE_TEMPLATE/03_article_request.yml
+++ b/.github/ISSUE_TEMPLATE/03_article_request.yml
@@ -6,7 +6,7 @@ body:
id: searched
attributes:
label: Is there an existing article or article request for this?
- description: Please search to see if there is an article or article request related to your article request ([community.abp.io](https://community.abp.io/posts), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request))
+ description: Please search to see if there is an article or article request related to your article request ([abp.io/community](https://abp.io/community/articles), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request))
options:
- label: I have searched the existing resources
required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 2261ab7bab..9fca40ba4f 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,8 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Issue with ABP Commercial
- url: https://support.abp.io/QA/Questions
- about: Please open ABP Commercial related issues at https://support.abp.io.
+ url: https://abp.io/support/questions
+ about: Please open ABP Commercial related issues at https://abp.io/support/questions.
- name: Ask a question (community support)
url: https://stackoverflow.com/questions/tagged/abp
about: Ask a question that will be answered by the ABP community
diff --git a/NuGet.md b/NuGet.md
index 1073e17b8c..29b17f9e03 100644
--- a/NuGet.md
+++ b/NuGet.md
@@ -11,21 +11,21 @@ ABP offers an opinionated architecture to build enterprise software solutions wi
🔗GitHub Repository: https://github.com/abpframework/abp
-🔗Samples: https://docs.abp.io/en/abp/latest/Samples/Index
+🔗Samples: https://abp.io/docs/latest/samples/
🔗Official Theme: https://www.LeptonTheme.com
-🔗Documentation: https://docs.abp.io
+🔗Documentation: https://abp.io/docs/latest/
-🔗Community: https://community.abp.io
+🔗Community: https://abp.io/community/
-🔗Blog: https://blog.abp.io
+🔗Blog: https://abp.io/blog/
🔗Books: https://abp.io/books
🔗Twitter: https://twitter.com/abpframework
-🔗Discord: https://community.abp.io/discord
+🔗Discord: https://abp.io/community/discord
🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp
@@ -124,8 +124,8 @@ Support for open-source ABP Framework client-side packages is available at [GitH
If you are building an enterprise-level application with pro support, extra tools like a code generator, fancy themes and a microservice template, time to invest in the commercial version!
-To understand how it works, see [How it Works]( https://commercial.abp.io/how-it-works) page.
+To understand how it works, see [How it Works]( https://abp.io/how-it-works) page.
-If you wonder why you should choose ABP Commercial, check out [Why ABP.IO Platform](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) page.
+If you wonder why you should choose ABP, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page.
-Official website: [https://commercial.abp.io](https://commercial.abp.io/)
+Official website: [https://abp.io](https://abp.io/)
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
index 5be67a44b1..f95a0117b6 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
@@ -161,7 +161,7 @@
"SearchQuestionPlaceholder": "البحث في الأسئلة المتداولة",
"WhatIsTheABPCommercial": "ما هو برنامج ABP التجاري؟",
"WhatAreDifferencesThanAbpFramework": "ما هي الاختلافات بين إطار عمل ABP مفتوح المصدر وإطار عمل ABP التجاري؟",
- "ABPCommercialExplanation": "ABP Commercial عبارة عن مجموعة من الوحدات النمطية والأدوات والسمات والخدمات المتميزة التي تم إنشاؤها فوق إطار عمل ABP مفتوح المصدر. يتم تطوير ودعم ABP Commercial من قبل نفس الفريق الذي يقف وراء إطار عمل ABP.",
+ "ABPCommercialExplanation": "ABP Commercial عبارة عن مجموعة من الوحدات النمطية والأدوات والسمات والخدمات المتميزة التي تم إنشاؤها فوق إطار عمل ABP مفتوح المصدر. يتم تطوير ودعم ABP من قبل نفس الفريق الذي يقف وراء إطار عمل ABP.",
"WhatAreDifferencesThanABPFrameworkExplanation": "
إطار عمل ABP عبارة عن إطار عمل لتطوير تطبيقات معياري وقابل للتخصيص ومتوافق مع خدمة دقيقة لـ ASP.NET Core. إنه يوفر بنية كاملة وبنية تحتية قوية لتجعلك تركز على رمز عملك الخاص بدلاً من تكرار نفسك لكل مشروع جديد. يعتمد على أفضل ممارسات تطوير البرامج والأدوات الشائعة التي تعرفها بالفعل.
إطار عمل ABP مجاني تمامًا ومفتوح المصدر وقائم على المنتدى. كما أنه يوفر سمة مجانية وبعض الوحدات النمطية مسبقة الصنع (مثل إدارة الهوية وإدارة المستأجر). p>",
"VisitTheFrameworkVSCommercialDocument": "قم بزيارة الرابط التالي للحصول على مزيد من المعلومات {1} ",
"ABPCommercialFollowingBenefits": "يضيف ABP Commercial المزايا التالية إلى جانب إطار عمل ABP ؛",
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "أنت تستخدم الترخيص التجريبي وستنتهي صلاحية الترخيص التجريبي في {0}.",
"TryForFree": "حاول مجانا",
"TrialLicenseExpiredInfo": "انتهت فترة الترخيص التجريبي الخاص بك!",
- "CommercialNewsletterConfirmationMessage": "أوافق على البنود والشروط و سياسة الخصوصية .",
+ "CommercialNewsletterConfirmationMessage": "أوافق على البنود والشروط و سياسة الخصوصية .",
"RenewLicenseEarly": "إذا قمت بتجديد رخصتي في وقت مبكر ، هل سأحصل على السنة كاملة؟",
"RenewLicenseEarylExplanation": "عند تجديد الترخيص الخاص بك قبل تاريخ انتهاء الترخيص الخاص بك ، ستتم إضافة سنة واحدة إلى تاريخ انتهاء الترخيص الخاص بك. على سبيل المثال ، إذا انتهت صلاحية ترخيصك في {0} -06-06 وقمت بتجديده في {0} -01-01 ، فسيكون تاريخ انتهاء صلاحية الترخيص الجديد {1} -06-06.",
"discountForYears": "{0}٪ خصم لمدة {1} سنة (سنوات)",
@@ -694,7 +694,7 @@
"Landing_Page_DocsModuleDescription_9": "بالإضافة إلى مصدر GitHub، يسمح ببساطة باستخدام مجلد كمصدر توثيق.",
"Landing_Page_FileManagementModuleDescription_1": "تحميل وتنزيل وتنظيم الملفات في هيكل مجلد هرمي.",
"Landing_Page_FileManagementModuleDescription_2": "تُستخدم هذه الوحدة لتحميل الملفات وتنزيلها وتنظيمها في هيكل مجلد هرمي. كما أنه متوافق مع تعددية الإيجارات ويمكنك تحديد الحجم الإجمالي للمستأجرين.",
- "Landing_Page_FileManagementModuleDescription_3": "تعتمد هذه الوحدة على نظام BLOB تخزين، لذا يمكنها استخدام موفري تخزين مختلفين لتخزين محتويات الملف.",
+ "Landing_Page_FileManagementModuleDescription_3": "تعتمد هذه الوحدة على نظام BLOB تخزين، لذا يمكنها استخدام موفري تخزين مختلفين لتخزين محتويات الملف.",
"Landing_Page_IdentityModuleDescription_1": "تطبق هذه الوحدة نظام المستخدم والدور للتطبيق:",
"Landing_Page_IdentityModuleDescription_2": "مبني على مكتبة Microsoft's ASP.NET Core Identity.",
"Landing_Page_IdentityModuleDescription_3": "إدارة الأدوار strong> و المستخدمين strong> في النظام. يُسمح للمستخدم بأن يكون له أدوار متعددة strong>.",
@@ -710,7 +710,7 @@
"Landing_Page_PaymentModuleDescription_1": "يوفر تكاملاً لبوابات الدفع المختلفة.",
"Landing_Page_PaymentModuleDescription_2": "توفر هذه الوحدة تكاملاً لبوابات الدفع ، بحيث يمكنك بسهولة الحصول على مدفوعات من عملائك.",
"Landing_Page_PaymentModuleDescription_3": "تدعم هذه الوحدة بوابات الدفع التالية",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "استخدم نفس بيانات الاعتماد لكلا commercial.abp.io و support.abp.io.",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "استخدم نفس بيانات الاعتماد لكلا commercial.abp.io و support.abp.io.",
"WatchCrudPagesVideo": "شاهد فيديو \"Creating CRUD Pages with ABP Suite\"!",
"WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!",
"WatchTakeCloserLookVideo": "شاهد فيديو \"Take a closer look at the code generation: ABP Suite\"!",
@@ -784,9 +784,9 @@
"UpgradePaymentInfoSection_LicenseRenewalPrice": "تجديد الرخصة",
"Total": "المجموع",
"SupportPolicyFaqTitle": "ما هي سياسة الدعم الخاصة بك؟",
- "SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://support.abp.io. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.",
+ "SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://abp.io/support/questions. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.",
"WhyUseAbpIoPlatform": "لماذا يجب علي استخدام منصة ABP.IO بدلاً من إنشاء حل جديد من البداية؟",
- "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك.",
+ "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك.",
"EulaPageTitle": "اتفاقية ترخيص المستخدم النهائي (EULA)",
"PrivacyPolicyPageTitle": "سياسة الخصوصية - سياسة ملفات تعريف الارتباط",
"TermsConditionsPageTitle": "الأحكام والشروط",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
index c047dd7b65..3571ae469e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Používáte zkušební licenci a platnost vaší zkušební licence vyprší dne {0}.",
"TryForFree": "Zkus zadarmo",
"TrialLicenseExpiredInfo": "Vaše zkušební licenční období vypršelo!",
- "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
+ "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
"ContinueWithNewOrganization": "Pokračujte s novou organizací",
"RenewLicenseEarly": "Pokud si předčasně obnovím licenci, dostanu celý rok?",
"RenewLicenseEarylExplanation": "Když obnovíte licenci před datem vypršení platnosti licence, bude k datu vypršení platnosti licence přidán 1 rok. Pokud například platnost vaší licence vyprší dne {0}-06-06 a obnovíte ji dne {0}-01-01, bude vaše nové datum vypršení platnosti licence {1}-06-06.",
@@ -391,7 +391,7 @@
"OnboardingTrainingFaqTitle": "Máte školení ABP onboarding?",
"OnboardingTrainingFaqExplanation": "Ano, máme školicí služby ABP, které vám pomohou rychle zahájit váš projekt ABP. Dozvíte se o ABP od hlavního člena týmu ABP a získáte dovednosti pro zahájení vašeho projektu ABP. Na onboarding školení si vysvětlíme, jak nastavit vaše vývojové prostředí, nainstalovat požadované nástroje, vytvořit plně funkční stránku CRUD. Školení bude probíhat živě a bude se používat aplikace Zoom a jsme otevřeni využití dalších online platforem pro setkávání. Jazykem školení bude angličtina. Během sezení můžete také klást otázky týkající se ABP. Pro obě strany bude naplánován vhodný čas a datum. Chcete-li získat další informace, kontaktujte nás na adrese info@abp.io.",
"SupportPolicyFaqTitle": "Jaká je vaše politika podpory?",
- "SupportPolicyFaqExplanation": "Podporujeme pouze aktivní a předchozí hlavní verzi. Nezaručujeme vydání opravy pro třetí a starší hlavní verzi. Například pokud je aktivní verze 7.0.0, vydáme opravné verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problémy související s ABP Framework a ABP Commercial. To znamená, že neposkytujeme žádnou podporu aplikacím třetích stran, cloudovým službám a dalším periferním knihovnám používaným produkty ABP. Vynaložíme komerčně přiměřené úsilí, abychom našim zákazníkům poskytli technickou podporu během oficiální pracovní doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o úrovni služeb (SLA), ale budeme se snažit reagovat na technické problémy co nejrychleji v rámci naší oficiální pracovní doby. Pokud není se zákazníkem uzavřena zvláštní dohoda, poskytujeme podporu pouze na adrese https://support.abp.io. Máme také soukromou e-mailovou podporu, která je k dispozici pouze držitelům licence Enterprise.",
+ "SupportPolicyFaqExplanation": "Podporujeme pouze aktivní a předchozí hlavní verzi. Nezaručujeme vydání opravy pro třetí a starší hlavní verzi. Například pokud je aktivní verze 7.0.0, vydáme opravné verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problémy související s ABP Framework a ABP Commercial. To znamená, že neposkytujeme žádnou podporu aplikacím třetích stran, cloudovým službám a dalším periferním knihovnám používaným produkty ABP. Vynaložíme komerčně přiměřené úsilí, abychom našim zákazníkům poskytli technickou podporu během oficiální pracovní doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o úrovni služeb (SLA), ale budeme se snažit reagovat na technické problémy co nejrychleji v rámci naší oficiální pracovní doby. Pokud není se zákazníkem uzavřena zvláštní dohoda, poskytujeme podporu pouze na adrese https://abp.io/support/questions. Máme také soukromou e-mailovou podporu, která je k dispozici pouze držitelům licence Enterprise.",
"DowngradeLicensePlan": "Mohu v budoucnu přejít na nižší licenční plán?",
"DowngradeLicensePlanExplanation": "Stávající licenční plán nelze snížit. Můžete si však zakoupit nový nižší licenční plán a pokračovat ve vývoji s novou licencí. Po zakoupení nižší licence se stačí přihlásit k novému licenčnímu plánu pomocí příkazu ABP CLI: abp login -o `.",
"LicenseTransfer": "Lze licenci převést z jednoho vývojáře na druhého?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
index 1663811cef..f6e56588f7 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Sie verwenden die Testlizenz und Ihre Testlizenz läuft am {0} ab.",
"TryForFree": "Kostenlos testen",
"TrialLicenseExpiredInfo": "Ihr Testlizenzzeitraum ist abgelaufen!",
- "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung . zu .",
+ "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung . zu .",
"ContinueWithNewOrganization": "Weiter mit einer neuen Organisation",
"RenewLicenseEarly": "Erhalte ich das ganze Jahr, wenn ich meine Lizenz vorzeitig erneuere?",
"RenewLicenseEarylExplanation": "Wenn Sie Ihre Lizenz vor dem Ablaufdatum Ihrer Lizenz erneuern, wird Ihr Lizenzablaufdatum um 1 Jahr verlängert. Wenn Ihre Lizenz beispielsweise am {0}-06-06 abläuft und Sie sie am {0}-01-01 erneuern, ist das neue Ablaufdatum der Lizenz der {1}-06-06.",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json
index 1336c8ae0b..fb5064b9a6 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json
@@ -95,14 +95,14 @@
"Or": "Or",
"TellUsAboutYourself": "Tell us little bit about yourself",
"Surname": "Surname",
- "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.",
+ "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.",
"VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.",
"VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.",
"WeWillSendYouADownloadLink": "We've sent the file to {0}.",
"InvalidFormInputs": "Please, type the valid information specified on the form.",
"DDDBookEmailBody": "Thank you.
To download your book, click here.",
"FreeDDDEBook": "Free DDD E-Book",
- "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
+ "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
"RemoveCurrentUserFromOrganizationWarningMessage": "You are removing yourself from your own organization. You will no longer be able to manage this organization, do you confirm?",
"RenewExistingOrganizationOrCreateNewOneMessage": "You can renew the license of your organization(s) by clicking the below \"Extend Now\" button(s) and thus you can extend the license expiry date by 1 year. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?",
"ExtendNow": "Extend / Renew",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
index 3fc2d697ee..7a02bf8a39 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
@@ -720,7 +720,7 @@
"Landing_Page_DocsModuleDescription_9": "In addition to the GitHub source, allows to simply use a folder as the documentation source.",
"Landing_Page_FileManagementModuleDescription_1": "Upload, download and organize files in a hierarchical folder structure.",
"Landing_Page_FileManagementModuleDescription_2": "This module is used to upload, download and organize files in a hierarchical folder structure. It is also compatible with multi-tenancy and you can determine the total size limit for your tenants.",
- "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.",
+ "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.",
"Landing_Page_IdentityModuleDescription_1": "This module implements the User and Role system of an application;",
"Landing_Page_IdentityModuleDescription_2": "Built on the Microsoft's ASP.NET Core Identity library.",
"Landing_Page_IdentityModuleDescription_3": "Manage roles and users in the system. A user is allowed to have multiple roles.",
@@ -736,7 +736,7 @@
"Landing_Page_PaymentModuleDescription_1": "Provides integration for different payment gateways.",
"Landing_Page_PaymentModuleDescription_2": "This module provides integration for payment gateways, so you can easily get payment from your customers.",
"Landing_Page_PaymentModuleDescription_3": "This module supports the following payment gateways",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and support.abp.io.",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and abp.io/support.",
"WatchCrudPagesVideo": "Watch the \"Creating CRUD Pages with ABP Suite\" Video!",
"WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!",
"WatchTakeCloserLookVideo": "Watch the \"Take a closer look at the code generation: ABP Suite\" Video!",
@@ -812,7 +812,7 @@
"UpgradePaymentInfoSection_LicenseRenewalPrice": "License renewal",
"Total": "Total",
"SupportPolicyFaqTitle": "What is your support policy?",
- "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://support.abp.io. We also have private email support, which is only available to Enterprise License holders.",
+ "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://abp.io/support/questions. We also have private email support, which is only available to Enterprise License holders.",
"TotalDevelopers": "Total {0} developer(s)",
"CustomPurchaseExplanation": "Tailored to your specific needs",
"WhereDidYouHearAboutUs": "Where did you hear about us?",
@@ -849,7 +849,7 @@
"BlazoriseSupportExplanation5": "You can post your questions on the support website and generate a product token for your application.",
"AbpLiveTrainingPackages": "ABP Live Training Packages",
"Releases": "Releases",
- "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.",
+ "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.",
"ReleaseDate": "Release Date",
"Labels": "Labels",
"PreRelease": "Pre-release",
@@ -886,8 +886,8 @@
"DevelopYourSolution_Description1": "ABP’s infrastructure makes you focus on your own business code by automating the repetitive work and providing pre-built infrastructure and application features.",
"DevelopYourSolution_Description2": "In the following code block, you can see how the ABP Framework seamlessly integrates into your code and automates the repetitive tasks for you.",
"DevelopYourSolution_Description3": "Even in this shortcode block, ABP does a lot of things for you.",
- "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.",
- "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.",
+ "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.",
+ "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.",
"DevelopYourSolution_Description6": "You can imagine how much that code block can be long and complicated if you would do it all manually.",
"SuiteCrudGenerationInFewSeconds": "In addition to hand coding your solution, you can create fully working advanced CRUD pages in a few minutes using the ABP Suite tooling. It generates the code into your solution, so you can fine-tune it based on your custom requirements.",
"DeployAnywhere_Description1": "At the end of the day, you have a pure .NET solution. You can deploy your solution to your own server, to a cloud platform, to Kubernetes or anywhere you want. You can deploy to as many servers as you want. ABP is a deployment environment agnostic tool.",
@@ -907,8 +907,8 @@
"ReleaseLogs_Pr": "Pull Request #{0} - {1}",
"NoLabels": "No labels",
"DoesTheSubscriptionRenewAutomatically": "Does the subscription renew automatically?",
- "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP Commercial does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP Commercial, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.",
- "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial allows you to auto-renew your license. This is an optional service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. Auto-renewal toggle is in the 'Payments Method' section of the organization management page. If you want to turn off auto-renewal, visit organization management page, go to the 'Payments Method' section and uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, you must renew your license yourself.",
+ "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.",
+ "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP allows you to auto-renew your license. This is an optional service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. Auto-renewal toggle is in the 'Payments Method' section of the organization management page. If you want to turn off auto-renewal, visit organization management page, go to the 'Payments Method' section and uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, you must renew your license yourself.",
"ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?",
"ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits: - 50 questions pack $999
- 25 questions pack $625
- 15 questions pack $450
",
"AlreadyBetaTester": "You have already joined the beta tester program.",
@@ -1004,7 +1004,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate to 3rd-party libraries?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up automated tests?",
"ABPSOLUTION": "ABP SOLUTION",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.",
"CommonLibraries": "Common Libraries",
"CommonLibraries_THEPROBLEM_Description": "Which libraries should you use to implement common requirements? The software development ecosystem is highly dynamic, making it challenging to keep up with the latest tools, libraries, trends, and approaches.",
"CommonLibraries_ABPSOLUTION_Description": "ABP pre-integrates popular, mature, and up-to-date libraries into the solution. You don't need to spend time integrating them or making them communicate with each other. They work properly out of the box.",
@@ -1022,7 +1022,7 @@
"KeepingYourSolutionUpToDate": "Keeping Your Solution Up to Date",
"KeepingYourSolutionUpToDate_THEPROBLEM_Description": "After you start your development, you must keep track of the new versions of the libraries you use for upgrades & patches.",
"KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "We regularly update all packages to the latest versions and test them before the stable release. When you update the ABP Framework, all its dependencies are upgraded to edge technology.",
- "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.",
+ "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.",
"DRY": "Don't Repeat Yourself!",
"DRY_Description": "Creating a base solution takes significant time and requires good architectural experience. However, this is just the beginning! As you start developing, you will likely have to write lots of repetitive code; that would be great if all this could be handled automatically.",
"DRY_Description2": "ABP automates and simplifies repeating code as much as possible by following the convention over configuration principle. However, it doesn't restrict you when you need to switch to manual gear. The control is always in your hands.",
@@ -1063,12 +1063,12 @@
"Modularity_THEPROBLEM_Description": "Building a truly modular system is not easy! All the aspects of the system (database, entities, APIs, UI pages/components) can be split into modules, and each module can be re-usable without others. The plain ASP.NET Core doesn't provide such a modular architecture. If you need it, you should think about it from scratch.",
"Modularity_ABPSOLUTION_Description": "The ABP Framework is born to be a modular application development structure. Every feature in the framework is developed to be compatible with modularity. Documentation and guides explain how to develop re-usable modules in a standard way.",
"SaaSMultiTenancy": "SaaS / Multi-Tenancy",
- "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.",
+ "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework provides a complete multi-tenant infrastructure and abstract complexity from your business code. Your application code will be mostly multi-tenancy aware, while the ABP Framework automatically isolates the database, cache and other details of the tenants from each other. It supports single database, per tenant database and hybrid approaches. It properly configures the libraries like Microsoft Identity and OpenIddict, which are not normally multi-tenancy compatible.",
"Microservices": "Microservices",
"Microservices_THEPROBLEM_Description": "Building a microservice system requires many infrastructure details: Authenticating and authorizing applications and microservices and implementing asynchronous messaging and synchronous (Rest/GRPC) communication patterns between microservices are the most fundamental issues.",
- "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial even goes one step further and provides a complete startup template to kick-start your microservice solution.",
+ "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.",
+ "Microservices_ABPSOLUTION_Description2": "ABP Commercial even goes one step further and provides a complete startup template to kick-start your microservice solution.",
"PreBuiltModules": "Pre-Built Modules",
"PreBuiltModules_THEPROBLEM_Description": "All of us have similar but slightly different business requirements. However, we all should re-invent the wheel since no one's code can directly work in our solution. They are all embedded parts of a larger solution.",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules provides a lot of re-usable application modules like payment, chat, file management, audit log reporting... etc. All of these modules are easily installed into your solution and directly work. We are constantly adding more modules.",
@@ -1208,9 +1208,9 @@
"Application{0}": "Application {0}",
"PreBuiltApplicationModulesTitle": "Pre-Built Application Modules",
"RegisterDemo": "Register",
- "TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP Commercial.",
+ "TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP.",
"PurchaseDevelopers": "developers",
- "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page."
+ "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page."
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
index 3f54749131..03b6e8ebde 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
@@ -96,7 +96,7 @@
"TextTemplateManagement": "Gestión de plantillas de texto",
"See All Modules": "Ver todos los módulos",
"ABPSuite": "Suite ABP",
- "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP Commercial.",
+ "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP.",
"AbpSuiteExplanation": "Te permite crear páginas web en cuestión de minutos. Es una herramienta global de .NET Core que se puede instalar desde la línea de comandos. Puede crear una nueva solución ABP, generar páginas CRUD desde la base de datos al front-end.",
"Details": "Detalles",
"LeptonTheme": "Tema de Lepton",
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Está utilizando la licencia de prueba y su licencia de prueba caducará el {0}.",
"TryForFree": "Prueba gratis",
"TrialLicenseExpiredInfo": "¡Su período de licencia de prueba ha expirado!",
- "CommercialNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .",
+ "CommercialNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .",
"ContinueWithNewOrganization": "Continuar con una nueva organización",
"RenewLicenseEarly": "Si renuevo mi licencia antes, ¿obtendré el año completo?",
"RenewLicenseEarylExplanation": "Cuando renueve su licencia antes de la fecha de vencimiento de su licencia, se agregará 1 año a la fecha de vencimiento de su licencia. Por ejemplo, si su licencia vence el {0} -06-06 y la renueva el {0} -01-01, la fecha de vencimiento de su nueva licencia será {1} -06-06.",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
index f367f63c30..e963dc7032 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
@@ -718,7 +718,7 @@
"Landing_Page_DocsModuleDescription_9": "GitHub-lähteen lisäksi mahdollistaa tavallisen kansion käytön dokumentaatiolähteenä.",
"Landing_Page_FileManagementModuleDescription_1": "Lataa, lataa ja järjestä tiedostoja hierarkkisessa kansiorakenteessa.",
"Landing_Page_FileManagementModuleDescription_2": "Tätä moduulia käytetään tiedostojen lataamiseen, lataamiseen ja järjestämiseen hierarkkisessa kansiorakenteessa. Se on myös yhteensopiva usean vuokrauksen kanssa, ja voit määrittää vuokralaisten kokonaiskokorajan.",
- "Landing_Page_FileManagementModuleDescription_3": "Tämä moduuli perustuu BLOB-tallennusjärjestelmään, joten se voi käyttää eri tallennuspalveluita tiedoston sisällön tallentamiseen.",
+ "Landing_Page_FileManagementModuleDescription_3": "Tämä moduuli perustuu BLOB-tallennusjärjestelmään, joten se voi käyttää eri tallennuspalveluita tiedoston sisällön tallentamiseen.",
"Landing_Page_IdentityModuleDescription_1": "Tämä moduuli toteuttaa sovelluksen käyttäjä- ja roolijärjestelmän;",
"Landing_Page_IdentityModuleDescription_2": "Luotu käyttäen Microsoftin ASP.NET Core Identity -kirjastoa.",
"Landing_Page_IdentityModuleDescription_3": "Hallinnoi rooleja ja käyttäjiä järjestelmässä. Käyttäjällä voi olla useita rooleja.",
@@ -734,7 +734,7 @@
"Landing_Page_PaymentModuleDescription_1": "Tarjoaa integroinnin eri maksuyhdyskäytäville.",
"Landing_Page_PaymentModuleDescription_2": "Tämä moduuli integroi maksuyhdyskäytäviä, joten saat helposti maksuja asiakkailtasi.",
"Landing_Page_PaymentModuleDescription_3": "Tämä moduuli tukee seuraavia maksuyhdyskäytäviä",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "Käytä samoja kirjautumistietoja sekä commercial.abp.io- että support.abp.io.",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "Käytä samoja kirjautumistietoja sekä commercial.abp.io- että support.abp.io.",
"WatchCrudPagesVideo": "Katso \"CRUD-sivujen luominen ABP Suiten avulla\" -video!",
"WatchGeneratingFromDatabaseVideo": "Katso \"ABP Suite: CRUD-sivujen luominen olemassa olevista tietokantataulukoista\" -video!",
"WatchTakeCloserLookVideo": "Katso \"Katso tarkemmin koodin sukupolvea: ABP Suite\" -video!",
@@ -809,7 +809,7 @@
"UpgradePaymentInfoSection_LicenseRenewalPrice": "Lisenssin uusiminen",
"Total": "Kaikki yhteensä",
"SupportPolicyFaqTitle": "Mikä on tukipolitiikkanne?",
- "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistä pääversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pääversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekä versioista 6.x.x että 7.x.x. Lisäksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. Tämä tarkoittaa, että tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden käyttämille oheiskirjastoille. Käytämme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistä tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistä sopimusta, tarjoamme tukea vain osoitteessa https://support.abp.io. Meillä on myös yksityinen sähköpostituki, joka on vain Enterprise-lisenssin haltijoiden käytettävissä.",
+ "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistä pääversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pääversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekä versioista 6.x.x että 7.x.x. Lisäksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. Tämä tarkoittaa, että tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden käyttämille oheiskirjastoille. Käytämme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistä tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistä sopimusta, tarjoamme tukea vain osoitteessa https://abp.io/support/questions. Meillä on myös yksityinen sähköpostituki, joka on vain Enterprise-lisenssin haltijoiden käytettävissä.",
"TotalDevelopers": "Yhteensä {0} kehittäjää",
"CustomPurchaseExplanation": "Räätälöity sinun tarpeidesi mukaan",
"WhereDidYouHearAboutUs": "Mistä kuulit meistä?",
@@ -827,7 +827,7 @@
"ExpirationDate": "Viimeinen käyttöpäivä",
"SpringCampaignDiscount": "Kevään kampanja-alennus",
"WhyUseAbpIoPlatform": "Miksi minun pitäisi käyttää ABP.IO-alustaa sen sijaan, että luon uuden ratkaisun tyhjästä?",
- "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestä asiakirjasta yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.",
+ "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestä asiakirjasta yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.",
"MultipleOrganizationInfo": "Katso kaikki organisaatiosi",
"PaymentFailedInfo": "Anteeksi, maksu epäonnistui! ",
"UsedPayment": "Tämä maksu on jo käytetty",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
index b044837aac..248b575753 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Vous utilisez la licence d'essai et votre licence d'essai expirera le {0}.",
"TryForFree": "Essayer gratuitement",
"TrialLicenseExpiredInfo": "Votre période de licence d'essai a expiré !",
- "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions générales et la Politique de confidentialité .",
+ "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions générales et la Politique de confidentialité .",
"ContinueWithNewOrganization": "Continuer avec une nouvelle organisation",
"RenewLicenseEarly": "Si je renouvelle ma licence plus tôt, obtiendrai-je l'année complète ?",
"RenewLicenseEarylExplanation": "Lorsque vous renouvelez votre licence avant la date d'expiration de votre licence, 1 an sera ajouté à la date d'expiration de votre licence. Par exemple, si votre licence expire le {0}-06-06 et que vous la renouvelez le {0}-01-01, la nouvelle date d'expiration de votre licence sera le {1}-06-06.",
@@ -391,7 +391,7 @@
"OnboardingTrainingFaqTitle": "Avez-vous une formation d'accueil ABP ?",
"OnboardingTrainingFaqExplanation": "Oui, nous avons des services de formation ABP pour vous aider à démarrer rapidement votre projet ABP. Vous en apprendrez plus sur l'ABP auprès d'un membre de l'équipe principale d'ABP et vous acquerrez les compétences nécessaires pour commencer votre projet ABP. Dans la formation d'intégration, nous vous expliquerons comment configurer votre environnement de développement, installer les outils requis, créer une page CRUD entièrement fonctionnelle. La formation sera en direct et l'application Zoom sera utilisée, et nous sommes ouverts à l'utilisation d'autres plateformes de réunion en ligne. La langue de la formation sera l'anglais. Vous pouvez également poser vos questions sur l'ABP pendant les séances. Une heure et une date convenables seront prévues pour les deux parties. Pour obtenir plus d'informations, contactez-nous à info@abp.io.",
"SupportPolicyFaqTitle": "Quelle est votre politique de soutien ?",
- "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure précédente. Nous ne garantissons pas la publication d'un correctif pour la troisième version majeure et la version majeure antérieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problèmes liés à ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothèques périphériques utilisées par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir à nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas à respecter un accord de niveau de service (SLA) sur le temps de réponse, mais nous essaierons de répondre aux problèmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spécial avec le client, nous ne fournissons une assistance qu'à l'adresse https://support.abp.io. Nous disposons également d'une assistance privée par courrier électronique, qui n'est accessible qu'aux détenteurs d'une licence d'entreprise.",
+ "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure précédente. Nous ne garantissons pas la publication d'un correctif pour la troisième version majeure et la version majeure antérieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problèmes liés à ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothèques périphériques utilisées par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir à nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas à respecter un accord de niveau de service (SLA) sur le temps de réponse, mais nous essaierons de répondre aux problèmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spécial avec le client, nous ne fournissons une assistance qu'à l'adresse https://abp.io/support/questions. Nous disposons également d'une assistance privée par courrier électronique, qui n'est accessible qu'aux détenteurs d'une licence d'entreprise.",
"DowngradeLicensePlan": "Puis-je passer à un plan de licence inférieur à l'avenir ?",
"DowngradeLicensePlanExplanation": "Vous ne pouvez pas rétrograder votre plan de licence existant. Mais vous pouvez acheter un nouveau plan de licence inférieur et continuer votre développement sur la nouvelle licence. Après avoir acheté une licence inférieure, il vous suffit de vous connecter à votre nouveau plan de licence via la commande CLI d'ABP : ` abp login -o `.",
"LicenseTransfer": "Une licence peut-elle être transférée d'un développeur à un autre ?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
index 958e3d533f..e48e4494a7 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
@@ -382,13 +382,13 @@
"TrialLicenseExpireMessage": "आप परीक्षण लाइसेंस का उपयोग कर रहे हैं और आपका परीक्षण लाइसेंस {0} को समाप्त हो जाएगा।",
"TryForFree": "मुफ्त में आजमाइये",
"TrialLicenseExpiredInfo": "आपके परीक्षण लाइसेंस की अवधि समाप्त हो गई है!",
- "CommercialNewsletterConfirmationMessage": "मैं नियम और शर्तों और गोपनीयता नीति से सहमत हूं .",
+ "CommercialNewsletterConfirmationMessage": "मैं नियम और शर्तों और गोपनीयता नीति से सहमत हूं .",
"discountForYears": "{1}वर्ष(वर्षों) के लिए {0}% छूट",
"BlackFridayDiscount": "ब्लैक फ्राइडे छूट",
"OnboardingTrainingFaqTitle": "क्या आपके पास एबीपी ऑनबोर्डिंग प्रशिक्षण है?",
"OnboardingTrainingFaqExplanation": "हां, आपके एबीपी प्रोजेक्ट को तेजी से शुरू करने में आपकी मदद करने के लिए हमारे पास एबीपी प्रशिक्षण सेवाएं हैं। आप ABP कोर टीम के सदस्य से ABP के बारे में जानेंगे और आपको अपना ABP प्रोजेक्ट शुरू करने का कौशल प्राप्त होगा। ऑनबोर्डिंग प्रशिक्षण में, हम समझाएंगे कि अपने विकास के माहौल को कैसे स्थापित करें, आवश्यक उपकरण कैसे स्थापित करें, पूरी तरह कार्यात्मक CRUD पेज कैसे बनाएं। प्रशिक्षण लाइव होगा और जूम एप्लिकेशन का उपयोग किया जाएगा, और हम अन्य ऑनलाइन मीटिंग प्लेटफॉर्म का उपयोग करने के लिए तैयार हैं। प्रशिक्षण की भाषा अंग्रेजी होगी। आप सत्रों के दौरान ABP के बारे में अपने प्रश्न भी पूछ सकते हैं। दोनों पक्षों के लिए एक सुविधाजनक समय और तारीख की योजना बनाई जाएगी। अधिक जानकारी प्राप्त करने के लिए, info@abp.io पर हमसे संपर्क करें।",
"SupportPolicyFaqTitle": "आपकी समर्थन नीति क्या है?",
- "SupportPolicyFaqExplanation": "हम केवल सक्रिय और पिछले प्रमुख संस्करण का समर्थन करते हैं। हम तीसरे और पुराने प्रमुख संस्करणों के लिए पैच रिलीज़ की गारंटी नहीं देते हैं। उदाहरण के लिए, यदि सक्रिय संस्करण 7.0.0 है, तो हम 6.x.x और 7.x.x दोनों के लिए पैच रिलीज़ जारी करेंगे। इसके अलावा, हम केवल ABP फ्रेमवर्क और ABP कमर्शियल संबंधित मुद्दों के लिए समर्थन प्रदान करते हैं। इसका मतलब है कि तीसरे पक्ष के अनुप्रयोगों, क्लाउड सेवाओं और एबीपी उत्पादों द्वारा उपयोग किए जाने वाले अन्य परिधीय पुस्तकालयों के लिए कोई समर्थन नहीं दिया गया है। हम अपने ग्राहकों को \"Volosoft Bilisim A.S\" के आधिकारिक व्यावसायिक घंटों के दौरान तकनीकी सहायता प्रदान करने के लिए व्यावसायिक रूप से उचित प्रयासों का उपयोग करेंगे। दूसरी ओर, हम सर्विस-लेवल एग्रीमेंट (SLA) प्रतिक्रिया समय के लिए प्रतिबद्ध नहीं हैं, लेकिन हम अपने आधिकारिक कामकाजी घंटों के भीतर जितनी जल्दी हो सके तकनीकी मुद्दों पर प्रतिक्रिया देने का प्रयास करेंगे। जब तक ग्राहक के साथ कोई विशेष समझौता नहीं किया जाता है, हम केवल https://support.abp.io पर सहायता प्रदान करते हैं। हमारे पास निजी ईमेल समर्थन भी है, जो केवल एंटरप्राइज़ लाइसेंस धारकों के लिए उपलब्ध है।",
+ "SupportPolicyFaqExplanation": "हम केवल सक्रिय और पिछले प्रमुख संस्करण का समर्थन करते हैं। हम तीसरे और पुराने प्रमुख संस्करणों के लिए पैच रिलीज़ की गारंटी नहीं देते हैं। उदाहरण के लिए, यदि सक्रिय संस्करण 7.0.0 है, तो हम 6.x.x और 7.x.x दोनों के लिए पैच रिलीज़ जारी करेंगे। इसके अलावा, हम केवल ABP फ्रेमवर्क और ABP कमर्शियल संबंधित मुद्दों के लिए समर्थन प्रदान करते हैं। इसका मतलब है कि तीसरे पक्ष के अनुप्रयोगों, क्लाउड सेवाओं और एबीपी उत्पादों द्वारा उपयोग किए जाने वाले अन्य परिधीय पुस्तकालयों के लिए कोई समर्थन नहीं दिया गया है। हम अपने ग्राहकों को \"Volosoft Bilisim A.S\" के आधिकारिक व्यावसायिक घंटों के दौरान तकनीकी सहायता प्रदान करने के लिए व्यावसायिक रूप से उचित प्रयासों का उपयोग करेंगे। दूसरी ओर, हम सर्विस-लेवल एग्रीमेंट (SLA) प्रतिक्रिया समय के लिए प्रतिबद्ध नहीं हैं, लेकिन हम अपने आधिकारिक कामकाजी घंटों के भीतर जितनी जल्दी हो सके तकनीकी मुद्दों पर प्रतिक्रिया देने का प्रयास करेंगे। जब तक ग्राहक के साथ कोई विशेष समझौता नहीं किया जाता है, हम केवल https://abp.io/support/questions पर सहायता प्रदान करते हैं। हमारे पास निजी ईमेल समर्थन भी है, जो केवल एंटरप्राइज़ लाइसेंस धारकों के लिए उपलब्ध है।",
"DowngradeLicensePlan": "क्या मैं भविष्य में कम लाइसेंस योजना में डाउनग्रेड कर सकता हूँ?",
"DowngradeLicensePlanExplanation": "आप अपनी मौजूदा लाइसेंस योजना को डाउनग्रेड नहीं कर सकते। लेकिन आप नया लोअर लाइसेंस प्लान खरीद सकते हैं और नए लाइसेंस पर अपना विकास जारी रख सकते हैं। आपके द्वारा कम लाइसेंस खरीदने के बाद, आपको एबीपी सीएलआई कमांड के माध्यम से अपनी नई लाइसेंस योजना में प्रवेश करने की आवश्यकता है: `एबीपी लॉगिन <उपयोगकर्ता नाम> -ओ <संगठन>`।",
"LicenseTransfer": "क्या लाइसेंस एक डेवलपर से दूसरे डेवलपर को ट्रांसफर किया जा सकता है?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
index 6f8c1930cf..fe67373478 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
@@ -541,7 +541,7 @@
"Pricing_Page_Testimonial_2": "Vidimo vrijednost korištenja ABP Commerciala za smanjenje režijskih troškova prilagođenih razvojnih projekata. Tim je u mogućnosti objediniti uzorak koda u različitim tokovima projekta. Vidimo više potencijala u okviru za izgradnju novih značajki brže nego prije. Vjerujemo da ćemo stalno uviđati vrijednost iskorištavanja ABP Commerciala.",
"Pricing_Page_Testimonial_3": "Volimo ABP. Ne moramo sve pisati ispočetka. Počinjemo od značajki izvan okvira i fokusiramo se samo na ono što stvarno trebamo napisati. Također, ABP je dobro projektiran i kod je visoke kvalitete s manje grešaka. Kad bismo morali sami napisati sve što nam treba, možda bismo morali potrošiti godine. Još jedna stvar koja nam se sviđa je što nova verzija, popravak problema ili poboljšanje izlazi vrlo brzo svaki drugi tjedan. Ne čekamo predugo.",
"Pricing_Page_Testimonial_4": "ABP Commercial je fantastičan proizvod koji bih preporučio. Komercijalni proizvodi za tržište za naše kupce na jednoj platformi koja se može konfigurirati. Skok počinje da okvir i alati pružaju bilo koji tim vrijedan svakog centa. ABP Commercial najbolje je odgovarao našim potrebama.",
- "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruža DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, možete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao što je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko bilježenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naše aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.",
+ "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruža DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, možete se razvijati s abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao što je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko bilježenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naše aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.",
"Pricing_Page_Testimonial_6": "ABP Framework je dobar okvir, ali mu treba vremena da razumije različite slojeve, klase i biblioteke koje koristi (osobito ABP). Proveo sam puno vremena čitajući bazu koda, ali ABP Commercial uštedio nam je vrijeme u stvaranju posebnih entiteta projekta (AR) i repozitorija povezanog sa svakim od njih. Svidio mi se i pristup korišten u ABP-u koji je vrlo zreo; znamo da se temelji na DDD i monolitu.",
"Pricing_Page_Testimonial_7": "Kao startup, moramo brzo ponavljati i potrošiti minimalno vremena na standardne i sporedne značajke. \n Naši inženjeri variraju od vrlo iskusnih do mlađih inženjera, a bilo nam je potrebno zajedničko razumijevanje i način dijeljenja tehničkog i domenskog znanja, ABP nam je to omogućio zahvaljujući njihovim sjajnim vodičima i dokumentaciji. \n Postoje stvari o kojima se ne moramo brinuti budući da rade izvan kutije s ABP-om. \n ABP pomogao nam je pojednostaviti brzu izradu prototipova i razvoj, manje od 4 tjedna od početka značajke do proizvodnje. Sa svim svojim premium značajkama uključenim u licencu, ABP nam je dao "Startup in a Box" na strani softverskog inženjeringa.",
"Pricing_Page_Testimonial_8": "ABP komercijalu bih preporučio svima onima koji žele proširiti ponudu proizvoda dostupnih svojim kupcima. Fantastično je kada je potrebno koristiti distribuirano poslovno okruženje (Angular, WPF, Win&Linux). Osim njihovih proizvoda, volimo i njihovu podršku, koja nam posao čini bržim i lakšim. Već znamo da smo pronašli odličnog partnera za budućnost koji će nas podržati u širenju poslovanja.",
@@ -720,7 +720,7 @@
"Landing_Page_DocsModuleDescription_9": "Osim izvora GitHub, omogućuje jednostavno korištenje mape kao izvora dokumentacije.",
"Landing_Page_FileManagementModuleDescription_1": "Prijenos, preuzimanje i organiziranje datoteka u hijerarhijsku strukturu mapa.",
"Landing_Page_FileManagementModuleDescription_2": "Ovaj se modul koristi za učitavanje, preuzimanje i organiziranje datoteka u hijerarhijskoj strukturi mapa. Također je kompatibilan s višestrukim zakupom i možete odrediti ograničenje ukupne veličine za svoje stanare.",
- "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da može koristiti različite pružatelje pohrane za pohranjivanje sadržaja datoteke.",
+ "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da može koristiti različite pružatelje pohrane za pohranjivanje sadržaja datoteke.",
"Landing_Page_IdentityModuleDescription_1": "Ovaj modul implementira sustav korisnika i uloga aplikacije;",
"Landing_Page_IdentityModuleDescription_2": "Izgrađen na Microsoftovoj biblioteci ASP.NET Core Identity .",
"Landing_Page_IdentityModuleDescription_3": "Upravljanje ulogama i korisnicima u sustavu. Korisnik može imati više uloga .",
@@ -736,7 +736,7 @@
"Landing_Page_PaymentModuleDescription_1": "Omogućuje integraciju za različite pristupnike plaćanja.",
"Landing_Page_PaymentModuleDescription_2": "Ovaj modul pruža integraciju za pristupnike plaćanja, tako da možete jednostavno dobiti plaćanje od svojih kupaca.",
"Landing_Page_PaymentModuleDescription_3": "Ovaj modul podržava sljedeće pristupnike plaćanja",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .",
"WatchCrudPagesVideo": "Pogledajte video "Izrada CRUD stranica s ABP Suiteom"!",
"WatchGeneratingFromDatabaseVideo": "Pogledajte video "ABP Suite: Generiranje CRUD stranica iz postojećih tablica baze podataka"!",
"WatchTakeCloserLookVideo": "Pogledajte video "Pobliže pogledajte generiranje koda: ABP Suite"!",
@@ -812,7 +812,7 @@
"UpgradePaymentInfoSection_LicenseRenewalPrice": "Obnova licence",
"Total": "Ukupno",
"SupportPolicyFaqTitle": "Kakva je vaša politika podrške?",
- "SupportPolicyFaqExplanation": "Podržavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pružamo podršku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrška za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. Uložit ćemo komercijalno razumne napore da svojim klijentima pružimo tehničku podršku tijekom službenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokušati odgovoriti na tehničke probleme što je brže moguće unutar našeg službenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podršku pružamo samo na https://support.abp.io. Imamo i privatnu podršku e-poštom, koja je dostupna samo nositeljima Enterprise License.",
+ "SupportPolicyFaqExplanation": "Podržavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pružamo podršku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrška za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. Uložit ćemo komercijalno razumne napore da svojim klijentima pružimo tehničku podršku tijekom službenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokušati odgovoriti na tehničke probleme što je brže moguće unutar našeg službenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podršku pružamo samo na https://abp.io/support/questions. Imamo i privatnu podršku e-poštom, koja je dostupna samo nositeljima Enterprise License.",
"TotalDevelopers": "Ukupno {0} programera(a)",
"CustomPurchaseExplanation": "Prilagođeno vašim specifičnim potrebama",
"WhereDidYouHearAboutUs": "Gdje ste čuli za nas?",
@@ -886,8 +886,8 @@
"DevelopYourSolution_Description1": "ABP-ova infrastruktura tjera vas da se usredotočite na vlastiti poslovni kod automatizirajući rad koji se ponavlja i pruža unaprijed izgrađenu infrastrukturu i značajke aplikacije.",
"DevelopYourSolution_Description2": "U sljedećem bloku koda možete vidjeti kako se ABP Framework neprimjetno integrira u vaš kod i automatizira zadatke koji se ponavljaju umjesto vas.",
"DevelopYourSolution_Description3": "Čak iu ovom bloku kratkog koda, ABP radi puno stvari za vas.",
- "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pružaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podešenim sustavom dozvola.",
- "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko bilježenje . Omogućuje mnogo više sastavnih dijelova za pojednostavljenje vaših svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.",
+ "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pružaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podešenim sustavom dozvola.",
+ "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko bilježenje . Omogućuje mnogo više sastavnih dijelova za pojednostavljenje vaših svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.",
"DevelopYourSolution_Description6": "Možete zamisliti koliko taj blok koda može biti dug i kompliciran kada biste sve to radili ručno.",
"SuiteCrudGenerationInFewSeconds": "Osim ručnog kodiranja vašeg rješenja, možete izraditi potpuno radne napredne CRUD stranice u nekoliko minuta pomoću alata ABP Suite. Generira kod u vašem rješenju, tako da ga možete fino prilagoditi na temelju svojih prilagođenih zahtjeva.",
"DeployAnywhere_Description1": "Na kraju dana, imate čisto .NET rješenje. Svoje rješenje možete implementirati na vlastiti poslužitelj, na platformu u oblaku, na Kubernetes ili gdje god želite. Možete implementirati na onoliko poslužitelja koliko želite. ABP je agnostički alat za razvojnu okolinu.",
@@ -1003,7 +1003,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "Kako se integrirate u biblioteku i sustave trećih strana?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "Kako postaviti automatizirane testove?",
"ABPSOLUTION": "ABP RJEŠENJE",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruža dobro projektirano, slojevito i za proizvodnju spremno startup rješenje temeljeno na načelima Domain Driven Design . Rješenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruža dobro projektirano, slojevito i za proizvodnju spremno startup rješenje temeljeno na načelima Domain Driven Design . Rješenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.",
"CommonLibraries": "Zajedničke knjižnice",
"CommonLibraries_THEPROBLEM_Description": "Koje bi knjižnice trebali koristiti za implementaciju uobičajenih zahtjeva? Ekosustav razvoja softvera vrlo je dinamičan, što ga čini izazovnim držati korak s najnovijim alatima, bibliotekama, trendovima i pristupima.",
"CommonLibraries_ABPSOLUTION_Description": "ABP unaprijed integrira popularne, zrele i ažurirane biblioteke u rješenje. Ne morate trošiti vrijeme na njihovu integraciju ili natjeravanje da međusobno komuniciraju. Rade ispravno iz kutije.",
@@ -1061,12 +1061,12 @@
"Modularity_THEPROBLEM_Description": "Izgradnja istinski modularnog sustava nije laka! Svi aspekti sustava (baza podataka, entiteti, API-ji, UI stranice/komponente) mogu se podijeliti u module, a svaki se modul može ponovno koristiti bez drugih. Obični ASP.NET Core ne pruža takvu modularnu arhitekturu. Ako vam treba, razmislite o tome od nule.",
"Modularity_ABPSOLUTION_Description": "ABP Framework je rođen da bude modularna struktura za razvoj aplikacija. Svaka značajka u okviru razvijena je da bude kompatibilna s modularnošću. Dokumentacija i vodiči objašnjavaju kako razviti module koji se mogu ponovno koristiti na standardni način.",
"SaaSMultiTenancy": "SaaS / Multi-Tenancy",
- "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s više stanara može postati komplicirana.",
+ "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s više stanara može postati komplicirana.",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework pruža kompletnu infrastrukturu s više korisnika i apstraktnu složenost iz vašeg poslovnog koda. Vaš aplikacijski kod će uglavnom biti svjestan više zakupaca, dok ABP Framework automatski izolira bazu podataka, predmemoriju i druge detalje zakupaca jedne od drugih. Podržava jedinstvenu bazu podataka, bazu podataka po stanarima i hibridne pristupe. Ispravno konfigurira biblioteke kao što su Microsoft Identity i OpenIddict, koje obično nisu kompatibilne s više korisnika.",
"Microservices": "Mikroservisi",
"Microservices_THEPROBLEM_Description": "Izgradnja sustava mikroservisa zahtijeva mnoge infrastrukturne detalje: autentifikacija i autorizacija aplikacija i mikroservisa te implementacija asinkronog slanja poruka i sinkronih (Rest/GRPC) komunikacijskih obrazaca između mikroservisa najosnovnija su pitanja.",
- "Microservices_ABPSOLUTION_Description": "ABP Framework pruža usluge, vodiče i uzorke koji će vam pomoći implementirati vaše mikrouslužno rješenje pomoću standardnih alata za industriju.",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruža potpuni predložak za pokretanje za pokretanje vašeg mikroservisnog rješenja.",
+ "Microservices_ABPSOLUTION_Description": "ABP Framework pruža usluge, vodiče i uzorke koji će vam pomoći implementirati vaše mikrouslužno rješenje pomoću standardnih alata za industriju.",
+ "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruža potpuni predložak za pokretanje za pokretanje vašeg mikroservisnog rješenja.",
"PreBuiltModules": "Unaprijed izgrađeni moduli",
"PreBuiltModules_THEPROBLEM_Description": "Svi mi imamo slične ali pomalo različite poslovne zahtjeve. Međutim, svi bismo trebali ponovno izmisliti kotač jer ničiji kod ne može izravno funkcionirati u našem rješenju. Svi su oni ugrađeni dijelovi većeg rješenja.",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules pruža mnoštvo višekratno upotrebljivih aplikacijskih modula kao što su plaćanje, chat, upravljanje datotekama, izvješćivanje dnevnika revizije... itd. Svi ovi moduli lako se instaliraju u vaše rješenje i izravno rade. Stalno dodajemo nove module.",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
index 79889c0d1b..4b4b099c49 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
@@ -718,7 +718,7 @@
"Landing_Page_DocsModuleDescription_9": "A GitHub-forrás mellett lehetővé teszi egy mappa egyszerű használatát dokumentációs forrásként.",
"Landing_Page_FileManagementModuleDescription_1": "Fájlok feltöltése, letöltése és rendezése hierarchikus mappastruktúrában.",
"Landing_Page_FileManagementModuleDescription_2": "Ez a modul fájlok feltöltésére, letöltésére és hierarchikus mappastruktúrába rendezésére szolgál. Több bérléssel is kompatibilis, és meghatározhatja bérlői teljes méretkorlátját.",
- "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, így különböző tárolószolgáltatókat használhat a fájltartalom tárolására.",
+ "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, így különböző tárolószolgáltatókat használhat a fájltartalom tárolására.",
"Landing_Page_IdentityModuleDescription_1": "Ez a modul egy alkalmazás Felhasználó és szerepkör rendszerét valósítja meg;",
"Landing_Page_IdentityModuleDescription_2": "A Microsoft ASP.NET Core Identity könyvtárára épül.",
"Landing_Page_IdentityModuleDescription_3": "Szerepkörök és felhasználók kezelése a rendszerben. Egy felhasználónak több szerepe is lehet.",
@@ -734,7 +734,7 @@
"Landing_Page_PaymentModuleDescription_1": "Integrációt biztosít a különböző fizetési átjárókhoz.",
"Landing_Page_PaymentModuleDescription_2": "Ez a modul integrációt biztosít a fizetési átjárókhoz, így könnyen kaphat fizetést ügyfeleitől.",
"Landing_Page_PaymentModuleDescription_3": "Ez a modul a következő fizetési átjárókat támogatja",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesítési adatokat használja a commercial.abp.io és a support.abp.io fájlokhoz .",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesítési adatokat használja a commercial.abp.io és a support.abp.io fájlokhoz .",
"WatchCrudPagesVideo": "Nézze meg a \"CRUD oldalak létrehozása az ABP Suite segítségével\" videót!",
"WatchGeneratingFromDatabaseVideo": "Nézze meg az \"ABP Suite: CRUD-oldalak generálása meglévő adatbázistáblákból\" videót!",
"WatchTakeCloserLookVideo": "Tekintse meg a „Nézze meg közelebbről a kódgenerálást: ABP Suite” videót!",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
index d6744a9603..6b5a58480e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Þú ert að nota prufuleyfið og prufuleyfið rennur út {0}.",
"TryForFree": "Prófaðu ókeypis",
"TrialLicenseExpiredInfo": "Prófunartímabil þitt er útrunnið!",
- "CommercialNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .",
+ "CommercialNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .",
"BlackFridayDiscount": "Black Friday afsláttur",
"MultipleOrganizationInfo": "Sjá öll samtök þín",
"PaymentFailedInfo": "Því miður, greiðsla mistókst! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
index addb4b54e1..633c41f66e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
@@ -382,13 +382,13 @@
"TrialLicenseExpireMessage": "Stai utilizzando la licenza di prova e la tua licenza di prova scadrà il {0}.",
"TryForFree": "Prova gratis",
"TrialLicenseExpiredInfo": "Il periodo della tua licenza di prova è scaduto!",
- "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .",
+ "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .",
"discountForYears": "{0}% di sconto per {1} anno/i",
"BlackFridayDiscount": "Sconto Black Friday",
"OnboardingTrainingFaqTitle": "Avete un corso di formazione ABP per l'onboarding?",
"OnboardingTrainingFaqExplanation": "Sì, abbiamo i servizi di formazione ABP per aiutarti a far partire rapidamente il tuo progetto ABP. Imparerai a conoscere ABP da un membro del core team ABP e otterrai le competenze per iniziare il tuo progetto ABP. Nella formazione onboarding, spiegheremo come configurare il tuo ambiente di sviluppo, installare gli strumenti richiesti, creare una pagina CRUD completamente funzionante. La formazione sarà in diretta e verrà utilizzata l'applicazione Zoom e siamo aperti all'utilizzo di altre piattaforme di riunioni online. La lingua della formazione sarà l'inglese. Puoi anche porre le tue domande sull'ABP durante le sessioni. Verrà pianificata una data e un orario convenienti per entrambe le parti. Per ulteriori informazioni, contattaci all'indirizzo info@abp.io.",
"SupportPolicyFaqTitle": "Qual è la vostra politica di assistenza?",
- "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva è la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. Ciò significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il più rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://support.abp.io. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.",
+ "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva è la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. Ciò significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il più rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://abp.io/support/questions. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.",
"DowngradeLicensePlan": "Posso passare a un piano di licenza inferiore in futuro?",
"DowngradeLicensePlanExplanation": "Non è possibile effettuare il downgrade del piano di licenza esistente. È però possibile acquistare un nuovo piano di licenza inferiore e continuare lo sviluppo con la nuova licenza. Dopo aver acquistato una licenza inferiore, è sufficiente effettuare il login al nuovo piano di licenza tramite il comando ABP CLI: abp login -o `.",
"LicenseTransfer": "È possibile trasferire una licenza da uno sviluppatore a un altro?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
index 298e59d573..c26bdb8993 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "U gebruikt de proeflicentie en uw proeflicentie verloopt op {0}.",
"TryForFree": "Probeer gratis",
"TrialLicenseExpiredInfo": "Uw proeflicentieperiode is verlopen!",
- "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .",
+ "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .",
"BlackFridayDiscount": "Black Friday korting",
"MultipleOrganizationInfo": "Bekijk al uw organisaties",
"PaymentFailedInfo": "Excuses, betaling mislukt! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
index 757fc93ec1..c5b0849545 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Korzystasz z licencji próbnej, a Twoja licencja próbna wygaśnie w dniu {0}.",
"TryForFree": "Wypróbuj za darmo",
"TrialLicenseExpiredInfo": "Twoja licencja próbna wygasła!",
- "CommercialNewsletterConfirmationMessage": "Wyrażam zgodę na Warunki i Politykę prywatności .",
+ "CommercialNewsletterConfirmationMessage": "Wyrażam zgodę na Warunki i Politykę prywatności .",
"BlackFridayDiscount": "Zniżka Black Friday",
"MultipleOrganizationInfo": "Zobacz wszystkie swoje organizacje",
"PaymentFailedInfo": "Przepraszamy, płatność nie powiodła się! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
index fe72c04d15..fd92099059 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
@@ -383,14 +383,14 @@
"TrialLicenseExpireMessage": "Você está usando a licença de teste e sua licença de teste irá expirar em {0}.",
"TryForFree": "Experimentar gratuitamente",
"TrialLicenseExpiredInfo": "Seu período de licença de teste expirou!",
- "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e Condições e a Política de Privacidade ",
+ "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e Condições e a Política de Privacidade ",
"discountForYears": "{0}% de desconto por {1} ano(s)",
"BlackFridayDiscount": "Desconto de Black Friday",
"WhyUseAbpIoPlatform": "Por que devo usar a plataforma ABP.IO em vez de criar uma nova solução a partir do zero?",
- "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquê de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo você mesmo.",
+ "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquê de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo você mesmo.",
"OnboardingTrainingFaqTitle": "Você tem treinamento de ABP a bordo?",
"SupportPolicyFaqTitle": "Qual é sua política de apoio?",
- "SupportPolicyFaqExplanation": "Nós apoiamos apenas a versão ativa e a versão principal anterior. Não garantimos o lançamento de um patch para a 3ª e mais antigas versões principais. Por exemplo, se a versão ativa for a 7.0.0, lançaremos correções tanto para a 6.x.x como para a 7.x.x.x. Além disso, fornecemos suporte somente para questões relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte é dado para as aplicações de terceiros, serviços de nuvem e outras bibliotecas periféricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoáveis para fornecer suporte técnico a nossos clientes durante o horário comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, não nos comprometemos com um acordo de nível de serviço (SLA) de tempo de resposta, mas tentaremos responder às questões técnicas o mais rápido possível dentro de nosso horário oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://support.abp.io. Também temos suporte privado por e-mail, que só está disponível para os detentores de licenças empresariais.",
+ "SupportPolicyFaqExplanation": "Nós apoiamos apenas a versão ativa e a versão principal anterior. Não garantimos o lançamento de um patch para a 3ª e mais antigas versões principais. Por exemplo, se a versão ativa for a 7.0.0, lançaremos correções tanto para a 6.x.x como para a 7.x.x.x. Além disso, fornecemos suporte somente para questões relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte é dado para as aplicações de terceiros, serviços de nuvem e outras bibliotecas periféricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoáveis para fornecer suporte técnico a nossos clientes durante o horário comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, não nos comprometemos com um acordo de nível de serviço (SLA) de tempo de resposta, mas tentaremos responder às questões técnicas o mais rápido possível dentro de nosso horário oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://abp.io/support/questions. Também temos suporte privado por e-mail, que só está disponível para os detentores de licenças empresariais.",
"DowngradeLicensePlan": "Posso baixar para um plano de licença mais baixo no futuro?",
"DowngradeLicensePlanExplanation": "Você não pode rebaixar seu plano de licença existente. Mas você pode adquirir um novo plano de licença inferior e continuar seu desenvolvimento com a nova licença. Após adquirir uma licença inferior, você só precisa fazer o login em seu novo plano de licença via comando ABP CLI: abp login -o `.",
"LicenseTransfer": "Uma licença pode ser transferida de um desenvolvedor para outro?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
index 6bb638c703..b2693311a2 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Utilizați licența de probă și licența de probă va expira pe {0}.",
"TryForFree": "Încearcă pe gratis",
"TrialLicenseExpiredInfo": "Perioada de licență de probă a expirat!",
- "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .",
+ "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .",
"BlackFridayDiscount": "Black Friday Discount",
"MultipleOrganizationInfo": "Vedeți toate organizațiile dvs",
"PaymentFailedInfo": "Ne pare rău, plata nu a reușit! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json
index 0842b8ee55..ee34099ccb 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json
@@ -721,7 +721,7 @@
"Landing_Page_DocsModuleDescription_9": "В дополнение к исходному коду GitHub позволяет просто использовать папку в качестве источника документации.",
"Landing_Page_FileManagementModuleDescription_1": "Загружайте, скачивайте и упорядочивайте файлы в иерархической структуре папок.",
"Landing_Page_FileManagementModuleDescription_2": "Этот модуль используется для загрузки, скачивания и организации файлов в иерархической структуре папок. ",
- "Landing_Page_FileManagementModuleDescription_3": "Этот модуль основан на Хранение BLOB-объектов система, поэтому она может использовать разных поставщиков хранилища для хранения содержимого файла.",
+ "Landing_Page_FileManagementModuleDescription_3": "Этот модуль основан на Хранение BLOB-объектов система, поэтому она может использовать разных поставщиков хранилища для хранения содержимого файла.",
"Landing_Page_IdentityModuleDescription_1": "Этот модуль реализует систему пользователей и ролей приложения;",
"Landing_Page_IdentityModuleDescription_2": "Построен на Базовая идентичность Microsoft ASP.NET библиотека.",
"Landing_Page_IdentityModuleDescription_3": "Управлять роли и пользователи в системе. несколько ролей.",
@@ -737,7 +737,7 @@
"Landing_Page_PaymentModuleDescription_1": "Обеспечивает интеграцию с различными платежными шлюзами.",
"Landing_Page_PaymentModuleDescription_2": "Этот модуль обеспечивает интеграцию платежных шлюзов, поэтому вы можете легко получать платежи от своих клиентов.",
"Landing_Page_PaymentModuleDescription_3": "Этот модуль поддерживает следующие платежные шлюзы",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "Используйте одни и те же учетные данные для обоих Commercial.abp.io и support.abp.io.",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "Используйте одни и те же учетные данные для обоих Commercial.abp.io и support.abp.io.",
"WatchCrudPagesVideo": "Посмотрите видео «Создание CRUD-страниц с помощью ABP Suite»!",
"WatchGeneratingFromDatabaseVideo": "Посмотрите видео «Пакет ABP: создание страниц CRUD из существующих таблиц базы данных»!",
"WatchTakeCloserLookVideo": "Посмотрите видео «Подробнее о генерации кода: ABP Suite»!",
@@ -887,8 +887,8 @@
"DevelopYourSolution_Description1": "Инфраструктура ABP позволяет вам сосредоточьтесь на своем собственном бизнес-коде путем автоматизации повторяющейся работы и предоставления предварительно созданной инфраструктуры и приложений. функции.",
"DevelopYourSolution_Description2": "В следующем блоке кода вы можете увидеть, как ABP Framework легко интегрируется в ваш код и автоматизирует повторяющиеся задачи.",
"DevelopYourSolution_Description3": "Даже в этом блоке шорткода ABP многое делает за вас.",
- "DevelopYourSolution_Description4": "Он предоставляет базовые классы для применения соглашений, например \n внедрение зависимости. \n репозиторий услуги обеспечивают удобный\n \n авторизация работает с тонко настроенной системой разрешений.",
- "DevelopYourSolution_Description5": "ABP полностью автоматизирует \n единица работы (для подключения к базе данных и управления транзакциями), \n Обработка исключений, \n Проверка\n и журнал аудита. ",
+ "DevelopYourSolution_Description4": "Он предоставляет базовые классы для применения соглашений, например \n внедрение зависимости. \n репозиторий услуги обеспечивают удобный\n \n авторизация работает с тонко настроенной системой разрешений.",
+ "DevelopYourSolution_Description5": "ABP полностью автоматизирует \n единица работы (для подключения к базе данных и управления транзакциями), \n Обработка исключений, \n Проверка\n и журнал аудита. ",
"DevelopYourSolution_Description6": "Вы можете себе представить, насколько длинным и сложным может быть этот блок кода, если вы будете делать все это вручную.",
"SuiteCrudGenerationInFewSeconds": "Помимо ручного написания кода вашего решения, вы можете за несколько минут создать полностью работающие расширенные страницы CRUD, используя инструменты ABP Suite. ",
"DeployAnywhere_Description1": "В конце концов у вас есть чистое решение .NET. ",
@@ -1002,7 +1002,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "Как вы интегрируетесь со сторонними библиотеками и системами?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "Как настроить автоматические тесты?",
"ABPSOLUTION": "РЕШЕНИЕ ABP",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP предоставляет хорошо спроектированную, многоуровневую и готовую к использованию решение для запуска на основе Проектирование, ориентированное на предметную область принципы. тест проекты для каждого слоя.",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP предоставляет хорошо спроектированную, многоуровневую и готовую к использованию решение для запуска на основе Проектирование, ориентированное на предметную область принципы. тест проекты для каждого слоя.",
"CommonLibraries": "Общие библиотеки",
"CommonLibraries_THEPROBLEM_Description": "Какие библиотеки следует использовать для реализации общих требований? ",
"CommonLibraries_ABPSOLUTION_Description": "ABP предварительно интегрирует в решение популярные, проверенные и актуальные библиотеки. ",
@@ -1020,7 +1020,7 @@
"KeepingYourSolutionUpToDate": "Поддержание вашего решения в актуальном состоянии",
"KeepingYourSolutionUpToDate_THEPROBLEM_Description": "После начала разработки вы должны отслеживать новые версии библиотек, которые вы используете для обновлений.",
"KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Мы регулярно обновляем все пакеты до последних версий и тестируем их перед выпуском стабильной версии. ",
- "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Обновление ABP интерфейс командной строки Команда автоматически обнаруживает и обновляет все зависящие от ABP пакеты NuGet и NPM в решении. ",
+ "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Обновление ABP интерфейс командной строки Команда автоматически обнаруживает и обновляет все зависящие от ABP пакеты NuGet и NPM в решении. ",
"DRY": "Не повторяйтесь!",
"DRY_Description": "Создание базового решения занимает значительное время и требует хорошего архитектурного опыта. ",
"DRY_Description2": "ABP максимально автоматизирует и упрощает повторяющийся код, следуя принципу соглашения, а не конфигурации. ",
@@ -1061,12 +1061,12 @@
"Modularity_THEPROBLEM_Description": "Построить по-настоящему модульную систему непросто! ",
"Modularity_ABPSOLUTION_Description": "ABP Framework представляет собой модульную структуру разработки приложений. ",
"SaaSMultiTenancy": "SaaS/мультиарендность",
- "SaaSMultiTenancy_THEPROBLEM_Description": "Мульти аренды — распространенный способ внедрения систем SaaS. ",
+ "SaaSMultiTenancy_THEPROBLEM_Description": "Мульти аренды — распространенный способ внедрения систем SaaS. ",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework предоставляет полную мультитенантную инфраструктуру и абстрагирует сложность вашего бизнес-кода. ",
"Microservices": "Микросервисы",
"Microservices_THEPROBLEM_Description": "Для создания системы микросервисов требуется множество деталей инфраструктуры: аутентификация и авторизация приложений и микросервисов, а также реализация шаблонов асинхронного обмена сообщениями и синхронного обмена сообщениями (Rest/GRPC) между микросервисами являются наиболее фундаментальными проблемами.",
- "Microservices_ABPSOLUTION_Description": "ABP Framework предоставляет услуги, гидыи примеры, которые помогут вам реализовать микросервисное решение с помощью стандартных отраслевых инструментов.",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial делает еще один шаг вперед и предоставляет полный шаблон запуска для запуска вашего микросервисного решения.",
+ "Microservices_ABPSOLUTION_Description": "ABP Framework предоставляет услуги, гидыи примеры, которые помогут вам реализовать микросервисное решение с помощью стандартных отраслевых инструментов.",
+ "Microservices_ABPSOLUTION_Description2": "ABP делает еще один шаг вперед и предоставляет полный шаблон запуска для запуска вашего микросервисного решения.",
"PreBuiltModules": "Готовые модули",
"PreBuiltModules_THEPROBLEM_Description": "У всех нас схожие, но немного разные бизнес-требования. ",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial модули предоставляет множество повторно используемых модулей приложений, таких как оплата, чат, управление файлами, отчеты журнала аудита и т. д. Все эти модули легко устанавливаются в ваше решение и работают напрямую. ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
index 26f1c79704..f06bc507c7 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
@@ -382,13 +382,13 @@
"TrialLicenseExpireMessage": "Používate skúšobnú licenciu a platnosť vašej skúšobnej licencie vyprší {0}.",
"TryForFree": "Skúste zadarmo",
"TrialLicenseExpiredInfo": "Vaše skúšobné licenčné obdobie vypršalo!",
- "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
+ "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.",
"discountForYears": "{0} % odpusteného prívesku {1} an(ov)",
"BlackFridayDiscount": "Black Friday zľava",
"OnboardingTrainingFaqTitle": "Máte školenie ABP onboarding?",
"OnboardingTrainingFaqExplanation": "Áno, máme školiace služby ABP, ktoré vám pomôžu rýchlo spustiť váš projekt ABP. Dozviete sa o ABP od hlavného člena tímu ABP a získate zručnosti na začatie vášho projektu ABP. Na onboardingovom školení vám vysvetlíme, ako nastaviť vaše vývojové prostredie, nainštalovať požadované nástroje, vytvoriť plne funkčnú stránku CRUD. Školenie bude prebiehať naživo a bude sa používať aplikácia Zoom a sme otvorení využívaniu ďalších platforiem online stretnutí. Jazykom školenia bude angličtina. Svoje otázky o ABP môžete klásť aj počas sedení. Pre obe strany bude naplánovaný vhodný čas a dátum. Ak chcete získať ďalšie informácie, kontaktujte nás na adrese info@abp.io.",
"SupportPolicyFaqTitle": "Aká je vaša politika podpory?",
- "SupportPolicyFaqExplanation": "Podporujeme iba aktívnu a predchádzajúcu hlavnú verziu. Nezaručujeme vydanie opravy pre 3. a staršiu hlavnú verziu. Napríklad, ak je aktívna verzia 7.0.0, vydáme opravné verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problémy súvisiace s ABP Framework a ABP Commercial. To znamená, že neposkytujeme podporu pre aplikácie tretích strán, cloudové služby a iné periférne knižnice používané produktmi ABP. Vynaložíme komerčne primerané úsilie, aby sme našim zákazníkom poskytli technickú podporu počas oficiálnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezaväzujeme k času odozvy podľa dohody o úrovni služieb (SLA), ale budeme sa snažiť reagovať na technické problémy čo najrýchlejšie v rámci našej oficiálnej pracovnej doby. Ak sa so zákazníkom nedohodnete inak, poskytujeme podporu len na adrese https://support.abp.io. Máme aj súkromnú e-mailovú podporu, ktorá je k dispozícii len držiteľom licencie Enterprise.",
+ "SupportPolicyFaqExplanation": "Podporujeme iba aktívnu a predchádzajúcu hlavnú verziu. Nezaručujeme vydanie opravy pre 3. a staršiu hlavnú verziu. Napríklad, ak je aktívna verzia 7.0.0, vydáme opravné verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problémy súvisiace s ABP Framework a ABP Commercial. To znamená, že neposkytujeme podporu pre aplikácie tretích strán, cloudové služby a iné periférne knižnice používané produktmi ABP. Vynaložíme komerčne primerané úsilie, aby sme našim zákazníkom poskytli technickú podporu počas oficiálnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezaväzujeme k času odozvy podľa dohody o úrovni služieb (SLA), ale budeme sa snažiť reagovať na technické problémy čo najrýchlejšie v rámci našej oficiálnej pracovnej doby. Ak sa so zákazníkom nedohodnete inak, poskytujeme podporu len na adrese https://abp.io/support/questions. Máme aj súkromnú e-mailovú podporu, ktorá je k dispozícii len držiteľom licencie Enterprise.",
"DowngradeLicensePlan": "Môžem v budúcnosti prejsť na nižší licenčný plán?",
"DowngradeLicensePlanExplanation": "Existujúci licenčný plán nemôžete znížiť. Môžete si však zakúpiť nový nižší licenčný plán a pokračovať vo vývoji s novou licenciou. Po zakúpení nižšej licencie sa stačí prihlásiť do nového licenčného plánu prostredníctvom príkazu ABP CLI: abp login -o `.",
"LicenseTransfer": "Môže sa licencia preniesť z jedného vývojára na druhého?",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
index 0d25e94113..b7a5724528 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
@@ -355,7 +355,7 @@
"FreeDDDEBook": "Brezplačna e-knjiga DDD",
"StartFree": "Začnite brezplačno",
"FreeTrial": "Brezplačen preizkus",
- "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinška sporočila ABP Commercial.",
+ "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinška sporočila ABP.",
"PurposeOfUsage": "Namen uporabe",
"Industry": "Industrija",
"Choose": "-Izberi -",
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Uporabljate preizkusno licenco in vaša preizkusna licenca bo potekla {0}.",
"TryForFree": "Poskusite brezplačno",
"TrialLicenseExpiredInfo": "Vaša preizkusna licenca je potekla!",
- "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .",
+ "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .",
"BlackFridayDiscount": "Popust Black Friday",
"MultipleOrganizationInfo": "Oglejte si vse svoje organizacije",
"PaymentFailedInfo": "Žal plačilo ni uspelo! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
index 9282239bee..4366f26e8f 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
@@ -547,7 +547,7 @@
"Pricing_Page_Testimonial_2": "Özel geliştirme projelerinin ek yükünü azaltmak için ABP Commercial kullanmanın değerini görüyoruz. Ekip, farklı proje akışlarında kod modelini birleştirebiliyor. Yeni özellikleri eskisinden daha hızlı oluşturabilmemiz için Frameworkte daha fazla potansiyel görüyoruz. ABP Commercial'dan yararlanmanın değerini sürekli olarak göreceğimize inanıyoruz.",
"Pricing_Page_Testimonial_3": "ABP'yi seviyoruz. Her şeyi sıfırdan yazmak zorunda kalmıyoruz. Kullanıma hazır özellikler ile başlıyoruz ve sadece gerçekten yazmamız gerekenlere odaklanıyoruz. Ayrıca, ABP iyi tasarlanmış, daha az kod ve düşük hata ile yüksek kalitede. İhtiyaç duyduğumuz her şeyi kendi başımıza yazmak zorunda kalsaydık, yıllarımızı harcamak zorunda kalabilirdik. Hoşumuza giden bir diğer şey de yeni sürümün, sorun düzeltmenin ya da iyileştirmenin iki haftada bir çıkması. Çok uzun süre beklemiyoruz.",
"Pricing_Page_Testimonial_4": "ABP Commercial harika bir ürün, tavsiye ederim. Müşterilerimiz için ticari ürünleri tek bir yapılandırılabilir platformda pazara sunuyor. Framework ve araçların herhangi bir ekibe sağladığı hızlı başlangıç her kuruşa değer. ABP Commercial ihtiyaçlarımız için en uygun üründü.",
- "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje geliştirme/yönetme rehberi, çünkü DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ün kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmış docs.abp.io ile kendinizi geliştirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok şey önceden hazır olduğu için proje geliştirme süresini önemli ölçüde kısaltıyor (Giriş sayfası, istisna işleme, veri filtreleme, tohumlama, denetim günlüğü, yerelleştirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolü için Local Event Bus kullandım. Böylece stok işleyicisi yazarak sipariş hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.",
+ "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje geliştirme/yönetme rehberi, çünkü DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ün kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmış abp.io/docs ile kendinizi geliştirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok şey önceden hazır olduğu için proje geliştirme süresini önemli ölçüde kısaltıyor (Giriş sayfası, istisna işleme, veri filtreleme, tohumlama, denetim günlüğü, yerelleştirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolü için Local Event Bus kullandım. Böylece stok işleyicisi yazarak sipariş hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.",
"Pricing_Page_Testimonial_6": "ABP Framework iyi bir framework ancak kullandığı farklı katmanları, sınıfları ve kütüphaneleri (özellikle ABP) anlamak için zaman gerekiyor. Kod tabanını okumak için çok zaman harcadım, ancak ABP Commercial, proje özel entitylerini (AR) ve her birine bağlı depoyu oluşturmak için bize zaman kazandırdı. ABP'de kullanılan yaklaşımın çok olgun olmasını da beğendim, DDD ve monolith'e dayandığını biliyoruz.",
"Pricing_Page_Testimonial_7": "Bir başlangıç olarak hızlı bir şekilde yineleme yapmamız ve temel olmayan özellikler için minimum zaman harcamamız gerekiyor.\nMühendislerimiz son derece deneyimli mühendislerden genç mühendislere kadar çeşitlilik gösteriyor, ortak bir anlayışa ve teknik ve alan bilgisini paylaşmanın bir yoluna ihtiyacımız vardı, ABP harika kılavuzları ve belgeleri sayesinde bunu yapmamızı sağladı. \nABP ile kutudan çıkar çıkmaz çalıştıkları için endişelenmemize gerek kalmayan şeyler var. \nABP, hızlı prototip oluşturma ve geliştirmeyi kolaylaştırmamıza yardımcı oldu, özelliğin başlangıcından üretime kadar 4 haftadan kısa bir süre geçti. Lisansa dahil olan tüm premium özellikleriyle ABP, Yazılım Mühendisliği tarafında bize \"Startup in a Box\" sağladı.",
"Pricing_Page_Testimonial_8": "ABP Commercial'i müşterilerine sunulan ürün yelpazesini genişletmek isteyen herkese tavsiye ederim. Dağıtılmış bir kurumsal ortamı kullanmanız gerektiğinde (Angular, WPF, Win&Linux), harika bir seçenek. Ürünlerinin yanı sıra, işlerimizi daha hızlı ve kolay hale getiren desteklerini de seviyoruz. Şimdiden gelecekte işimizi genişletmemizde bize destek olacak harika bir ortağı bulduğumuzu biliyoruz.",
@@ -726,7 +726,7 @@
"Landing_Page_DocsModuleDescription_9": "GitHub kaynağına ek olarak, dokümantasyon kaynağı olarak bir klasörün kullanılmasına izin verir.",
"Landing_Page_FileManagementModuleDescription_1": "Dosyaları hiyerarşik bir klasör yapısı içinde yükleyin, indirin ve düzenleyin.",
"Landing_Page_FileManagementModuleDescription_2": "Bu modül, dosyaları hiyerarşik bir klasör yapısında yüklemek, indirmek ve düzenlemek için kullanılır. Ayrıca multi-tenancy uyumludur ve tenancy için toplam boyut sınırını belirleyebilirsiniz.",
- "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.",
+ "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.",
"Landing_Page_IdentityModuleDescription_1": "Bu modül bir uygulamanın Kullanıcı ve Rol sistemini uygular;",
"Landing_Page_IdentityModuleDescription_2": "Microsoft'un ASP.NET Core Identity kütüphanesi üzerine inşa edilmiştir.",
"Landing_Page_IdentityModuleDescription_3": "Sistemdeki rolleri ve kullanıcıları yönetin. Bir kullanıcının birden çok role sahip olmasına izin verilir.",
@@ -806,9 +806,9 @@
"SeeLeptonDocumentation": "Lepton Dokümantasyonuna Bakın",
"GetLepton": "Lepton'u Şimdi Alın",
"WhyUseAbpIoPlatform": "Sıfırdan yeni bir proje oluşturmak yerine neden ABP.IO Platformunu kullanmalıyım?",
- "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her şeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.",
+ "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her şeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.",
"SupportPolicyFaqTitle": "Destek politikanız nedir?",
- "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sürümü destekliyoruz. Üçüncü ve daha eski ana sürümler için bir yama sürümünü garanti etmiyoruz. Örneğin, etkin sürüm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sürümleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ürünleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kütüphaneler için destek verilmediği anlamına gelir. Müşterilerimize \"Volosoft Bilişim A.Ş\"nin resmi çalışma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaşması (SLA) yanıt süresi taahhüt etmiyoruz, ancak teknik sorunlara resmi çalışma saatlerimiz içinde mümkün olduğunca çabuk yanıt vermeye çalışacağız. Müşteri ile özel bir anlaşma yapılmadığı sürece, yalnızca https://support.abp.io adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.",
+ "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sürümü destekliyoruz. Üçüncü ve daha eski ana sürümler için bir yama sürümünü garanti etmiyoruz. Örneğin, etkin sürüm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sürümleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ürünleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kütüphaneler için destek verilmediği anlamına gelir. Müşterilerimize \"Volosoft Bilişim A.Ş\"nin resmi çalışma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaşması (SLA) yanıt süresi taahhüt etmiyoruz, ancak teknik sorunlara resmi çalışma saatlerimiz içinde mümkün olduğunca çabuk yanıt vermeye çalışacağız. Müşteri ile özel bir anlaşma yapılmadığı sürece, yalnızca https://abp.io/support/questions adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.",
"ExtraQuestionCreditsFaqTitle": "Ekstra destek soru kredisi satın alabilir miyim?",
"ExtraQuestionCreditsFaqExplanation": "Evet, alabilirsiniz. Ekstra soru kredisi satın almak için info@abp.io adresine kuruluşunuzun e-posta adresini içeren bir e-posta gönderin. Ekstra soru kredileri için fiyat listesi şöyle: - 50 soru paketi $999
- 25 soru paketi $625
- 15 soru paketi $450
",
"BlazoriseLicense": "Blazorise lisansı satın almamız gerekiyor mu?",
@@ -880,7 +880,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "3. taraf kütüphaneleri nasıl entegre edersiniz?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "Otomatik testler nasıl kurulur?",
"ABPSOLUTION": "ABP PROJESİ",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmış, katmanlı ve üretim için hazır bir başlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmış birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmış, katmanlı ve üretim için hazır bir başlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmış birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ",
"CommonLibraries": "Ortak Kütüphaneler",
"CommonLibraries_THEPROBLEM_Description": "Ortak gereksinimleri uygulayabilmek için hangi kütüphaneleri kullanmalısınız? Yazılım geliştirme ekosistemi son derece dinamik olduğundan, en son araçları, kütüphaneleri, trendleri ve yaklaşımları takip etmek zorlayıcı olabilir.",
"CommonLibraries_ABPSOLUTION_Description": "ABP, popüler, olgun ve güncel kütüphaneleri projeye önceden entegre eder. Bunları entegre etme veya birbirleriyle iletişim kurma konusunda zaman harcamanıza gerek yoktur. Kütüphaneler kutudan çıkar çıkmaz düzgün bir şekilde çalışırlar.",
@@ -898,7 +898,7 @@
"KeepingYourSolutionUpToDate": "Projenizi Güncel Tutma",
"KeepingYourSolutionUpToDate_THEPROBLEM_Description": "Geliştirmeye başladıktan sonra, kullanılan kütüphanelerin yeni sürümlerini güncellemeler ve yamalar için takip etmelisiniz.",
"KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Düzenli olarak tüm paketleri en son sürümlere güncelliyor ve bunları kararlı sürüm öncesinde test ediyoruz. ABP Framework'ü güncellediğinizde, tüm bağımlılıkları en güncel teknolojiye yükseltilir.",
- "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tüm ABP bağımlı NuGet ve NPM paketlerini keşfeder ve günceller. ABP ile en son sürümlerde kalmak daha kolaydır.",
+ "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tüm ABP bağımlı NuGet ve NPM paketlerini keşfeder ve günceller. ABP ile en son sürümlerde kalmak daha kolaydır.",
"DRY": "Kendini Tekrar Etme!",
"DRY_Description": "Temel bir proje oluşturmak önemli zaman alır ve iyi bir mimari deneyimi gerektirir. Ancak bu sadece başlangıçtır! Geliştirmeye başladıkça, muhtemelen birçok tekrarlayan kod yazmanız gerekecektir; eğer tüm bunlar otomatik olarak işlenebilseydi harika olurdu.",
"DRY_Description2": "ABP, konvansiyon üzerinde konfigürasyon prensibini takip ederek tekrarlayan kodları mümkün olduğunca otomatikleştirir ve basitleştirir. Ancak manuel moda geçmeniz gerektiğinde sizi sınırlamaz. Kontrol her zaman sizin elinizdedir.",
@@ -938,12 +938,12 @@
"Modularity_THEPROBLEM_Description": "Gerçekten modüler bir sistem oluşturmak kolay değildir! Sistemin tüm yönleri (veritabanı, varlıklar, API'lar, UI sayfaları/bileşenleri) modüllere ayrılabilir ve her modül, diğerleri olmadan tekrar kullanılabilir. ASP.NET Core, böyle bir modüler mimari sunmaz. Bunu istiyorsanız, sıfırdan düşünmeniz gerekebilir.",
"Modularity_ABPSOLUTION_Description": "ABP Framework, modüler bir uygulama geliştirme yapısı olmak üzere doğmuştur. Frameworkteki her özellik, modülerlikle uyumlu olacak şekilde geliştirilmiştir. Belgeler ve rehberler, nasıl standart bir şekilde yeniden kullanılabilir modüller geliştireceğinizi açıklar.",
"SaaSMultiTenancy": "SaaS / Multi Tenancy",
- "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaşık hale gelebilir.",
+ "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaşık hale gelebilir.",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework, eksiksiz bir multi tenancy altyapı sağlar ve işletme kodunuzdan karmaşıklığı soyutlar. Uygulama kodunuzun çoğu multi-tenancy duyarlı olacaktır, ancak ABP Framework otomatik olarak veritabanını, önbelleği ve diğer tenancy ayrıntılarını birbirinden izole eder. Tek bir veritabanını, her tenancy için bir veritabanını ve karma yaklaşımları destekler. Normalde multi-tenancy uyumlu olmayan Microsoft Identity ve OpenIddict gibi kütüphaneleri uygun şekilde yapılandırır.",
"Microservices": "Mikroservisler",
"Microservices_THEPROBLEM_Description": "Bir mikroservis sistemi oluşturmak birçok altyapı ayrıntısı gerektirir: Uygulamaların ve mikroservislerin doğrulanması, yetkilendirilmesi ve mikroservisler arasında eşzamansız mesajlaşma ve eşzamanlı (Dinlenme/GRPC) iletişim kalıplarının uygulanması en temel konulardır.",
- "Microservices_ABPSOLUTION_Description": "ABP Framework, endüstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi başlatmak için tam bir başlangıç şablonu sağlar.",
+ "Microservices_ABPSOLUTION_Description": "ABP Framework, endüstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.",
+ "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi başlatmak için tam bir başlangıç şablonu sağlar.",
"PreBuiltModules": "Önceden Oluşturulmuş Modüller",
"PreBuiltModules_THEPROBLEM_Description": "Hepimizin benzer ancak biraz farklı iş gereksinimleri var. Ancak hiç kimsenin kodu doğrudan projenizde çalışamadığından dolayı tekerleği yeniden icat etmeliyiz. Hepsi daha büyük bir projenin gömülü parçalarıdır.",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modülleri ödeme, sohbet, dosya yönetimi, denetim günlüğü raporlama vb. gibi birçok yeniden kullanılabilir uygulama modülü sağlar. Bu modüllerin hepsi projenize kolayca yüklenir ve doğrudan çalışır. Sürekli olarak daha fazla modül ekliyoruz.",
@@ -976,8 +976,8 @@
"DevelopYourSolution_Description1": "ABP'nin altyapısı, tekrarlayan işleri otomatikleştirerek ve önceden yapılandırılmış altyapı ve uygulama özellikleri sağlayarak, kendi iş kodunuza odaklanmanızı sağlar.",
"DevelopYourSolution_Description2": "Aşağıdaki kod bloğunda, ABP Framework'ünün kodunuza sorunsuz entegre olduğunu ve tekrarlayan görevleri sizin için otomatikleştirdiğini görebilirsiniz.",
"DevelopYourSolution_Description3": "Bu kısa kod bloğunda bile, ABP sizin için birçok şey yapar.",
- "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileşimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.",
- "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve işlem yönetimi için), \n istisna işleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleştirir. Günlük geliştirme görevlerinizi basitleştirmek ve üretim için hazır \n uygulamalar oluştururken kendi kodunuza odaklanmanızı sağlamak için birçok başka yapı taşı sağlar.",
+ "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileşimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.",
+ "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve işlem yönetimi için), \n istisna işleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleştirir. Günlük geliştirme görevlerinizi basitleştirmek ve üretim için hazır \n uygulamalar oluştururken kendi kodunuza odaklanmanızı sağlamak için birçok başka yapı taşı sağlar.",
"DevelopYourSolution_Description6": "Eğer bunu tamamen manuel olarak yapacaksanız, bu kod bloğunun ne kadar uzun ve karmaşık olabileceğini düşünebilirsiniz.",
"SuiteCrudGenerationInFewSeconds": "Projenizin el ile kodlamaya ek olarak, ABP Suite araçları kullanarak birkaç dakika içinde tamamen çalışan gelişmiş CRUD sayfaları oluşturabilirsiniz. Kodu projenize üretir, böylece özel gereksinimlerinize göre ayarlayabilirsiniz.",
"DeployAnywhere_Description1": "Günün sonunda, saf bir .NET projeniz var. Projenizi kendi sunucunuza, bir bulut platformuna, Kubernetes'e veya istediğiniz herhangi bir yere dağıtabilirsiniz. İstediğiniz kadar sunucuya dağıtabilirsiniz. ABP, dağıtım ortamı bağımsız bir araçtır.",
@@ -1085,8 +1085,8 @@
"SendBetaRequest": "Beta Talebi Gönder",
"YouJoinedTheBetaTesterProgram": "ABP Studio beta test programına katıldınız.",
"Releases": "Sürüm Notları",
- "ReleasesDescription": "Bu sayfa, her bir sürümle ilgili detaylı bilgileri içerir. Belirli bir sürüm için kapatılan tüm pull requestleri görebilirsiniz. Genel milestone gelişmeleri için özet sürüm notları sayfasını kontrol edebilirsiniz.",
- "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluş yönetim sayfanızdan bu özelliği etkinleştirebilirsiniz. Otomatik yenileme, kuruluş yönetim sayfanızın 'Ödeme Yöntemi' bölümünde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluş yönetim sayfasına gidin, 'Ödeme Yöntemi' bölümüne gidin ve 'Otomatik Yenileme' onay kutusundaki işareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.",
+ "ReleasesDescription": "Bu sayfa, her bir sürümle ilgili detaylı bilgileri içerir. Belirli bir sürüm için kapatılan tüm pull requestleri görebilirsiniz. Genel milestone gelişmeleri için özet sürüm notları sayfasını kontrol edebilirsiniz.",
+ "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluş yönetim sayfanızdan bu özelliği etkinleştirebilirsiniz. Otomatik yenileme, kuruluş yönetim sayfanızın 'Ödeme Yöntemi' bölümünde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluş yönetim sayfasına gidin, 'Ödeme Yöntemi' bölümüne gidin ve 'Otomatik Yenileme' onay kutusundaki işareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.",
"CreditCards": "Kredi Kartları",
"BillingInformation": "Ödeme Bilgileri",
"MyOrganizations_LearnMorePlan": "Fiyatlandırma sayfasında planlar hakkında daha fazla bilgi edinin",
@@ -1135,11 +1135,11 @@
"Purchase_Save": "{0}% İndirim {1}",
"Total": "Toplam",
"MultipleYearDiscount": "Çoklu Yıl İndirimi",
- "TrainingDescription": "ABP Framework ve ABP Commercial konusunda uzmanlık kazanmak isteyenler için aşağıdaki eğitim paketlerini sunuyoruz.",
+ "TrainingDescription": "ABP Framework konusunda uzmanlık kazanmak isteyenler için aşağıdaki eğitim paketlerini sunuyoruz.",
"PurchaseDevelopers": "geliştirici",
"RemoveBasket": "Sepetten kaldır",
"TrainingPack": "Eğitim paketi",
"TrainingPackDiscount": "Eğitim paketi indirimi",
- "LinkExpiredMessage": "Ödeme bağlantısının süresi doldu! Bağlantıyı güncellemek için sales@volosoft.com adresinden bizimle iletişime geçin veya iletişim sayfasına gitmek için buraya tıklayın."
+ "LinkExpiredMessage": "Ödeme bağlantısının süresi doldu! Bağlantıyı güncellemek için sales@volosoft.com adresinden bizimle iletişime geçin veya iletişim sayfasına gitmek için buraya tıklayın."
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
index 6834f26f24..ee588cba8f 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
@@ -382,7 +382,7 @@
"TrialLicenseExpireMessage": "Bạn đang sử dụng giấy phép dùng thử và giấy phép dùng thử của bạn sẽ hết hạn vào {0}.",
"TryForFree": "Thử miễn phí",
"TrialLicenseExpiredInfo": "Thời gian cấp phép dùng thử của bạn đã hết hạn!",
- "CommercialNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & điều kiện và Chính sách quyền riêng tư .",
+ "CommercialNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & điều kiện và Chính sách quyền riêng tư .",
"BlackFridayDiscount": "Giảm giá Black Friday",
"MultipleOrganizationInfo": "Xem tất cả các tổ chức của bạn",
"PaymentFailedInfo": "Rất tiếc, thanh toán không thành công! ",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
index 57caf8322d..afb9a428e9 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
@@ -720,7 +720,7 @@
"Landing_Page_DocsModuleDescription_9": "除了 GitHub 源代码外,还允许使用文件夹作为文档源代码。",
"Landing_Page_FileManagementModuleDescription_1": "以分层文件夹结构上传、下载和整理文件。",
"Landing_Page_FileManagementModuleDescription_2": "该模块用于上传、下载和以分层文件夹结构组织文件。它还与多租户兼容,你可以确定租户的总大小限制。",
- "Landing_Page_FileManagementModuleDescription_3": "该模块基于 BLOB 存储系统,因此可以使用不同的存储提供商来存储文件内容。",
+ "Landing_Page_FileManagementModuleDescription_3": "该模块基于 BLOB 存储系统,因此可以使用不同的存储提供商来存储文件内容。",
"Landing_Page_IdentityModuleDescription_1": "该模块实现了应用程序的用户和角色系统;",
"Landing_Page_IdentityModuleDescription_2": "基于 Microsoft 的 ASP.NET Core Identity 库构建。",
"Landing_Page_IdentityModuleDescription_3": "管理系统中的角色和用户。允许一个用户拥有多个角色。",
@@ -736,7 +736,7 @@
"Landing_Page_PaymentModuleDescription_1": "提供不同支付网关的集成。",
"Landing_Page_PaymentModuleDescription_2": "该模块集成了支付网关,因此您可以轻松从客户处获得付款。",
"Landing_Page_PaymentModuleDescription_3": "该模块支持以下支付网关",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "在 commercial.abp.io 和 support.abp.io 中使用相同的凭据。",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "在 commercial.abp.io 和 support.abp.io 中使用相同的凭据。",
"WatchCrudPagesVideo": "观看 \"使用 ABP Suite 创建 CRUD 页面 \"视频!",
"WatchGeneratingFromDatabaseVideo": "观看 \"ABP Suite:从现有数据库表生成 CRUD 页面 \"视频!",
"WatchTakeCloserLookVideo": "观看 \"近距离了解代码生成:ABP Suite \"视频!",
@@ -886,8 +886,8 @@
"DevelopYourSolution_Description1": "ABP 的基础架构可自动执行重复性工作,并提供预构建的基础架构和应用程序 功能,从而使您专注于自己的业务代码。",
"DevelopYourSolution_Description2": "在下面的代码块中,您可以看到 ABP 框架是如何无缝集成到您的代码中并自动执行重复性任务的。",
"DevelopYourSolution_Description3": "即使在这个简码块中,ABP 也能为您做很多事情。",
- "DevelopYourSolution_Description4": "它提供了应用约定的基类,如\n 依赖注入。通用类\n 资源库服务提供了一种方便的\n 与数据库交互的便捷方法。声明式\n 授权与经过微调的权限系统配合使用。",
- "DevelopYourSolution_Description5": "ABP 完全自动化\n 工作单元(用于数据库连接和事务管理)、\n 异常处理、\n 验证。\n 以及 审计日志。它提供了更多的构建模块,可简化您的日常开发任务,并在创建生产就绪应用程序的同时专注于您自己的代码。\n 应用程序。",
+ "DevelopYourSolution_Description4": "它提供了应用约定的基类,如\n 依赖注入。通用类\n 资源库服务提供了一种方便的\n 与数据库交互的便捷方法。声明式\n 授权与经过微调的权限系统配合使用。",
+ "DevelopYourSolution_Description5": "ABP 完全自动化\n 工作单元(用于数据库连接和事务管理)、\n 异常处理、\n 验证。\n 以及 审计日志。它提供了更多的构建模块,可简化您的日常开发任务,并在创建生产就绪应用程序的同时专注于您自己的代码。\n 应用程序。",
"DevelopYourSolution_Description6": "可以想象,如果全部由人工完成,代码块会有多么冗长和复杂。",
"SuiteCrudGenerationInFewSeconds": "除了手工编码解决方案外,您还可以使用 ABP Suite 工具在几分钟内创建可全面运行的高级 CRUD 页面。它可将代码生成到您的解决方案中,因此您可以根据您的自定义需求对其进行微调。",
"DeployAnywhere_Description1": "最后,您将拥有一个纯粹的 .NET 解决方案。您可以将解决方案部署到自己的服务器、云平台、Kubernetes 或任何您想部署的地方。您可以部署到任意多的服务器上。ABP 是一种与部署环境无关的工具。",
@@ -1003,7 +1003,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "如何与第三方资料库和系统集成?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "如何设置自动测试?",
"ABPSOLUTION": "ABP 解决方案",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基于领域驱动设计原则,提供了一个架构完善、分层且可投入生产的启动解决方案。该解决方案还包括每个层的预配置单元和集成测试项目。",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基于领域驱动设计原则,提供了一个架构完善、分层且可投入生产的启动解决方案。该解决方案还包括每个层的预配置单元和集成测试项目。",
"CommonLibraries": "通用库",
"CommonLibraries_THEPROBLEM_Description": "您应该使用哪些库来实现常见需求?软件开发生态系统是高度动态的,要跟上最新的工具、库、趋势和方法具有挑战性。",
"CommonLibraries_ABPSOLUTION_Description": "ABP 将流行、成熟和最新的库预先集成到解决方案中。你不需要花时间集成它们或让它们相互通信。它们开箱即可正常工作。",
@@ -1021,7 +1021,7 @@
"KeepingYourSolutionUpToDate": "保持解决方案最新",
"KeepingYourSolutionUpToDate_THEPROBLEM_Description": "开始开发后,您必须跟踪所使用库的新版本,以便进行升级和打补丁。",
"KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "我们会定期将所有包更新至最新版本,并在稳定版本发布前对其进行测试。当你更新 ABP 框架时,它的所有依赖项都会升级到边缘技术。",
- "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI 命令可自动发现并升级解决方案中所有依赖 ABP 的 NuGet 和 NPM 包。有了 ABP,使用最新版本变得更加容易。",
+ "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI 命令可自动发现并升级解决方案中所有依赖 ABP 的 NuGet 和 NPM 包。有了 ABP,使用最新版本变得更加容易。",
"DRY": "不要重复自己",
"DRY_Description": "创建基础解决方案需要大量时间,并需要良好的建筑经验。然而,这仅仅是个开始!在开始开发时,您可能需要编写大量重复的代码;如果所有这些代码都能自动处理,那就再好不过了。",
"DRY_Description2": "ABP 遵循 \"约定重于配置 \"的原则,尽可能自动化和简化重复代码。不过,当您需要切换到手动档时,它也不会限制您。控制权始终掌握在您的手中。",
@@ -1062,12 +1062,12 @@
"Modularity_THEPROBLEM_Description": "建立一个真正的模块化系统并非易事!系统的所有方面(数据库、实体、API、UI页面/组件)都可以分割成模块,而且每个模块都可以重用,无需其他模块。普通的 ASP.NET Core 并不提供这样的模块化架构。如果需要,您应该从头开始考虑。",
"Modularity_ABPSOLUTION_Description": "ABP 框架是一种模块化应用程序开发结构。框架中的每项功能都是为兼容模块化而开发的。文档和指南解释了如何以标准方式开发可重用的模块。",
"SaaSMultiTenancy": "SaaS / 多租户",
- "SaaSMultiTenancy_THEPROBLEM_Description": " 多租户是实施 SaaS 系统的一种常见方式。但是,实施一致的多用户基础设施可能会变得复杂。",
+ "SaaSMultiTenancy_THEPROBLEM_Description": " 多租户是实施 SaaS 系统的一种常见方式。但是,实施一致的多用户基础设施可能会变得复杂。",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP 框架提供完整的多租户基础架构,并从您的业务代码中抽象出复杂性。您的应用程序代码大部分将具有多租户意识,而 ABP 框架会自动隔离租户之间的数据库、缓存和其他细节。它支持单个数据库、每个租户数据库和混合方法。它能正确配置 Microsoft Identity 和 OpenIddict 等库,这些库通常与多租户不兼容。",
"Microservices": "微服务",
"Microservices_THEPROBLEM_Description": "构建微服务系统需要许多基础设施细节:对应用程序和微服务进行身份验证和授权,以及在微服务之间实施异步消息传递和同步(Rest/GRPC)通信模式是最基本的问题。",
- "Microservices_ABPSOLUTION_Description": "ABP 框架提供服务、指南和示例,帮助您使用行业标准工具实施微服务解决方案。",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更进一步,提供了完整的 启动模板,以启动您的微服务解决方案。",
+ "Microservices_ABPSOLUTION_Description": "ABP 框架提供服务、指南和示例,帮助您使用行业标准工具实施微服务解决方案。",
+ "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更进一步,提供了完整的 启动模板,以启动您的微服务解决方案。",
"PreBuiltModules": "预制模块",
"PreBuiltModules_THEPROBLEM_Description": "我们每个人都有相似但略有不同的业务需求。但是,我们都应该重新发明轮子,因为没有人的代码可以直接用于我们的解决方案。它们都是更大解决方案的嵌入部分。",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial 模块提供了大量可重用的应用模块,如支付、聊天、文件管理、审计日志报告......等。所有这些模块都可以轻松安装到您的解决方案中并直接运行。我们将不断添加更多模块。",
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
index e9ee4ef230..1d57000aee 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
@@ -529,7 +529,7 @@
"Pricing_Page_Testimonial_2": "我們看到了使用 ABP Commercial 來減少客製化開發專案的開銷的價值。團隊能夠統一不同專案流中的程式碼模式。我們看到該框架具有更大的潛力,可以讓我們比以前更快地建立新功能。我們相信我們將不斷看到利用 ABP Commercial 的價值。",
"Pricing_Page_Testimonial_3": "我們愛 ABP。我們不必從頭開始編寫所有內容。我們從開箱即用的功能開始,只專注於我們真正需要編寫的內容。此外,ABP 架構良好,程式碼品質高,錯誤較少。如果我們必須自己編寫所需的所有內容,我們可能需要花費數年時間。我們喜歡的另一件事是,新版本、問題修復或改進每隔一周很快就會發布。我們不會等太久。",
"Pricing_Page_Testimonial_4": "ABP Commercial 是一款極佳的產品,值得推薦。在單一可配置平台上為我們的客戶推出商業產品。為任何團隊提供的框架和工具的快速啟動都是值得的。 ABP Commercial 最適合我們的需求。",
- "Pricing_Page_Testimonial_5": "ABP Framework 不僅僅是一個框架,它也是專案開發/管理的指南,因為它提供了 DDD、GenericRepository、DI、微服務和模組化培訓。即使您不打算使用框架本身,您也可以使用經過充分且專業準備的 docs.abp.io 進行開發(OpenIddict、Redis、Quartz 等)。因為很多東西都是預先建立的,所以它大大縮短了專案開發時間(例如登入頁面、異常處理、資料過濾、播種、稽核日誌記錄、本地化、自動 API 控制器等)。作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。不浪費時間給CreationTime、CreatorId真是太好了。它們會被自動填滿。",
+ "Pricing_Page_Testimonial_5": "ABP Framework 不僅僅是一個框架,它也是專案開發/管理的指南,因為它提供了 DDD、GenericRepository、DI、微服務和模組化培訓。即使您不打算使用框架本身,您也可以使用經過充分且專業準備的 abp.io/docs 進行開發(OpenIddict、Redis、Quartz 等)。因為很多東西都是預先建立的,所以它大大縮短了專案開發時間(例如登入頁面、異常處理、資料過濾、播種、稽核日誌記錄、本地化、自動 API 控制器等)。作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。不浪費時間給CreationTime、CreatorId真是太好了。它們會被自動填滿。",
"Pricing_Page_Testimonial_6": "ABP框架是一個很好的框架,但是它需要時間來理解它使用的不同層、類別和函式庫(尤其是ABP)。我花了很多時間閱讀程式碼庫,但 ABP Commercial 為我們節省了建立專案專業實體 (AR) 以及連結到每個實體的儲存庫的時間。我還喜歡 ABP 中使用的方法非常成熟;我們知道它是基於 DDD 和 monolith 的。",
"Pricing_Page_Testimonial_7": "作為一家新創公司,我們需要快速迭代,並在樣板和非核心功能上花費最少的時間。 \n我們的工程師既有經驗豐富的工程師,也有初級工程師,我們需要一種共同的理解和一種共享技術和領域知識的方法,ABP 憑藉其出色的指南和文件使我們能夠做到這一點。 \n有些事情我們不必擔心,因為它們與 ABP 一起開箱即用。 \n ABP 幫助我們簡化了快速原型設計和開發,從功能啟動到生產只花了不到 4 週的時間。憑藉許可證中包含的所有高級功能,ABP 為我們提供了軟體工程方面的「Startup in a Box」。",
"Pricing_Page_Testimonial_8": "我會向所有想要擴大客戶可用產品範圍的人推薦 ABP Commercial。當需要使用分散式企業環境(Angular、WPF、Win&Linux)時,它非常棒。除了他們的產品之外,我們還喜歡他們的支持,這使我們的工作更快、更輕鬆。我們已經知道,我們已經找到了一個面向未來的優秀合作夥伴,他將支持我們拓展業務。",
@@ -707,7 +707,7 @@
"Landing_Page_DocsModuleDescription_9": "除了 GitHub 來源之外,還允許簡單地使用資料夾作為文件來源。",
"Landing_Page_FileManagementModuleDescription_1": "在分層資料夾結構中上傳、下載和組織文件。",
"Landing_Page_FileManagementModuleDescription_2": "此模組用於上傳、下載檔案並以分層資料夾結構組織檔案。它還與多租戶相容,您可以確定租戶的總大小限制。",
- "Landing_Page_FileManagementModuleDescription_3": "此模組基於BLOB儲存系統,因此可以使用不同的儲存提供者來儲存檔案內容。",
+ "Landing_Page_FileManagementModuleDescription_3": "此模組基於BLOB儲存系統,因此可以使用不同的儲存提供者來儲存檔案內容。",
"Landing_Page_IdentityModuleDescription_1": "該模組實現了應用程式的使用者和角色系統;",
"Landing_Page_IdentityModuleDescription_2": "基於Microsoft 的 ASP.NET Core Identity庫建置。",
"Landing_Page_IdentityModuleDescription_3": "管理系統中的角色和使用者。一個使用者可以擁有多個角色。",
@@ -723,7 +723,7 @@
"Landing_Page_PaymentModuleDescription_1": "提供不同支付網關的整合。",
"Landing_Page_PaymentModuleDescription_2": "此模組提供支付網關的集成,因此您可以輕鬆地從客戶那裡獲得付款。",
"Landing_Page_PaymentModuleDescription_3": "此模組支援以下支付網關",
- "Welcome_Page_UseSameCredentialForCommercialWebsites": "對Commercial.abp.io和support.abp.io使用相同的憑證。",
+ "Welcome_Page_UseSameCredentialForCommercialWebsites": "對abp.io和abp.io/support使用相同的憑證。",
"WatchCrudPagesVideo": "觀看「使用 ABP Suite 建立 CRUD 頁面」影片!",
"WatchGeneratingFromDatabaseVideo": "觀看“ABP Suite:從現有資料庫表单產生 CRUD 頁面”影片!",
"WatchTakeCloserLookVideo": "觀看“仔細看看程式碼產生:ABP Suite”影片!",
@@ -868,8 +868,8 @@
"DevelopYourSolution_Description1": "ABP 的基礎設施透過自動化重複性工作並提供預先建置的基礎架構和應用程式功能,使您能夠專注於自己的業務程式碼。",
"DevelopYourSolution_Description2": "在下面的程式碼區塊中,您可以看到 ABP 框架如何無縫整合到您的程式碼中並自動為您執行重複性任務。",
"DevelopYourSolution_Description3": "即使在這個短代碼區塊中,ABP 也為您做了很多事情。",
- "DevelopYourSolution_Description4": "它提供了應用約定的基類,例如\n依賴注入。通用\n儲存庫服務提供了一個方便的\n方式與資料庫互動。聲明式\n授權與微調的權限系統一起使用。",
- "DevelopYourSolution_Description5": "ABP 完全自動化了\n工作單元(用於資料庫連接和交易管理)、 \n異常處理、 \n驗證\n和審計日誌記錄。它提供了更多構建塊來簡化您的日常開發任務並專注於您自己的程式碼,同時創建可用於生產的\n應用程式。",
+ "DevelopYourSolution_Description4": "它提供了應用約定的基類,例如\n依賴注入。通用\n儲存庫服務提供了一個方便的\n方式與資料庫互動。聲明式\n授權與微調的權限系統一起使用。",
+ "DevelopYourSolution_Description5": "ABP 完全自動化了\n工作單元(用於資料庫連接和交易管理)、 \n異常處理、 \n驗證\n和審計日誌記錄。它提供了更多構建塊來簡化您的日常開發任務並專注於您自己的程式碼,同時創建可用於生產的\n應用程式。",
"DevelopYourSolution_Description6": "您可以想像,如果您全部手動完成,該程式碼區塊會變得多麼長和複雜。",
"SuiteCrudGenerationInFewSeconds": "除了手動編碼解決方案之外,您還可以使用 ABP Suite 工具在幾分鐘內建立完全可用的高級 CRUD 頁面。它將程式碼產生到您的解決方案中,以便您可以根據您的自訂要求對其進行微調。",
"DeployAnywhere_Description1": "最終,您將擁有一個純 .NET 解決方案。您可以將解決方案部署到您自己的伺服器、雲端平台、Kubernetes 或您想要的任何地方。您可以根據需要部署到任意數量的伺服器。 ABP 是一個與部署環境無關的工具。",
@@ -985,7 +985,7 @@
"CreatingAnEmptySolution_THEPROBLEM_Description4": "如何整合到第三方函式庫和系統?",
"CreatingAnEmptySolution_THEPROBLEM_Description5": "如何設定自動化測試?",
"ABPSOLUTION": "動態血壓解決方案",
- "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基於領域驅動設計原則提供了一個架構良好、分層且可用於生產的啟動解決方案。該解決方案還包括每個層的預先配置單元和整合測試項目。",
+ "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基於領域驅動設計原則提供了一個架構良好、分層且可用於生產的啟動解決方案。該解決方案還包括每個層的預先配置單元和整合測試項目。",
"CommonLibraries": "通用函式庫",
"CommonLibraries_THEPROBLEM_Description": "您應該使用哪些函式庫來實現常見需求?軟體開發生態系統是高度動態的,這使得跟上最新的工具、函式庫、趨勢和方法變得具有挑戰性。",
"CommonLibraries_ABPSOLUTION_Description": "ABP 將流行的、成熟的和最新的庫預先整合到解決方案中。您不需要花時間整合它們或使它們相互溝通。它們開箱即用,可以正常工作。",
@@ -1043,12 +1043,12 @@
"Modularity_THEPROBLEM_Description": "要建立真正的模組化系統並不容易!系統的所有方面(資料庫、實體、API、UI 頁面/元件)都可以拆分為模組,並且每個模組都可以重複使用,無需其他模組。普通的 ASP.NET Core 並不會提供這樣的模組化架構。如果你需要的話,你應該從頭開始考慮。",
"Modularity_ABPSOLUTION_Description": "ABP框架天生就是一個模組化的應用程式開發結構。框架中的每個功能都是為了與模組化相容而開發的。文件和指南解釋如何以標準方式開發可重複使用模組。",
"SaaSMultiTenancy": "SaaS/多租戶",
- "SaaSMultiTenancy_THEPROBLEM_Description": "多租戶是實施 SaaS 系統的常用方法。然而,實施一致的多租戶基礎設施可能會變得複雜。",
+ "SaaSMultiTenancy_THEPROBLEM_Description": "多租戶是實施 SaaS 系統的常用方法。然而,實施一致的多租戶基礎設施可能會變得複雜。",
"SaaSMultiTenancy_ABPSOLUTION_Description": "ABP 框架提供了完整的多租戶基礎設施,並從業務程式碼中抽像出複雜性。您的應用程式程式碼將主要是多租戶感知的,而 ABP 框架會自動將資料庫、快取和租戶的其他詳細資訊相互隔離。它支援單一資料庫、每個租戶資料庫和混合方法。它正確配置了 Microsoft Identity 和 OpenIddict 等程式庫,這些程式庫通常不相容於多租用戶。",
"Microservices": "微服務",
"Microservices_THEPROBLEM_Description": "建構微服務系統需要許多基礎設施細節:對應用程式和微服務進行身份驗證和授權以及在微服務之間實現非同步訊息傳遞和同步(Rest/GRPC)通訊模式是最基本的問題。",
- "Microservices_ABPSOLUTION_Description": "ABP 框架提供服務、指南和範例,協助您使用業界標準工具實施微服務解決方案。",
- "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更進一步,提供了一個完整的啟動範本來啟動您的微服務解決方案。",
+ "Microservices_ABPSOLUTION_Description": "ABP 框架提供服務、指南和範例,協助您使用業界標準工具實施微服務解決方案。",
+ "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更進一步,提供了一個完整的啟動範本來啟動您的微服務解決方案。",
"PreBuiltModules": "預建模區塊",
"PreBuiltModules_THEPROBLEM_Description": "我們所有人都有相似但略有不同的業務需求。然而,我們都應該重新發明輪子,因為沒有人的程式碼可以直接在我們的解決方案中工作。它們都是更大解決方案的嵌入部分。",
"PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial模組提供了大量可重複使用的應用模組,例如付款、聊天、檔案管理、稽核日誌報告等。所有這些模組都可以輕鬆安裝到您的解決方案中並直接運行。我們不斷添加更多模組。",
diff --git a/abp_io/README.md b/abp_io/README.md
index 3f59187ea4..aee8ca7791 100644
--- a/abp_io/README.md
+++ b/abp_io/README.md
@@ -9,7 +9,7 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan
## How to Translate abp.io Into Your Language:
-1. Install [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) command line tool.
+1. Install [ABP CLI](https://abp.io/docs/latest/cli) command line tool.
2. Run the following command to generate the localization file.
For example, for translating from English to French `fr`:
@@ -28,5 +28,5 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan
## References:
-* [ABP CLI Translate Command](https://docs.abp.io/en/abp/latest/Contribution/Index#using-the-abp-translate-command)
+* [ABP CLI Translate Command](https://abp.io/docs/latest/contribution#using-the-abp-translate-command)
* [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md)
diff --git a/common.props b/common.props
index 75170b8152..26b2c2f91a 100644
--- a/common.props
+++ b/common.props
@@ -1,8 +1,8 @@
latest
- 8.2.1
- 3.2.1
+ 8.2.3
+ 3.2.3
$(NoWarn);CS1591;CS0436
https://abp.io/assets/abp_nupkg.png
https://abp.io/
diff --git a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md
index 7046c53855..fd7c1198a9 100644
--- a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md
+++ b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md
@@ -107,5 +107,4 @@ ABP Commercial license holders may wonder if any license change happens. The ans
## Last Words
-With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io.
-
+With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io.
\ No newline at end of file
diff --git a/docs/en/ambient-context-pattern.md b/docs/en/ambient-context-pattern.md
index 09f57c6cd7..411db43789 100644
--- a/docs/en/ambient-context-pattern.md
+++ b/docs/en/ambient-context-pattern.md
@@ -1,3 +1,3 @@
-## Ambient Context Pattern
+# Ambient Context Pattern
This document is planned to be written later.
\ No newline at end of file
diff --git a/docs/en/aspect-oriented-programming.md b/docs/en/aspect-oriented-programming.md
index 64f0fdb256..c578f1e89c 100644
--- a/docs/en/aspect-oriented-programming.md
+++ b/docs/en/aspect-oriented-programming.md
@@ -1,3 +1,3 @@
-## Dynamic Proxying / Interceptors
+# Dynamic Proxying / Interceptors
This document is planned to be written later.
\ No newline at end of file
diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md
index c283121ce5..8e3649e386 100644
--- a/docs/en/cli/index.md
+++ b/docs/en/cli/index.md
@@ -794,12 +794,19 @@ Examples:
````bash
abp upgrade -t app
+abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro
+abp upgrade -t app-nolayers --audit-logging-ui
abp upgrade -t app-nolayers -p D:\MyProjects\MyProject
````
#### Options
* `--path` or `-p`: Specifies the module path. The module should be in that directory. If not specified, the default is the current directory.
+* `--gdpr`: Installs GDPR module too.
+* `--language-management`: Installs Language Management module too.
+* `--audit-logging-ui`: Installs Audit Logging Pro (UI) module too.
+* `--text-template-management`: Installs Text Template Management module too.
+* `--openiddict-pro`: Installs OpenIddict Pro (UI) module too.
### translate
@@ -907,6 +914,7 @@ abp bundle [options]
* ```--project-type``` or ```-t```: Specifies the project type. Default type is `webassembly`. Available types:
* `webassembly`
* `maui-blazor`
+* `--version` or `-v`: Specifies the ABP Framework version that the project is using. This is helpful for those who use central package management.
`bundle` command reads the `appsettings.json` file inside the Blazor and MAUI Blazor project for bundling options. For more details about managing style and script references in Blazor or MAUI Blazor apps, see [Managing Global Scripts & Styles](../framework/ui/blazor/global-scripts-styles.md)
diff --git a/docs/en/cli/new-command-samples.md b/docs/en/cli/new-command-samples.md
index 0e6796a8ca..06099a3e29 100644
--- a/docs/en/cli/new-command-samples.md
+++ b/docs/en/cli/new-command-samples.md
@@ -36,6 +36,12 @@ The following commands are for creating Angular UI projects:
abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider mongodb -csf
```
+* **No DB migration!**, the DB migration will not be generated
+
+ ```bash
+ abp new Acme.BookStore -u angular --skip-migrations --skip-migrator
+ ```
+
## MVC
The following commands are for creating MVC UI projects:
@@ -72,7 +78,12 @@ The following commands are for creating MVC UI projects:
_Note that Public Website is only included in PRO templates._
+* **No initial configuration!**, the DB migration will not be generated, client-side scripts will not be installed and bundling will not run
+ ```bash
+ abp new Acme.BookStore -u mvc --skip-migrations --skip-migrator --dont-run-install-libs --dont-run-bundling
+ ```
+
## Blazor WebAssembly
The following commands are for creating Blazor WASM projects:
@@ -94,6 +105,12 @@ The following commands are for creating Blazor WASM projects:
```bash
abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf
```
+
+* **Client-side libraries are not loaded automatically!**, the libs folder will not be installed from ([NPM](https://www.npmjs.com/))
+
+ ```bash
+ abp new Acme.BookStore -u blazor --dont-run-install-libs
+ ```
## Blazor Server
@@ -116,6 +133,12 @@ The following commands are for creating Blazor projects:
```bash
abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf
```
+
+* **Skip bundling for the packages**,
+
+ ```bash
+ abp new Acme.BookStore -u blazor --dont-run-bundling
+ ```
## No UI
diff --git a/docs/en/deployment/ssl.md b/docs/en/deployment/ssl.md
index d97049b245..e1f463dba8 100644
--- a/docs/en/deployment/ssl.md
+++ b/docs/en/deployment/ssl.md
@@ -28,7 +28,7 @@ This error may occur when using IIS. You need to trust your certificate by `Mana
## References
-* [ABP IIS Deployment](https://docs.abp.io/en/commercial/latest/startup-templates/application/deployment-iis)
+* [ABP IIS Deployment](./index.md)
* [HTTPS in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl)
* [Let's Encrypt](https://letsencrypt.org/getting-started)
* [Cloudflare's Free SSL / TLS](https://www.cloudflare.com/application-services/products/ssl/)
\ No newline at end of file
diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json
index e919f3b0ac..7b1dea54ba 100644
--- a/docs/en/docs-nav.json
+++ b/docs/en/docs-nav.json
@@ -2,8 +2,11 @@
"items": [
{
"text": "Get started",
- "path": "get-started",
"items": [
+ {
+ "text": "Overview",
+ "path": "get-started"
+ },
{
"text": "Single-layer solution",
"path": "get-started/single-layer-web-application.md"
@@ -43,9 +46,16 @@
"text": "Tutorials",
"items": [
{
- "text": "TODO application",
- "path": "tutorials/todo",
+ "text": "Overview",
+ "path": "tutorials"
+ },
+ {
+ "text": "TODO Application",
"items": [
+ {
+ "text": "Overview",
+ "path": "tutorials/todo"
+ },
{
"text": "Single-layer solution",
"path": "tutorials/todo/single-layer"
@@ -57,11 +67,11 @@
]
},
{
- "text": "Book Store application",
+ "text": "Book Store Application",
"items": [
{
"text": "Overview",
- "path": "tutorials/book-store/overview.md"
+ "path": "tutorials/book-store"
},
{
"text": "1: Creating the server side",
@@ -105,6 +115,47 @@
}
]
},
+ {
+ "text": "Modular Monolith Application",
+ "items": [
+ {
+ "text": "Overview",
+ "path": "tutorials/modular-crm/index.md"
+ },
+ {
+ "text": "1: Creating the initial solution",
+ "path": "tutorials/modular-crm/part-01.md"
+ },
+ {
+ "text": "2: Creating the initial Products module",
+ "path": "tutorials/modular-crm/part-02.md"
+ },
+ {
+ "text": "3: Building the Products module",
+ "path": "tutorials/modular-crm/part-03.md"
+ },
+ {
+ "text": "4: Creating the initial Ordering module",
+ "path": "tutorials/modular-crm/part-04.md"
+ },
+ {
+ "text": "5: Building the Ordering module",
+ "path": "tutorials/modular-crm/part-05.md"
+ },
+ {
+ "text": "6: Integrating the modules: Implementing Integration Services",
+ "path": "tutorials/modular-crm/part-06.md"
+ },
+ {
+ "text": "7: Integrating the modules: Communication via Messages (Events)",
+ "path": "tutorials/modular-crm/part-07.md"
+ },
+ {
+ "text": "8: Integrating the modules: Joining the Products and Orders Data",
+ "path": "tutorials/modular-crm/part-08.md"
+ }
+ ]
+ },
{
"text": "Community Articles",
"path": "https://abp.io/community"
@@ -114,10 +165,17 @@
{
"text": "Tools",
"items": [
+ {
+ "text": "Overview",
+ "path": "tools.md"
+ },
{
"text": "ABP CLI",
- "path": "cli",
"items": [
+ {
+ "text": "Overview",
+ "path": "cli"
+ },
{
"text": "Examples for the new command",
"path": "cli/new-command-samples.md"
@@ -126,19 +184,22 @@
},
{
"text": "ABP Studio",
- "path": "studio",
"items": [
{
- "text": "Installation",
- "path": "studio/installation.md"
+ "text": "Overview",
+ "path": "studio"
},
{
- "text": "Overview",
- "path": "studio/overview.md"
+ "text": "Installation",
+ "path": "studio/installation.md"
},
{
"text": "Fundamentals",
"items": [
+ {
+ "text": "Overview",
+ "path": "studio/overview.md"
+ },
{
"text": "Solution Explorer",
"path": "studio/solution-explorer.md"
@@ -164,6 +225,14 @@
{
"text": "Concepts",
"path": "studio/concepts.md"
+ },
+ {
+ "text": "Version Compatibility",
+ "path": "studio/version-compatibility.md"
+ },
+ {
+ "text": "Release Notes",
+ "path": "studio/release-notes.md"
}
]
},
@@ -171,7 +240,7 @@
"text": "ABP Suite",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "suite"
},
{
@@ -192,8 +261,11 @@
},
{
"text": "Generating CRUD Page",
- "path": "suite/generating-crud-page.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "suite/generating-crud-page.md"
+ },
{
"text": "Creating Many-To-Many Relationship",
"path": "suite/creating-many-to-many-relationship.md"
@@ -242,14 +314,21 @@
{
"text": "Fundamentals",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/fundamentals"
+ },
{
"text": "Application Startup",
"path": "framework/fundamentals/application-startup.md"
},
{
"text": "Authorization",
- "path": "framework/fundamentals/authorization.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/fundamentals/authorization.md"
+ },
{
"text": "Dynamic Claims",
"path": "framework/fundamentals/dynamic-claims.md"
@@ -258,8 +337,11 @@
},
{
"text": "Caching",
- "path": "framework/fundamentals/caching.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/fundamentals/caching.md"
+ },
{
"text": "Redis Cache",
"path": "framework/fundamentals/redis-cache.md"
@@ -276,8 +358,11 @@
},
{
"text": "Dependency Injection",
- "path": "framework/fundamentals/dependency-injection.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/fundamentals/dependency-injection.md"
+ },
{
"text": "AutoFac Integration",
"path": "framework/fundamentals/autofac-integration.md"
@@ -306,8 +391,11 @@
},
{
"text": "Validation",
- "path": "framework/fundamentals/validation.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/fundamentals/validation.md"
+ },
{
"text": "FluentValidation Integration",
"path": "framework/fundamentals/fluent-validation.md"
@@ -319,14 +407,21 @@
{
"text": "Infrastructure",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/infrastructure"
+ },
{
"text": "Audit Logging",
"path": "framework/infrastructure/audit-logging.md"
},
{
"text": "Background Jobs",
- "path": "framework/infrastructure/background-jobs",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/infrastructure/background-jobs"
+ },
{
"text": "Hangfire Integration",
"path": "framework/infrastructure/background-jobs/hangfire.md"
@@ -343,8 +438,11 @@
},
{
"text": "Background Workers",
- "path": "framework/infrastructure/background-workers",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/infrastructure/background-workers"
+ },
{
"text": "Quartz Integration",
"path": "framework/infrastructure/background-workers/quartz.md"
@@ -359,7 +457,7 @@
"text": "BLOB Storing",
"items": [
{
- "text": "BLOB Storing System",
+ "text": "Overview",
"path": "framework/infrastructure/blob-storing"
},
{
@@ -429,7 +527,7 @@
"text": "Email Sending",
"items": [
{
- "text": "Email Sending System",
+ "text": "Overview",
"path": "framework/infrastructure/emailing.md"
},
{
@@ -446,7 +544,7 @@
"text": "Event Bus",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/infrastructure/event-bus"
},
{
@@ -455,8 +553,11 @@
},
{
"text": "Distributed Event Bus",
- "path": "framework/infrastructure/event-bus/distributed",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/infrastructure/event-bus/distributed"
+ },
{
"text": "Azure Service Bus Integration",
"path": "framework/infrastructure/event-bus/distributed/azure.md"
@@ -519,8 +620,11 @@
},
{
"text": "Text Templating",
- "path": "framework/infrastructure/text-templating",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/infrastructure/text-templating"
+ },
{
"text": "Razor Integration",
"path": "framework/infrastructure/text-templating/razor.md"
@@ -543,13 +647,16 @@
},
{
"text": "Architecture",
- "path": "framework/architecture",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture"
+ },
{
"text": "Best Practices",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/architecture/best-practices"
},
{
@@ -559,6 +666,10 @@
{
"text": "Domain Layer",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture/best-practices/domain-layer-overview.md"
+ },
{
"text": "Entities",
"path": "framework/architecture/best-practices/entities.md"
@@ -576,6 +687,10 @@
{
"text": "Application Layer",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture/best-practices/application-layer-overview.md"
+ },
{
"text": "Application Services",
"path": "framework/architecture/best-practices/application-services.md"
@@ -589,6 +704,10 @@
{
"text": "Data Access",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture/best-practices/data-access-overview.md"
+ },
{
"text": "Entity Framework Core Integration",
"path": "framework/architecture/best-practices/entity-framework-core-integration.md"
@@ -605,7 +724,7 @@
"text": "Modularity",
"items": [
{
- "text": "Basics",
+ "text": "Overview",
"path": "framework/architecture/modularity/basics.md"
},
{
@@ -616,7 +735,7 @@
"text": "Customizing/Extending Modules",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/architecture/modularity/extending/customizing-application-modules-guide.md"
},
{
@@ -639,12 +758,16 @@
"text": "Domain Driven Design",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/architecture/domain-driven-design"
},
{
"text": "Domain Layer",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture/domain-driven-design/domain-layer.md"
+ },
{
"text": "Entities & Aggregate Roots",
"path": "framework/architecture/domain-driven-design/entities.md"
@@ -670,6 +793,10 @@
{
"text": "Application Layer",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/architecture/domain-driven-design/application-layer.md"
+ },
{
"text": "Application Services",
"path": "framework/architecture/domain-driven-design/application-services.md"
@@ -703,9 +830,17 @@
{
"text": "API Development",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/api-development"
+ },
{
"text": "ABP Endpoints",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/api-development/standard-apis"
+ },
{
"text": "Application Configuration",
"path": "framework/api-development/standard-apis/configuration.md"
@@ -745,12 +880,16 @@
{
"text": "User Interface",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/ui"
+ },
{
"text": "MVC / Razor Pages",
"items": [
{
- "text": "Overall",
- "path": "framework/ui/mvc-razor-pages/overall.md"
+ "text": "Overview",
+ "path": "framework/ui/mvc-razor-pages/overall"
},
{
"text": "Navigation / Menus",
@@ -794,8 +933,11 @@
},
{
"text": "Tag Helpers",
- "path": "framework/ui/mvc-razor-pages/tag-helpers",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/ui/mvc-razor-pages/tag-helpers"
+ },
{
"text": "Form Elements",
"path": "framework/ui/mvc-razor-pages/tag-helpers/form-elements.md"
@@ -832,8 +974,11 @@
},
{
"text": "Theming",
- "path": "framework/ui/mvc-razor-pages/theming.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/ui/mvc-razor-pages/theming.md"
+ },
{
"text": "The Basic Theme",
"path": "framework/ui/mvc-razor-pages/basic-theme.md"
@@ -848,7 +993,7 @@
"text": "JavaScript API",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/mvc-razor-pages/javascript-api"
},
{
@@ -909,7 +1054,7 @@
"text": "Customize/Extend the UI",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/mvc-razor-pages/customization-user-interface.md"
},
{
@@ -941,7 +1086,7 @@
"text": "Blazor",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/blazor/overall.md"
},
{
@@ -960,7 +1105,7 @@
"text": "Theming",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/blazor/theming.md"
},
{
@@ -1272,7 +1417,7 @@
"text": "Theming",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/angular/theming.md"
},
{
@@ -1309,7 +1454,7 @@
"text": "Extensions",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/angular/extensions-overall.md"
},
{
@@ -1359,7 +1504,7 @@
"text": "React Native",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/react-native"
}
]
@@ -1368,7 +1513,7 @@
"text": "MAUI",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/ui/maui"
}
]
@@ -1397,13 +1542,16 @@
"text": "Data Access",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "framework/data"
},
{
"text": "Entity Framework Core",
- "path": "framework/data/entity-framework-core",
"items": [
+ {
+ "text": "Overview",
+ "path": "framework/data/entity-framework-core"
+ },
{
"text": "Database Migrations",
"path": "framework/data/entity-framework-core/migrations.md"
@@ -1471,7 +1619,7 @@
"text": "Solution Templates",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "solution-templates"
},
{
@@ -1496,7 +1644,7 @@
"text": "Application Modules",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "modules"
},
{
@@ -1561,8 +1709,11 @@
},
{
"text": "IdentityServer",
- "path": "modules/identity-server.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "modules/identity-server.md"
+ },
{
"text": "IdentityServer Migration Guide",
"path": "release-info/migration-guides/identityserver4-step-by-step.md"
@@ -1579,8 +1730,11 @@
},
{
"text": "OpenIddict",
- "path": "modules/openiddict.md",
"items": [
+ {
+ "text": "Overview",
+ "path": "modules/openiddict.md"
+ },
{
"text": "OpenIddict Migration Guide",
"path": "release-info/migration-guides/openiddict-step-by-step.md"
@@ -1637,13 +1791,17 @@
{
"text": "UI Themes",
"items": [
+ {
+ "text": "Overview",
+ "path": "ui-themes"
+ },
{
"text": "The Basic Theme",
"path": "framework/ui/mvc-razor-pages/basic-theme.md"
},
{
"text": "LeptonX Theme",
- "path": "ui-themes/lepton-x/index.md"
+ "path": "ui-themes/lepton-x"
}
]
},
@@ -1651,7 +1809,7 @@
"text": "Testing",
"items": [
{
- "text": "Overall",
+ "text": "Overview",
"path": "testing/overall.md"
},
{
@@ -1670,8 +1828,11 @@
},
{
"text": "Deployment",
- "path": "deployment",
"items": [
+ {
+ "text": "Overview",
+ "path": "deployment"
+ },
{
"text": "Configuring SSL certificate(HTTPS)",
"path": "deployment/ssl.md"
@@ -1702,7 +1863,7 @@
"text": "Samples",
"items": [
{
- "text": "All Samples",
+ "text": "Overview",
"path": "samples"
},
{
@@ -1722,6 +1883,10 @@
{
"text": "Books",
"items": [
+ {
+ "text": "Overview",
+ "path": "https://abp.io/books"
+ },
{
"text": "Mastering ABP Framework",
"path": "https://abp.io/books/mastering-abp-framework"
@@ -1735,6 +1900,10 @@
{
"text": "Release Information",
"items": [
+ {
+ "text": "Overview",
+ "path": "release-info"
+ },
{
"text": "Release Notes",
"path": "release-info/release-notes.md"
diff --git a/docs/en/dynamic-proxying-interceptors.md b/docs/en/dynamic-proxying-interceptors.md
index 34c9c69b67..722eadc249 100644
--- a/docs/en/dynamic-proxying-interceptors.md
+++ b/docs/en/dynamic-proxying-interceptors.md
@@ -1,4 +1,4 @@
-## Dynamic Proxying / Interceptors
+# Dynamic Proxying / Interceptors
This document is planned to be written later.
diff --git a/docs/en/framework/api-development/index.md b/docs/en/framework/api-development/index.md
new file mode 100644
index 0000000000..2f55487b1c
--- /dev/null
+++ b/docs/en/framework/api-development/index.md
@@ -0,0 +1,11 @@
+## API Development
+
+The following documents explain the concepts, infrastructure and integrations to build HTTP APIs with ABP:
+
+* [ABP Endpoints](./standard-apis)
+* [API Versioning](./versioning.md)
+* [Auto API Controllers](./auto-controllers.md)
+* [Dynamic C# API Clients](./dynamic-csharp-clients.md)
+* [Integration Services](./integration-services.md)
+* [Static C# API Clients](./static-csharp-clients.md)
+* [Swagger Integration](./swagger.md)
diff --git a/docs/en/framework/api-development/standard-apis/index.md b/docs/en/framework/api-development/standard-apis/index.md
new file mode 100644
index 0000000000..3dd4a284f5
--- /dev/null
+++ b/docs/en/framework/api-development/standard-apis/index.md
@@ -0,0 +1,6 @@
+## Standard HTTP API Endpoints
+
+ABP provides some pre-built and standard endpoints that contains useful information about the application or service, such as localization entries and settings. Here, is the list of the pre-built endpoints:
+
+* [Application Configuration](./configuration.md)
+* [Application Localization](./localization.md)
\ No newline at end of file
diff --git a/docs/en/framework/architecture/best-practices/application-layer-overview.md b/docs/en/framework/architecture/best-practices/application-layer-overview.md
new file mode 100644
index 0000000000..10afeeb9ca
--- /dev/null
+++ b/docs/en/framework/architecture/best-practices/application-layer-overview.md
@@ -0,0 +1,6 @@
+## Best Practices: Application Layer
+
+The following documents suggest some best-practices that you can use while implementing the application layer of your solution by following the Domain Driven Design principles:
+
+* [Application Services](./application-services.md)
+* [Data Transfer Objects](./data-transfer-objects.md)
\ No newline at end of file
diff --git a/docs/en/framework/architecture/best-practices/application-services.md b/docs/en/framework/architecture/best-practices/application-services.md
index e3fd00f782..d3ad44ca54 100644
--- a/docs/en/framework/architecture/best-practices/application-services.md
+++ b/docs/en/framework/architecture/best-practices/application-services.md
@@ -1,4 +1,4 @@
-## Application Services Best Practices & Conventions
+# Application Services Best Practices & Conventions
* **Do** create an application service for each **aggregate root**.
diff --git a/docs/en/framework/architecture/best-practices/data-access-overview.md b/docs/en/framework/architecture/best-practices/data-access-overview.md
new file mode 100644
index 0000000000..1369a21e32
--- /dev/null
+++ b/docs/en/framework/architecture/best-practices/data-access-overview.md
@@ -0,0 +1,6 @@
+## Best Practices: Data Access
+
+The following documents suggest some best-practices that you can use while implementing the database integration layer of your solution by following Domain Driven Design principles:
+
+* [Entity Framework Core](./entity-framework-core-integration.md)
+* [MongoDB](./mongodb-integration.md)
\ No newline at end of file
diff --git a/docs/en/framework/architecture/best-practices/data-transfer-objects.md b/docs/en/framework/architecture/best-practices/data-transfer-objects.md
index cd3a34513a..e4caa6ed66 100644
--- a/docs/en/framework/architecture/best-practices/data-transfer-objects.md
+++ b/docs/en/framework/architecture/best-practices/data-transfer-objects.md
@@ -1,4 +1,4 @@
-## Data Transfer Objects Best Practices & Conventions
+# Data Transfer Objects Best Practices & Conventions
* **Do** define DTOs in the **application contracts** package.
* **Do** inherit from the pre-built **base DTO classes** where possible and necessary (like `EntityDto`, `CreationAuditedEntityDto`, `AuditedEntityDto`, `FullAuditedEntityDto` and so on).
diff --git a/docs/en/framework/architecture/best-practices/domain-layer-overview.md b/docs/en/framework/architecture/best-practices/domain-layer-overview.md
new file mode 100644
index 0000000000..b20ae1b208
--- /dev/null
+++ b/docs/en/framework/architecture/best-practices/domain-layer-overview.md
@@ -0,0 +1,7 @@
+## Best Practices: Domain Layer
+
+The following documents suggest some best-practices that you can use while implementing the domain layer of your solution by following the Domain Driven Design principles:
+
+* [Entities](./entities.md)
+* [Repositories](./repositories.md)
+* [Domain Services](./domain-services.md)
\ No newline at end of file
diff --git a/docs/en/framework/architecture/best-practices/domain-services.md b/docs/en/framework/architecture/best-practices/domain-services.md
index b1081d7ebc..565a67a715 100644
--- a/docs/en/framework/architecture/best-practices/domain-services.md
+++ b/docs/en/framework/architecture/best-practices/domain-services.md
@@ -1,4 +1,4 @@
-## Domain Services Best Practices & Conventions
+# Domain Services Best Practices & Conventions
### Domain Service
diff --git a/docs/en/framework/architecture/best-practices/entities.md b/docs/en/framework/architecture/best-practices/entities.md
index b16234d52b..319f1648ff 100644
--- a/docs/en/framework/architecture/best-practices/entities.md
+++ b/docs/en/framework/architecture/best-practices/entities.md
@@ -1,4 +1,4 @@
-## Entity Best Practices & Conventions
+# Entity Best Practices & Conventions
### Entities
diff --git a/docs/en/framework/architecture/best-practices/entity-framework-core-integration.md b/docs/en/framework/architecture/best-practices/entity-framework-core-integration.md
index efa622445c..9a2081e4e5 100644
--- a/docs/en/framework/architecture/best-practices/entity-framework-core-integration.md
+++ b/docs/en/framework/architecture/best-practices/entity-framework-core-integration.md
@@ -1,4 +1,4 @@
-## Entity Framework Core Integration Best Practices
+# Entity Framework Core Integration Best Practices
> See [Entity Framework Core Integration document](../../data/entity-framework-core) for the basics of the EF Core integration.
diff --git a/docs/en/framework/architecture/best-practices/index.md b/docs/en/framework/architecture/best-practices/index.md
index 85e00a0b51..1dc84838c6 100644
--- a/docs/en/framework/architecture/best-practices/index.md
+++ b/docs/en/framework/architecture/best-practices/index.md
@@ -1,6 +1,4 @@
-## Module Development Best Practices & Conventions
-
-### Introduction
+# Module Development Best Practices & Conventions
This document describes the **best practices** and **conventions** for those who want to develop **modules** that satisfy the following specifications:
@@ -10,7 +8,7 @@ This document describes the **best practices** and **conventions** for those who
Also, this guide is mostly usable for general **application development**.
-### Guides
+## The Guides
* Overall
* [Module Architecture](./module-architecture.md)
diff --git a/docs/en/framework/architecture/best-practices/module-architecture.md b/docs/en/framework/architecture/best-practices/module-architecture.md
index 0b9a4a282f..d050094656 100644
--- a/docs/en/framework/architecture/best-practices/module-architecture.md
+++ b/docs/en/framework/architecture/best-practices/module-architecture.md
@@ -1,4 +1,4 @@
-## Module Architecture Best Practices & Conventions
+# Module Architecture Best Practices & Conventions
### Solution Structure
@@ -11,7 +11,7 @@
The following diagram shows the packages of a well-layered module and dependencies of those packages between them:
-
+
The ultimate goal is to allow an application to use the module in a flexible manner. Example applications:
diff --git a/docs/en/framework/architecture/best-practices/mongodb-integration.md b/docs/en/framework/architecture/best-practices/mongodb-integration.md
index 16a6a7d58f..36b037c967 100644
--- a/docs/en/framework/architecture/best-practices/mongodb-integration.md
+++ b/docs/en/framework/architecture/best-practices/mongodb-integration.md
@@ -1,4 +1,4 @@
-## MongoDB Integration
+# MongoDB Integration
* Do define a separated `MongoDbContext` interface and class for each module.
diff --git a/docs/en/framework/architecture/best-practices/repositories.md b/docs/en/framework/architecture/best-practices/repositories.md
index 32da1ecee9..5e491ecb80 100644
--- a/docs/en/framework/architecture/best-practices/repositories.md
+++ b/docs/en/framework/architecture/best-practices/repositories.md
@@ -1,4 +1,4 @@
-## Repository Best Practices & Conventions
+# Repository Best Practices & Conventions
### Repository Interfaces
diff --git a/docs/en/framework/architecture/domain-driven-design/application-layer.md b/docs/en/framework/architecture/domain-driven-design/application-layer.md
new file mode 100644
index 0000000000..03b83fb038
--- /dev/null
+++ b/docs/en/framework/architecture/domain-driven-design/application-layer.md
@@ -0,0 +1,7 @@
+## Domain Driven Design: Application Layer
+
+Application Layer mediates between the Presentation and Domain Layers. Orchestrates business objects to perform specific application tasks and implements use cases as the application logic. Here, is the list of the building blocks of the Application Layer:
+
+* [Application Services](./application-services.md)
+* [Data Transfer Objects](./data-transfer-objects.md)
+* [Unit of Work](./unit-of-work.md)
\ No newline at end of file
diff --git a/docs/en/framework/architecture/domain-driven-design/domain-layer.md b/docs/en/framework/architecture/domain-driven-design/domain-layer.md
new file mode 100644
index 0000000000..9ce7519810
--- /dev/null
+++ b/docs/en/framework/architecture/domain-driven-design/domain-layer.md
@@ -0,0 +1,9 @@
+## Domain Driven Design: Domain Layer
+
+Domain Layer contains business objects and the core (domain) business rules of the application and it's the heart of the application. Here, is the list of building blocks of the Domain Layer:
+
+* [Entities & Aggregate Roots](./entities.md)
+* [Value Objects](./value-objects.md)
+* [Repositories](./repositories.md)
+* [Domain Services](./domain-services.md)
+* [Specifications](./specifications.md)
\ No newline at end of file
diff --git a/docs/en/framework/fundamentals/application-startup.md b/docs/en/framework/fundamentals/application-startup.md
index 920e1f78cc..e985048714 100644
--- a/docs/en/framework/fundamentals/application-startup.md
+++ b/docs/en/framework/fundamentals/application-startup.md
@@ -1,4 +1,4 @@
-## ABP Application Startup
+# ABP Application Startup
You typically use the [ABP CLI](../../cli)'s `abp new` command to [get started](../../get-started/layered-web-application.md) with one of the pre-built [startup solution templates](../../solution-templates). When you do that, you generally don't need to know the details of how the ABP is integrated with your application or how it is configured and initialized. The startup template also comes with the fundamental ABP packages and [application modules](../../modules) are pre-installed and configured for you.
diff --git a/docs/en/framework/fundamentals/index.md b/docs/en/framework/fundamentals/index.md
new file mode 100644
index 0000000000..7ce2c59f7b
--- /dev/null
+++ b/docs/en/framework/fundamentals/index.md
@@ -0,0 +1,16 @@
+## ABP Fundamentals: Overview
+
+The following documents explains the fundamental building blocks to create ABP solutions:
+
+* [Application Startup](./application-startup.md)
+* [Authorization](./authorization.md)
+* [Caching](./caching.md)
+* [Configuration](./configuration.md)
+* [Connection Strings](./connection-strings.md)
+* [Dependency Injection](./dependency-injection.md)
+* [Exception Handling](./exception-handling.md)
+* [Localization](./localization.md)
+* [Logging](./logging.md)
+* [Object Extensions](./object-extensions.md)
+* [Options](./options.md)
+* [Validation](./validation.md)
\ No newline at end of file
diff --git a/docs/en/framework/infrastructure/concurrency-check.md b/docs/en/framework/infrastructure/concurrency-check.md
index 03e5aafc90..731750f306 100644
--- a/docs/en/framework/infrastructure/concurrency-check.md
+++ b/docs/en/framework/infrastructure/concurrency-check.md
@@ -1,4 +1,4 @@
-## Concurrency Check
+# Concurrency Check
### Introduction
diff --git a/docs/en/framework/infrastructure/index.md b/docs/en/framework/infrastructure/index.md
new file mode 100644
index 0000000000..f9524216c3
--- /dev/null
+++ b/docs/en/framework/infrastructure/index.md
@@ -0,0 +1,31 @@
+## ABP Infrastructure
+
+ABP provides a complete infrastructure for creating real world software solutions with modern architectures based on the .NET platform. Each of the following documents explains an infrastructure feature:
+
+* [Audit Logging](./audit-logging.md)
+* [Background Jobs](./background-jobs/index.md)
+* [Background Workers](./background-workers/index.md)
+* [BLOB Storing](./blob-storing/index.md)
+* [Cancellation Token Provider](./cancellation-token-provider.md)
+* [CSRF/XSRF & Anti Forgery](./csrf-anti-forgery.md)
+* [Concurrency Check](./concurrency-check.md)
+* [Current User](./current-user.md)
+* [Data Filtering](./data-filtering.md)
+* [Data Seeding](./data-seeding.md)
+* [Distributing Locking](./distributed-locking.md)
+* [Email Sending](./emailing.md)
+* [Entity Cache](./entity-cache.md)
+* [Event Bus](./event-bus/index.md)
+* [Features](./features.md)
+* [Global Features](./global-features.md)
+* [GUID Generation](./guid-generation.md)
+* [Image Manipulation](./image-manipulation.md)
+* [JSON](./json.md)
+* [Object to Object Mapping](./object-to-object-mapping.md)
+* [Settings](./settings.md)
+* [Simple State Checker](./simple-state-checker.md)
+* [SMS Sending](./sms-sending.md)
+* [String Encryption](./string-encryption.md)
+* [Text Templating](./text-templating/index.md)
+* [Timing](./timing.md)
+* [Virtual File System](./virtual-file-system.md)
\ No newline at end of file
diff --git a/docs/en/framework/ui/angular/authorization.md b/docs/en/framework/ui/angular/authorization.md
index 04bc9ab991..dcf6e0c67d 100644
--- a/docs/en/framework/ui/angular/authorization.md
+++ b/docs/en/framework/ui/angular/authorization.md
@@ -1,4 +1,4 @@
-## Authorization in Angular UI
+# Authorization in Angular UI
OAuth is preconfigured in Angular application templates. So, when you start a project using the CLI (or Suite, for that matter), authorization already works. ABP Angular UI packages are using [angular-oauth2-oidc library](https://github.com/manfredsteyer/angular-oauth2-oidc#logging-in) for managing OAuth in the Angular client.
You can find **OAuth configuration** in the _environment.ts_ files.
diff --git a/docs/en/framework/ui/angular/breadcrumb.md b/docs/en/framework/ui/angular/breadcrumb.md
index 77351b8236..1a26975c96 100644
--- a/docs/en/framework/ui/angular/breadcrumb.md
+++ b/docs/en/framework/ui/angular/breadcrumb.md
@@ -1,4 +1,4 @@
-## Breadcrumb Component
+# Breadcrumb Component
ABP provides a component that listens to the angular router's `NavigationEnd`
event and creates inputs for `BreadcrumbItemsComponent`. This component is used in
diff --git a/docs/en/framework/ui/angular/extensions-overall.md b/docs/en/framework/ui/angular/extensions-overall.md
index bba922461b..4776198001 100644
--- a/docs/en/framework/ui/angular/extensions-overall.md
+++ b/docs/en/framework/ui/angular/extensions-overall.md
@@ -1,4 +1,4 @@
-## Angular UI Extensions
+# Angular UI Extensions
Angular UI extensions system allows you to add a new action to the actions menu, a new column to the data table, a new action to the toolbar of a page, and add a new field to the create and/or edit forms.
diff --git a/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md b/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
index 39c1f00cfe..11a7f6dfb8 100644
--- a/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
+++ b/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
@@ -18,7 +18,8 @@ Open the generated `src/app/my-roles/my-roles.component.ts` file and replace its
```js
import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';
-import { eIdentityComponents, IdentityRoleDto, IdentityRoleService, RolesComponent } from '@abp/ng.identity';
+import { eIdentityComponents, RolesComponent } from '@abp/ng.identity';
+import { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';
import { ePermissionManagementComponents } from '@abp/ng.permission-management';
import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared';
import {
@@ -232,7 +233,7 @@ We have added the `abp-page-toolbar`, `abp-extensible-table`, and `abp-extensibl
You should import the required modules for the `MyRolesComponent` to `MyRolesModule`. Open the `src/my-roles/my-roles.module.ts` file and replace the content with the following:
```js
-import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
+import { ExtensibleModule } from '@abp/ng.components/extensible';
import { NgModule } from '@angular/core';
import { SharedModule } from '../shared/shared.module';
import { MyRolesComponent } from './my-roles.component';
@@ -240,13 +241,13 @@ import { PermissionManagementModule } from '@abp/ng.permission-management';
@NgModule({
declarations: [MyRolesComponent],
- imports: [SharedModule, UiExtensionsModule, PermissionManagementModule],
+ imports: [SharedModule, ExtensibleModule, PermissionManagementModule],
exports: [MyRolesComponent],
})
export class MyRolesModule {}
```
-- `UiExtensionsModule` imported to be able to use the extension components in your component.
+- `ExtensionsModule` imported to be able to use the extension components in your component.
- `PermissionManagementModule` imported to be able to use the `abp-permission-*management` in your component.
As the last step, it is needs to be replaced the `RolesComponent` with the `MyRolesComponent`. Open the `app.component.ts` and modify its content as shown below:
diff --git a/docs/en/framework/ui/angular/service-proxies.md b/docs/en/framework/ui/angular/service-proxies.md
index 99e6e781c2..695e3027c4 100644
--- a/docs/en/framework/ui/angular/service-proxies.md
+++ b/docs/en/framework/ui/angular/service-proxies.md
@@ -1,4 +1,4 @@
-## Service Proxies
+# Service Proxies
Calling a REST endpoint from Angular applications is common. We usually create **services** matching server-side controllers and **interfaces** matching [DTOs](../../architecture/domain-driven-design/data-transfer-objects.md) to interact with the server. This often results in manually transforming C# code into TypeScript equivalents and that is unfortunate, if not intolerable.
diff --git a/docs/en/framework/ui/angular/theming.md b/docs/en/framework/ui/angular/theming.md
index 58323bb661..1940fc331b 100644
--- a/docs/en/framework/ui/angular/theming.md
+++ b/docs/en/framework/ui/angular/theming.md
@@ -20,7 +20,7 @@ Currently, three themes are **officially provided**:
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
-* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices.
+* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/angular.md) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices.
## Overall
diff --git a/docs/en/framework/ui/index.md b/docs/en/framework/ui/index.md
new file mode 100644
index 0000000000..760a2616b0
--- /dev/null
+++ b/docs/en/framework/ui/index.md
@@ -0,0 +1,9 @@
+## ABP UI Options
+
+ABP provides several options for building the user interface (UI) in your applications. Here are some of the officially supported UI options you can use with ABP:
+
+* [MVC / Razor Pages](./mvc-razor-pages/overall.md)
+* [Blazor](./blazor/overall.md)
+* [Angular](./angular/quick-start.md)
+* [React Native](./react-native/index.md)
+* [MAUI](./maui/index.md)
\ No newline at end of file
diff --git a/docs/en/framework/ui/maui/index.md b/docs/en/framework/ui/maui/index.md
index 2c940b8b90..69f9518e92 100644
--- a/docs/en/framework/ui/maui/index.md
+++ b/docs/en/framework/ui/maui/index.md
@@ -64,19 +64,19 @@ The MAUI template consists of four pages:
### Homepage
-
+
### Users Page
-
+
### Tenants Page
-
+
### Settings Page
-
+
## Run the Mobile Application
@@ -100,4 +100,4 @@ There is no custom step for publishing your app. You can follow the official doc
- [Windows](https://learn.microsoft.com/en-us/dotnet/maui/windows/deployment/overview?view=net-maui-8.0)
ABP template uses **Secure Storage** to store access & refresh tokens. So, make sure you have completed the following section for each platform to use it in production:
-- [Secure Storage - Get Started](https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/storage/secure-storage?view=net-maui-8.0&tabs=android#get-started)
\ No newline at end of file
+- [Secure Storage - Get Started](https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/storage/secure-storage?view=net-maui-8.0&tabs=android#get-started)
diff --git a/docs/en/framework/ui/mvc-razor-pages/client-side-package-management.md b/docs/en/framework/ui/mvc-razor-pages/client-side-package-management.md
index 2e7515884a..bb984a001f 100644
--- a/docs/en/framework/ui/mvc-razor-pages/client-side-package-management.md
+++ b/docs/en/framework/ui/mvc-razor-pages/client-side-package-management.md
@@ -1,5 +1,5 @@
-## ASP.NET Core MVC Client Side Package Management
+# ASP.NET Core MVC Client Side Package Management
ABP can work with any type of client side package management systems. You can even decide to use no package management system and manage your dependencies manually.
diff --git a/docs/en/framework/ui/mvc-razor-pages/overall.md b/docs/en/framework/ui/mvc-razor-pages/overall.md
index b6e85bfd15..657fb42df7 100644
--- a/docs/en/framework/ui/mvc-razor-pages/overall.md
+++ b/docs/en/framework/ui/mvc-razor-pages/overall.md
@@ -36,7 +36,7 @@ Currently, three themes are **officially provided**:
* The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
-* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/mvc) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices.
+* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/mvc.md) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices.
There are also some community-driven themes for the ABP (you can search on the web).
diff --git a/docs/en/framework/ui/mvc-razor-pages/security-headers.md b/docs/en/framework/ui/mvc-razor-pages/security-headers.md
index 56cde05005..a54697aca4 100644
--- a/docs/en/framework/ui/mvc-razor-pages/security-headers.md
+++ b/docs/en/framework/ui/mvc-razor-pages/security-headers.md
@@ -38,7 +38,7 @@ Security Headers middleware is an ASP.NET Core request pipeline [middleware](htt
app.UseAbpSecurityHeaders();
```
-> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](https://docs.abp.io/en/commercial/latest/startup-templates/index), so you don't need to manually add it if you are using one of these startup templates.
+> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](../../../solution-templates/index.md), so you don't need to manually add it if you are using one of these startup templates.
After that, you have registered the `UseAbpSecurityHeaders` middleware into the request pipeline, the defined security headers will be shown in the response headers as in the figure below:
diff --git a/docs/en/framework/ui/mvc-razor-pages/theming.md b/docs/en/framework/ui/mvc-razor-pages/theming.md
index 9cddf1ba96..895032f1d7 100644
--- a/docs/en/framework/ui/mvc-razor-pages/theming.md
+++ b/docs/en/framework/ui/mvc-razor-pages/theming.md
@@ -21,7 +21,7 @@ Currently, four themes are **officially provided**:
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [LeptonX Lite Theme](../../../ui-themes/lepton-x-lite/asp-net-core.md) is modern and stylish Bootstrap UI theme. It is ideal if you want to have a production ready UI theme. It is also **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
-* The [LeptonX Theme](https://docs.abp.io/en/commercial/latest/themes/lepton-x/index) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0.
+* The [LeptonX Theme](../../../ui-themes/lepton-x/index.md) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0.
There are also some community-driven themes for the ABP (you can search on the web).
diff --git a/docs/en/get-started/console.md b/docs/en/get-started/console.md
index df06fc33de..6a17784380 100644
--- a/docs/en/get-started/console.md
+++ b/docs/en/get-started/console.md
@@ -10,12 +10,14 @@ First, install the [ABP CLI](../cli) if you haven't installed before:
dotnet tool install -g Volo.Abp.Studio.Cli
````
-Then use the `abp new` command in an empty folder to create a new solution:
+Then use the `abp new` command in an empty folder to create a new solution (with the `--old` parameter at the end of the command):
````bash
-abp new Acme.MyConsoleApp -t console
+abp new Acme.MyConsoleApp -t console --old
````
+> **Note**: Since this startup template is not provided by the new ABP Studio Templates yet, you need to pass the `--old` parameter at the end of the command to use the old CLI & templating system for this startup template.
+
`Acme.MyConsoleApp` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming.
## Solution Structure
diff --git a/docs/en/get-started/layered-web-application.md b/docs/en/get-started/layered-web-application.md
index 76afeb6dab..43a067ed6a 100644
--- a/docs/en/get-started/layered-web-application.md
+++ b/docs/en/get-started/layered-web-application.md
@@ -11,6 +11,34 @@
In this quick start guide, you will learn how to create and run a layered (and potentially modular) web application using [ABP Studio](../studio/index.md).
+## Setup your development environment
+
+First things first! Let's setup your development environment before creating the first project.
+
+### Pre-requirements
+
+The following tools should be installed on your development machine:
+
+* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor)
+* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
+{{ if UI != "Blazor" }}
+* [Node v16 or v18](https://nodejs.org/)
+* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node)
+{{ end }}
+{{ if Tiered == "Yes" }}
+* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).
+{{ else }}
+* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option.
+{{ end }}
+
+1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor)
+
+{{ if UI != "Blazor" }}
+
+2 _Yarn v2 works differently and is not supported._ [↩](#a-yarn)
+
+{{ end }}
+
## Creating a New Solution
> 🛈 This document uses [ABP Studio](../studio/index.md) to create new ABP solutions. **ABP Studio** is in the beta version now. If you have any issues, you can use the [ABP CLI](../cli/index.md) to create new solutions. You can also use the [getting started page](https://abp.io/get-started) to easily build ABP CLI commands for new project creations.
diff --git a/docs/en/get-started/single-layer-web-application.md b/docs/en/get-started/single-layer-web-application.md
index ff9868eff9..fc86aad667 100644
--- a/docs/en/get-started/single-layer-web-application.md
+++ b/docs/en/get-started/single-layer-web-application.md
@@ -10,6 +10,34 @@
In this quick start guide, you will learn how to create and run a single layer web application using [ABP Studio](../studio/index.md).
+## Setup your development environment
+
+First things first! Let's setup your development environment before creating the first project.
+
+### Pre-requirements
+
+The following tools should be installed on your development machine:
+
+* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor)
+* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
+{{ if UI != "Blazor" }}
+* [Node v16 or v18](https://nodejs.org/)
+* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node)
+{{ end }}
+{{ if Tiered == "Yes" }}
+* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).
+{{ else }}
+* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option.
+{{ end }}
+
+1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor)
+
+{{ if UI != "Blazor" }}
+
+2 _Yarn v2 works differently and is not supported._ [↩](#a-yarn)
+
+{{ end }}
+
## Creating a New Solution
> 🛈 This document uses [ABP Studio](../studio/index.md) to create new ABP solutions. **ABP Studio** is in the beta version now. If you have any issues, you can use the [ABP CLI](../cli/index.md) to create new solutions. You can also use the [getting started page](https://abp.io/get-started) to easily build ABP CLI commands for new project creations.
diff --git a/docs/en/get-started/wpf.md b/docs/en/get-started/wpf.md
index 8ccaeac181..287119986e 100644
--- a/docs/en/get-started/wpf.md
+++ b/docs/en/get-started/wpf.md
@@ -10,12 +10,14 @@ First, install the [ABP CLI](../cli) if you haven't installed before:
dotnet tool install -g Volo.Abp.Studio.Cli
````
-Then use the `abp new` command in an empty folder to create a new solution:
+Then use the `abp new` command in an empty folder to create a new solution (with the `--old` parameter at the end of the command):
````bash
-abp new Acme.MyWpfApp -t wpf
+abp new Acme.MyWpfApp -t wpf --old
````
+> **Note**: Since this startup template is not provided by the new ABP Studio Templates yet, you need to pass the `--old` parameter at the end of the command to use the old CLI & templating system for this startup template.
+
`Acme.MyWpfApp` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming.
## Solution Structure
diff --git a/docs/en/guides/add-module-to-microservice.md b/docs/en/guides/add-module-to-microservice.md
index 67cf3b1c0d..903440fca3 100644
--- a/docs/en/guides/add-module-to-microservice.md
+++ b/docs/en/guides/add-module-to-microservice.md
@@ -4,13 +4,13 @@
## Adding a module
-After adding a new service to your microservice template by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory:
+After adding a new service to your microservice template by following the [add new microservice guide](../solution-templates/microservice/adding-new-microservices.md), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory:
```powershell
abp add-module CmsKit
```
-> To complete the CmsKit module steps, please have a look [here](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Index).
+> To complete the CmsKit module steps, please have a look [here](../modules/cms-kit/index.md).
After completing the module documentation steps you can build your solution and continue with this documentation.
@@ -20,7 +20,7 @@ dotnet build
## Using the static proxy
-ABP supports [dynamic](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Dynamic-JavaScript-Proxies) and [static](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Static-JavaScript-Proxies) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below:
+ABP supports [dynamic](../framework/ui/mvc-razor-pages/dynamic-javascript-proxies.md) and [static](../framework/ui/mvc-razor-pages/static-javascript-proxies.md) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below:
```csharp
public class ProductServiceHttpApiClientModule : AbpModule
@@ -45,9 +45,9 @@ If the proxy is configured as `AddStaticHttpClientProxies`, you can start creati
abp generate-proxy --type csharp --module cms-kit --url https://localhost:44335
```
-> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/gateways#public-web-gateway)
+> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](../solution-templates/microservice/api-gateways.md)
-> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), it should already be configured to use the static proxy.
+> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](../solution-templates/microservice/adding-new-microservices.md), it should already be configured to use the static proxy.
## Configure Gateways
The microservice template project has two gateway projects.
diff --git a/docs/en/guides/migrating-from-open-source.md b/docs/en/guides/migrating-from-open-source.md
index f0ecbfc22b..35ba91df7a 100644
--- a/docs/en/guides/migrating-from-open-source.md
+++ b/docs/en/guides/migrating-from-open-source.md
@@ -1,6 +1,6 @@
# Migrating from Open Source Templates
-ABP Studio provides a way for users, who already started the development before purchasing a license, to auto-upgrade their solutions with Pro modules. You can use this functionality through ABP Studio UI or ABP Studio CLI:
+[ABP Studio](https://abp.io/studio) provides a way for the users who already started the development before purchasing a license to auto-upgrade their solutions with Pro modules. You can use this functionality through ABP Studio UI or ABP Studio CLI:
* A new button labeled `Upgrade to Pro` will be visible if you have a license but the current solution is created with open-source (free) license.
@@ -9,12 +9,14 @@ ABP Studio provides a way for users, who already started the development before
* Alternatively, you can use the following ABP Studio CLI command to achieve the same functionality:
```bash
- abp upgrade [-t ]
+ abp upgrade [-t ] [options]
Examples:
abp upgrade -t app
- abp upgrade -t app-nolayers
+ abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro
+ abp upgrade -t app-nolayers --audit-logging-ui
+ abp upgrade -t app-nolayers -p D:\MyProjects\MyProject
```
## Changes in the solution
@@ -31,16 +33,14 @@ This command will remove the following modules from your solution:
And install the following modules to your solution:
- Volo.Abp.Account.Pro
-- Volo.Abp.AuditLogging.Pro
- Volo.Abp.Identity.Pro
-- Volo.Abp.OpenIddict.Pro
-- Volo.Saas
-- Volo.Abp.LanguageManagement
-- Volo.Abp.TextTemplateManagement
-- Volo.FileManagement
-- Volo.Chat
-- Volo.Abp.Gdpr
- Volo.Abp.LeptonXTheme
+- Volo.Saas
+- Volo.Abp.OpenIddict.Pro (*Optional*)
+- Volo.Abp.AuditLogging.Pro (*Optional*)
+- Volo.Abp.LanguageManagement (*Optional*)
+- Volo.Abp.TextTemplateManagement (*Optional*)
+- Volo.Abp.Gdpr (*Optional*)
### Other changes
diff --git a/docs/en/guides/ms-multi-tenant-domain-resolving.md b/docs/en/guides/ms-multi-tenant-domain-resolving.md
index 7a7aface92..cb48a63905 100644
--- a/docs/en/guides/ms-multi-tenant-domain-resolving.md
+++ b/docs/en/guides/ms-multi-tenant-domain-resolving.md
@@ -270,6 +270,7 @@ Your request from the browser to the subdomain will be accepted by the ingress-c
Update your charts ingress.yaml files. Ex for **administration-ingress.yaml**:
+{%{
```yaml
spec:
tls:
@@ -303,6 +304,7 @@ spec:
port:
number: 80
```
+}%}
**Update all the application, gateway and microservice ingress.yaml files.** Eventually, when deploy the application, you will be seeing:

@@ -311,6 +313,7 @@ spec:
Navigate to applications, gateways and microservices' **x-deployment.yaml** file and override the newly introduced `TenantDomain` key:
+{%{
```yaml
... Removed for brevity
- name: "TenantDomain" # Add this key
@@ -319,11 +322,13 @@ Navigate to applications, gateways and microservices' **x-deployment.yaml** file
value: "{{ .Values.config.authServer.authority }}"
...
```
+}%}
> **Update all the application, gateway and microservice deployment.yaml files.**
**For AuthServer, also add the WildCardDomains that is used to handle subdomain *redirect* and *post_logout redirect* URIs to the authserver-deployment.yaml file:**
+{%{
```yaml
... Removed for brevity
- name: "TenantDomain"
@@ -348,6 +353,7 @@ Navigate to applications, gateways and microservices' **x-deployment.yaml** file
value: "{{ .Values.wildCardDomains.productService }}"
...
```
+}%}
Afterwards, update the **values.yaml** file for all the sub-charts (administration, authserver etc):
@@ -383,7 +389,7 @@ wildCardDomains:
After updating the **deployment.yaml** and **values.yaml** files of all the application, gateway and microservices' navigate to the **mystore chart values.yaml** file located under the k8s/Mystore/values.yaml that overrides all the sub-charts:
**AuthServer:**
-
+{%{
```yaml
# auth-server sub-chart override
authserver:
@@ -402,11 +408,13 @@ authserver:
saasService: "https://{0}.saas.mystore.dev"
productService: "https://{0}.product.mystore.dev"
```
+}%}
You may also get CORS error when authenticating SwaggerUI of your gateways or microservices. Add Override the AuthServer CORS values with the subdomain to solve this problem:
**identityService:**
+{%{
```yaml
# identity-service sub-chart override
identity:
@@ -416,9 +424,10 @@ identity:
... Removed for brevity
tenantDomain: "https://{0}.identity.mystore.dev"
```
+}%}
**administrationService:**
-
+{%{
```yaml
# administration-service sub-chart override
administration:
@@ -428,9 +437,11 @@ administration:
... Removed for brevity
tenantDomain: "https://{0}.administration.mystore.dev"
```
+}%}
**saasService:**
+{%{
```yaml
# saas-service sub-chart override
saas:
@@ -440,9 +451,9 @@ saas:
... Removed for brevity
tenantDomain: "https://{0}.saas.mystore.dev"
```
-
+}%}
**productService:**
-
+{%{
```yaml
# product-service sub-chart override
product:
@@ -452,9 +463,10 @@ product:
... Removed for brevity
tenantDomain: "https://{0}.product.mystore.dev"
```
+}%}
**gateway-web:**
-
+{%{
```yaml
# saas-service sub-chart override
gateway-web:
@@ -464,9 +476,10 @@ gateway-web:
... Removed for brevity
tenantDomain: "https://{0}.gateway-web.mystore.dev"
```
+}%}
**gateway-web-public:**
-
+{%{
```yaml
# gateway-web-public sub-chart override
gateway-web-public:
@@ -476,9 +489,10 @@ gateway-web-public:
... Removed for brevity
tenantDomain: "https://{0}.gateway-public.mystore.dev"
```
+}%}
**publicweb:**
-
+{%{
```yaml
# Public Web application sub-chart override
publicweb:
@@ -489,9 +503,10 @@ publicweb:
... Removed for brevity
tenantDomain: "https://{0}.mystore.dev"
```
+}%}
**angular:**
-
+{%{
```yaml
# Angular back-office application sub-chart override
angular:
@@ -505,6 +520,7 @@ angular:
strictDiscoveryDocumentValidation: false
skipIssuerCheck: true
```
+}%}
> If you are using Web or BlazorServer application for back-office, it is similar configuration with the public-web application
diff --git a/docs/en/images/abp-book.png b/docs/en/images/abp-book.png
index 7fd6c34c90..28a933349c 100644
Binary files a/docs/en/images/abp-book.png and b/docs/en/images/abp-book.png differ
diff --git a/docs/en/images/angular-template-structure-diagram.png b/docs/en/images/angular-template-structure-diagram.png
index 0715a8e2df..dd7a4e5cc7 100644
Binary files a/docs/en/images/angular-template-structure-diagram.png and b/docs/en/images/angular-template-structure-diagram.png differ
diff --git a/docs/en/images/auditlog-object-diagram.png b/docs/en/images/auditlog-object-diagram.png
index f89c110147..cfca7cd46b 100644
Binary files a/docs/en/images/auditlog-object-diagram.png and b/docs/en/images/auditlog-object-diagram.png differ
diff --git a/docs/en/images/deployment-clustered.png b/docs/en/images/deployment-clustered.png
index f640d55957..2697b9e7a1 100644
Binary files a/docs/en/images/deployment-clustered.png and b/docs/en/images/deployment-clustered.png differ
diff --git a/docs/en/images/deployment-single-instance.png b/docs/en/images/deployment-single-instance.png
index 50b904baf8..4224ce53ac 100644
Binary files a/docs/en/images/deployment-single-instance.png and b/docs/en/images/deployment-single-instance.png differ
diff --git a/docs/en/images/generic-repositories.png b/docs/en/images/generic-repositories.png
index 676ddb7976..6287afc56c 100644
Binary files a/docs/en/images/generic-repositories.png and b/docs/en/images/generic-repositories.png differ
diff --git a/docs/en/images/implementing-domain-driven-design-book.png b/docs/en/images/implementing-domain-driven-design-book.png
index 6568b46f66..15de3f814d 100644
Binary files a/docs/en/images/implementing-domain-driven-design-book.png and b/docs/en/images/implementing-domain-driven-design-book.png differ
diff --git a/docs/en/images/integration-services.png b/docs/en/images/integration-services.png
index 31e95a96d9..edd3a0b517 100644
Binary files a/docs/en/images/integration-services.png and b/docs/en/images/integration-services.png differ
diff --git a/docs/en/images/layered-project-dependencies-blazor-server.png b/docs/en/images/layered-project-dependencies-blazor-server.png
index 8b47243226..747c5e4f0a 100644
Binary files a/docs/en/images/layered-project-dependencies-blazor-server.png and b/docs/en/images/layered-project-dependencies-blazor-server.png differ
diff --git a/docs/en/images/layered-project-dependencies-blazor-wasm.png b/docs/en/images/layered-project-dependencies-blazor-wasm.png
index fc9bb227c5..54678b3c3e 100644
Binary files a/docs/en/images/layered-project-dependencies-blazor-wasm.png and b/docs/en/images/layered-project-dependencies-blazor-wasm.png differ
diff --git a/docs/en/images/layered-project-dependencies-module.png b/docs/en/images/layered-project-dependencies-module.png
index c036cadea6..68dc214ee9 100644
Binary files a/docs/en/images/layered-project-dependencies-module.png and b/docs/en/images/layered-project-dependencies-module.png differ
diff --git a/docs/en/images/layered-project-dependencies.png b/docs/en/images/layered-project-dependencies.png
index 6729c78a75..1d5c4f1195 100644
Binary files a/docs/en/images/layered-project-dependencies.png and b/docs/en/images/layered-project-dependencies.png differ
diff --git a/docs/en/images/module-layers-and-packages.jpg b/docs/en/images/module-layers-and-packages.jpg
deleted file mode 100644
index f71a91eb8d..0000000000
Binary files a/docs/en/images/module-layers-and-packages.jpg and /dev/null differ
diff --git a/docs/en/images/module-layers-and-packages.png b/docs/en/images/module-layers-and-packages.png
new file mode 100644
index 0000000000..f99d95cd83
Binary files /dev/null and b/docs/en/images/module-layers-and-packages.png differ
diff --git a/docs/en/images/multiple-database-usage.png b/docs/en/images/multiple-database-usage.png
index aa5d7595a7..24655fb746 100644
Binary files a/docs/en/images/multiple-database-usage.png and b/docs/en/images/multiple-database-usage.png differ
diff --git a/docs/en/images/payment-module-flow.png b/docs/en/images/payment-module-flow.png
index befda82b20..a24e530d70 100644
Binary files a/docs/en/images/payment-module-flow.png and b/docs/en/images/payment-module-flow.png differ
diff --git a/docs/en/images/payment-module-subscription-flow.png b/docs/en/images/payment-module-subscription-flow.png
index af345e51ba..080559e5af 100644
Binary files a/docs/en/images/payment-module-subscription-flow.png and b/docs/en/images/payment-module-subscription-flow.png differ
diff --git a/docs/en/images/react-native-navigation-structure.png b/docs/en/images/react-native-navigation-structure.png
index 816b556600..0b499257fc 100644
Binary files a/docs/en/images/react-native-navigation-structure.png and b/docs/en/images/react-native-navigation-structure.png differ
diff --git a/docs/en/images/single-database-usage.png b/docs/en/images/single-database-usage.png
index 4015cd1d75..286c816a50 100644
Binary files a/docs/en/images/single-database-usage.png and b/docs/en/images/single-database-usage.png differ
diff --git a/docs/en/images/tiered-solution-applications-authserver.png b/docs/en/images/tiered-solution-applications-authserver.png
index c46cdc2314..1b79af73d0 100644
Binary files a/docs/en/images/tiered-solution-applications-authserver.png and b/docs/en/images/tiered-solution-applications-authserver.png differ
diff --git a/docs/en/images/tiered-solution-applications.png b/docs/en/images/tiered-solution-applications.png
index bad5284819..77eb23752e 100644
Binary files a/docs/en/images/tiered-solution-applications.png and b/docs/en/images/tiered-solution-applications.png differ
diff --git a/docs/en/images/tiered-solution-servers.png b/docs/en/images/tiered-solution-servers.png
index 8585a350bd..77233195d3 100644
Binary files a/docs/en/images/tiered-solution-servers.png and b/docs/en/images/tiered-solution-servers.png differ
diff --git a/docs/en/modules/audit-logging-pro.md b/docs/en/modules/audit-logging-pro.md
index 1719bf51a5..ef609e5422 100644
--- a/docs/en/modules/audit-logging-pro.md
+++ b/docs/en/modules/audit-logging-pro.md
@@ -115,7 +115,7 @@ To see `AbpAuditingOptions` properties, please see its [documentation](../framew
### ExpiredAuditLogDeleterOptions
-`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Example:
+`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](../framework/architecture/modularity/basics.md). Example:
```csharp
Configure(options =>
@@ -241,7 +241,7 @@ You can modify the look and behavior of the module pages by passing the followin
#### Services / Models
-Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI). If you need the module's proxies, you can run the following command in the Angular project directory:
+Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](../cli/index.md). If you need the module's proxies, you can run the following command in the Angular project directory:
```bash
abp generate-proxy --module auditLogging
diff --git a/docs/en/modules/cms-kit-pro/contact-form.md b/docs/en/modules/cms-kit-pro/contact-form.md
index 45756dc342..fcfa4a2582 100644
--- a/docs/en/modules/cms-kit-pro/contact-form.md
+++ b/docs/en/modules/cms-kit-pro/contact-form.md
@@ -6,7 +6,7 @@ CMS Kit provides a widget to create a contact form on your website.
## Enabling the Contact Management System
-By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://docs.abp.io/en/abp/latest/Global-Features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP's [Feature System](https://docs.abp.io/en/abp/latest/Features) to disable a CMS Kit feature on runtime.
+By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](../framework/infrastructure/global-features.md) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP's [Feature System](../framework/infrastructure/features.md) to disable a CMS Kit feature on runtime.
> Check the ["How to Install" section of the CMS Kit Module documentation](index.md#how-to-install) to see how to enable/disable CMS Kit features on development time.
diff --git a/docs/en/modules/cms-kit-pro/faq.md b/docs/en/modules/cms-kit-pro/faq.md
index 29699862d7..a153b3fee5 100644
--- a/docs/en/modules/cms-kit-pro/faq.md
+++ b/docs/en/modules/cms-kit-pro/faq.md
@@ -8,7 +8,7 @@ The CMS kit provides a **FAQ** system to allow users to create, edit and delete
## Enabling the FAQ System
-By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://docs.abp.io/en/abp/latest/Global-Features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](https://docs.abp.io/en/abp/latest/Features) to disable a CMS Kit feature on runtime.
+By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](../../framework/infrastructure/global-features.md) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](../../framework/infrastructure/features.md) to disable a CMS Kit feature on runtime.
> Check the ["How to Install" section of the CMS Kit Module documentation](index.md#how-to-install) to see how to enable/disable CMS Kit features on development time.
@@ -32,7 +32,7 @@ You can list, create, update and delete sections and their questions FAQ's on th
## Faq Widget
-The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) for users to display FAQ's. You can place the widget on a page like below:
+The FAQ system provides a FAQ [widget](../../framework/ui/mvc-razor-pages/widgets.md) for users to display FAQ's. You can place the widget on a page like below:
```csharp
@await Component.InvokeAsync(
@@ -48,11 +48,11 @@ The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspN
- `groupName` (optional): It allows to specify which FAQ group to show. If not specified, all groups will be shown.
- `sectionName` (optional): It is used to determine which section within the specified group will be shown. If not specified, all sections in the related group will be shown.
-The FAQ system can also be used in combination with the [dynamic widget](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Dynamic-Widget) feature.
+The FAQ system can also be used in combination with the [dynamic widget](../cms-kit/dynamic-widget.md) feature.
## Options
-The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics).
+The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module]../../framework/architecture/modularity/basics.md).
```csharp
Configure(options =>
@@ -71,7 +71,7 @@ Configure(options =>
#### Aggregates
-This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide.
+This module follows the [Entity Best Practices & Conventions](../../framework/architecture/best-practices/entities.md) guide.
##### FAQ
@@ -82,7 +82,7 @@ A FAQ represents a generated FAQ with its questions:
#### Repositories
-This module follows the guidelines of [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories).
+This module follows the guidelines of [Repository Best Practices & Conventions](../../framework/architecture/best-practices/repositories.md).
The following special repositories are defined for these features:
@@ -92,7 +92,7 @@ The following special repositories are defined for these features:
#### Domain services
-This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide.
+This module follows the [Domain Services Best Practices & Conventions](../../framework/architecture/best-practices/domain-services.md) guide.
### Application layer
@@ -115,7 +115,7 @@ All tables/collections use the `Cms` prefix by default. Set static properties on
This module uses `CmsKit` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string.
-See the [connection strings](https://docs.abp.io/en/abp/latest/Connection-Strings) documentation for details.
+See the [connection strings](../../framework/fundamentals/connection-strings.md) documentation for details.
#### Entity Framework Core
diff --git a/docs/en/modules/cms-kit/comments.md b/docs/en/modules/cms-kit/comments.md
index 2daa92b085..8ff8ff5ba8 100644
--- a/docs/en/modules/cms-kit/comments.md
+++ b/docs/en/modules/cms-kit/comments.md
@@ -92,7 +92,7 @@ You can configure the approval status of comments using the "Comment" tab under
#### Aggregates
-This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide.
+This module follows the [Entity Best Practices & Conventions](../../framework/architecture/best-practices/entities.md) guide.
##### Comment
@@ -102,7 +102,7 @@ A comment represents a written comment from a user.
#### Repositories
-This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide.
+This module follows the [Repository Best Practices & Conventions](../../framework/architecture/best-practices/repositories.md) guide.
The following custom repositories are defined for this feature:
@@ -110,7 +110,7 @@ The following custom repositories are defined for this feature:
#### Domain services
-This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide.
+This module follows the [Domain Services Best Practices & Conventions](../../framework/architecture/best-practices/domain-services.md) guide.
##### Comment Manager
diff --git a/docs/en/modules/database-tables.md b/docs/en/modules/database-tables.md
index 0fce394470..ad8c66d684 100644
--- a/docs/en/modules/database-tables.md
+++ b/docs/en/modules/database-tables.md
@@ -248,7 +248,7 @@ This table stores the values of the features for different providers. You can us
### FmDirectoryDescriptors
-This table is utilized by the [File Management system](file-management.md) to manage directories by using the [BlobStoring](https://docs.abp.io/en/abp/latest/Blob-Storing) module.
+This table is utilized by the [File Management system](file-management.md) to manage directories by using the [BlobStoring](../framework/infrastructure/blob-storing/index.md) module.
#### Foreign Keys
diff --git a/docs/en/modules/identity.md b/docs/en/modules/identity.md
index b9c19fe198..46c6a671c1 100644
--- a/docs/en/modules/identity.md
+++ b/docs/en/modules/identity.md
@@ -252,7 +252,7 @@ Following custom repositories are defined for this module:
##### Claim type manager
-`IdenityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root.
+`IdentityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root.
##### Organization unit manager
diff --git a/docs/en/modules/identity/session-management.md b/docs/en/modules/identity/session-management.md
index c68f034c18..e911146081 100644
--- a/docs/en/modules/identity/session-management.md
+++ b/docs/en/modules/identity/session-management.md
@@ -53,4 +53,5 @@ This feature depends on the [Dynamic Claims](https://docs.abp.io/en/abp/latest/D
* The module will remove the session when logging out.
* The `IdentitySessionCleanupBackgroundWorker` will remove the inactive sessions.
* Once a new session has been created, we will remove the other sessions based on the `PreventConcurrentLogin` setting.
-* The `IdentitySessionManager` is used to manage/maintain the sessions. Please use this class instead of directly using the repository.
\ No newline at end of file
+* The `IdentitySessionManager` is used to manage/maintain the sessions. Please use this class instead of directly using the repository.
+* The `UpdateSessionAfterCacheHit(10 times by default)` property of `IdentitySessionCheckerOptions` is used to configure the `IdentitySessionChecker` that will update session in the database when cache hits reach this value. This is to reduce the database update frequency and improve performance.
diff --git a/docs/en/modules/payment.md b/docs/en/modules/payment.md
index c868f7b02a..b3fb6de84b 100644
--- a/docs/en/modules/payment.md
+++ b/docs/en/modules/payment.md
@@ -15,7 +15,7 @@ Payment module is not installed in [the startup templates](../solution-templates
### Using ABP CLI
-ABP CLI allows adding a module to a solution using ```add-module``` command. You can check its [documentation](https://docs.abp.io/en/abp/latest/CLI#add-module) for more information. So, payment module can be added using the command below;
+ABP CLI allows adding a module to a solution using ```add-module``` command. You can check its [documentation](../cli#add-module) for more information. So, payment module can be added using the command below;
```bash
abp add-module Volo.Payment
diff --git a/docs/en/modules/text-template-management.md b/docs/en/modules/text-template-management.md
index 46b3784f5d..9b2235314f 100644
--- a/docs/en/modules/text-template-management.md
+++ b/docs/en/modules/text-template-management.md
@@ -2,7 +2,7 @@
> You must have an ABP Team or a higher license to use this module.
-This module is used to store and edit template contents for [the text templating system](https://docs.abp.io/en/abp/latest/Text-Templating) of the ABP. So, you may need to understand it to better understand the purpose of this module.
+This module is used to store and edit template contents for [the text templating system](../framework/infrastructure/text-templating/index.md) of the ABP. So, you may need to understand it to better understand the purpose of this module.
There are different use cases of the text templating system. For example, [the Account Module](account.md) is using it to define templates for sending emails when it needs to send emails to users (like sending "password reset link" email). This module provides UI to easily edit these email templates.
diff --git a/docs/en/release-info/index.md b/docs/en/release-info/index.md
new file mode 100644
index 0000000000..eb6a4ef602
--- /dev/null
+++ b/docs/en/release-info/index.md
@@ -0,0 +1,9 @@
+## Release Information
+
+* [Release Notes](./release-notes.md)
+* [Migration Guides](./migration-guides/index.md)
+* [Road Map](./road-map.md)
+* [Upgrading](./upgrading.md)
+* [Preview Releases](./previews.md)
+* [Nightly Releases](./nightly-builds.md)
+* [Official Packages](https://abp.io/packages)
\ No newline at end of file
diff --git a/docs/en/release-info/migration-guides/abp-8-2.md b/docs/en/release-info/migration-guides/abp-8-2.md
index 0a70af9796..cd904f052e 100644
--- a/docs/en/release-info/migration-guides/abp-8-2.md
+++ b/docs/en/release-info/migration-guides/abp-8-2.md
@@ -51,8 +51,13 @@ If the flag icon has been specified while defining the localization languages, t
In this version, ABP Framework provides a new UI option called **Blazor Full-Stack WebApp**. We have already created an introduction/migration guide for you to check it: [Migrating to Blazor Web App](abp-8-2-blazor-web-app.md)
> Please read the documentation carefully if you are considering migrating your existing **Blazor** project to **Blazor WebApp**.
+
+## Angular UI
+
+In this version, the Angular UI has been updated to use the Angular version 17.3.0 and Nx version to 19.0.0. See the PR for more information: [#19915](https://github.com/abpframework/abp/pull/19915/)
+
## Session Management Infrastructure
The **Session Management** feature allows you to prevent concurrent login and manage user sessions.
-In this version, a new entity called `IdentitySession` has been added to the framework and you should create a new migration and apply it to your database.
+In this version, a new entity called `IdentitySession` has been added to the framework and you should create a new migration and apply it to your database.
\ No newline at end of file
diff --git a/docs/en/release-info/migration-guides/openiddict-step-by-step.md b/docs/en/release-info/migration-guides/openiddict-step-by-step.md
index e174f0dfb5..04866180ad 100644
--- a/docs/en/release-info/migration-guides/openiddict-step-by-step.md
+++ b/docs/en/release-info/migration-guides/openiddict-step-by-step.md
@@ -9,8 +9,8 @@ On the other hand, Identity Server ends support for the open-source Identity Ser
## Commercial Template
-If you are using a commercial template, please check [Migrating from IdentityServer to OpenIddict for the Commercial Templates](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-step-by-step) guide.
-If you are using the microservice template, please check [Migrating the Microservice Template from IdentityServer to OpenIddict](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-microservice) guide.
+If you are using a commercial template, please check [Migrating from IdentityServer to OpenIddict for the Commercial Templates](https://abp.io/docs/commercial/6.0/migration-guides/openIddict-step-by-step) guide.
+If you are using the microservice template, please check [Migrating the Microservice Template from IdentityServer to OpenIddict](https://abp.io/docs/commercial/6.0/migration-guides/openIddict-microservice) guide.
## OpenIddict Migration Steps
@@ -258,7 +258,7 @@ for creating the host builder.
## Source code of samples and module
* [Open source tiered & separate auth server application migrate Identity Server to OpenIddict](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId)
-* [OpenIddict module document](https://docs.abp.io/en/abp/6.0/Modules/OpenIddict)
+* [OpenIddict module document](../../modules/openiddict.md)
* [OpenIddict module source code](https://github.com/abpframework/abp/tree/rel-6.0/modules/openiddict)
## See Also
diff --git a/docs/en/release-info/migration-guides/pro/openiddict-mvc.md b/docs/en/release-info/migration-guides/pro/openiddict-mvc.md
index 3aceab4864..620e715c6a 100644
--- a/docs/en/release-info/migration-guides/pro/openiddict-mvc.md
+++ b/docs/en/release-info/migration-guides/pro/openiddict-mvc.md
@@ -261,6 +261,7 @@ This project is renamed to **AuthServer** after v6.0.0. You can also refactor an
"RequireHttpsMetadata": "false",
"SwaggerClientId": "MyApplication_Swagger"
},
+ ```
## See Also
diff --git a/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md b/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md
index e08fce2660..9934aad753 100644
--- a/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md
+++ b/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md
@@ -372,7 +372,7 @@ dotnet ef migrations add AbpOpenIddictMigration
* [Open source tiered & separate auth server application migrate Identity Server to OpenIddct](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId)
* [Commercial tiered & separate auth server application migrate Identity Server to OpenIddct](https://abp.io/Account/Login?returnUrl=/api/download/samples/Ids2OpenId)
-* [OpenIddict module document](https://docs.abp.io/en/abp/6.0/Modules/OpenIddict)
+* [OpenIddict module document](https://abp.io/docs/6.0/Modules/OpenIddict)
* [OpenIddict module source code](https://github.com/abpframework/abp/tree/rel-6.0/modules/openiddict)
## See Also
diff --git a/docs/en/release-info/release-notes.md b/docs/en/release-info/release-notes.md
index 8d9491e2bb..d091a5840b 100644
--- a/docs/en/release-info/release-notes.md
+++ b/docs/en/release-info/release-notes.md
@@ -295,7 +295,7 @@ See the detailed **[blog post / announcement](https://abp.io/blog/ABP-Framework-
* Performance improvements (pre-compiling razor pages).
* New **Organization Unit** Management UI for the [Identity Module](https://abp.io/modules/Volo.Identity.Pro) to create hierarchical organization units and manage their members and roles.
* Created **Angular UI** for the [Chat Module](https://abp.io/modules/Volo.Chat).
-* Implemented **Angular UI** for the [Easy CRM](https://docs.abp.io/en/commercial/latest/samples/easy-crm) application.
+* Implemented **Angular UI** for the [Easy CRM](../samples/easy-crm.md) application.
* [ABP Suite](https://abp.io/tools/suite) code generation support for **module development**.
* New [leptontheme.com](http://leptontheme.com/) web site to show the **[Lepton Theme](https://abp.io/themes) components**.
diff --git a/docs/en/release-info/road-map.md b/docs/en/release-info/road-map.md
index 7bba375001..6c14efefda 100644
--- a/docs/en/release-info/road-map.md
+++ b/docs/en/release-info/road-map.md
@@ -4,18 +4,17 @@ This document provides a road map, release schedule, and planned features for th
## Next Versions
-### v8.2
+### v8.3
-The next version will be 8.2 and planned to release the stable 8.2 version in June 2024. We will be mostly working on the following topics:
+The next version will be 8.3 and we will be mostly working on the following topics:
-* ABP Studio Community Edition
-* Blazor Full-Stack UI ([#18289](https://github.com/abpframework/abp/issues/18289))
-* Angular Universal ([#15782](https://github.com/abpframework/abp/issues/15782))
-* Upgrading React Native template to the latest major release 0.72.7 ([#18191](https://github.com/abpframework/abp/issues/18191))
-* Deployment Documents Improvements ([#15034](https://github.com/abpframework/abp/issues/15034))
-* Improvements on the existing features and provide more guides.
+* CMS Kit: Marked Items/Favorites & Approvement System for Comments
+* Docs Module: Added Google Translation Support & Introducing the Single Project Mode
+* Using DBFunction for Global Query Filters
+* Upgrade Angular Version to v18.1.x
+* Improvements on the existing features and provide more guides...
-See the [8.2 milestone](https://github.com/abpframework/abp/milestone/95) for all the issues we've planned to work on.
+See the [8.3 milestone](https://github.com/abpframework/abp/milestone/106) for all the issues we've planned to work on.
## Backlog Items
diff --git a/docs/en/samples/index.md b/docs/en/samples/index.md
index 5adf0ac6a8..619eb81484 100644
--- a/docs/en/samples/index.md
+++ b/docs/en/samples/index.md
@@ -27,13 +27,13 @@ A simple CRUD application to show basic principles of developing an application
The following samples uses only the open source (free) modules.
* **Book Store: Razor Pages UI & Entity Framework Core**
- * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF)
+ * [Tutorial](../tutorials/book-store/part-01.md?UI=MVC&DB=EF)
* [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Mvc-EfCore)
* **Book Store: Blazor UI & Entity Framework Core**
- * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=Blazor&DB=EF)
+ * [Tutorial](../tutorials/book-store/part-01.md?UI=Blazor&DB=EF)
* [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore)
* **Book Store: Angular UI & MongoDB**
- * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=NG&DB=Mongo)
+ * [Tutorial](../tutorials/book-store/part-01.md?UI=NG&DB=Mongo)
* [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb)
* **Book Store: Modular application (Razor Pages UI & EF Core)**
* [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Modular)
@@ -43,13 +43,13 @@ The following samples uses only the open source (free) modules.
The following samples uses the pro modules.
- **Book Store: Razor Pages (MVC) UI & Entity Framework Core**
- - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=MVC&DB=EF)
+ - [Tutorial](../tutorials/book-store/part-01.md?UI=MVC&DB=EF)
- [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-mvc-ef)
- **Book Store: Blazor UI & Entity Framework Core**
- - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=Blazor&DB=EF)
+ - [Tutorial](../tutorials/book-store/part-01.md?UI=Blazor&DB=EF)
- [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-blazor-efcore)
- **Book Store: Angular UI & MongoDB**
- - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=NG&DB=Mongo)
+ - [Tutorial](../tutorials/book-store/part-01.md?UI=NG&DB=Mongo)
- [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-angular-mongodb)
## Other Samples
diff --git a/docs/en/studio/concepts.md b/docs/en/studio/concepts.md
index 5f23150cf1..995519e191 100644
--- a/docs/en/studio/concepts.md
+++ b/docs/en/studio/concepts.md
@@ -5,7 +5,7 @@
{
"Next": {
"Name": "Overview",
- "Path": "studio/overview.md"
+ "Path": "studio/overview"
}
}
````
@@ -46,4 +46,4 @@ Some ABP Studio terms may seem conflict with .NET and Visual Studio. To make the
| Module | Solution |
| Package | Project |
-In essence, ABP Studio uses the solution term to cover all the .NET solutions and other components of your product. ABP Studio is used to build and manage the relations of these multiple .NET solutions and provides a high-level view of the whole system.
\ No newline at end of file
+In essence, ABP Studio uses the solution term to cover all the .NET solutions and other components of your product. ABP Studio is used to build and manage the relations of these multiple .NET solutions and provides a high-level view of the whole system.
diff --git a/docs/en/studio/images/abp-studio-switch-to-preview.png b/docs/en/studio/images/abp-studio-switch-to-preview.png
new file mode 100644
index 0000000000..32f6d01edb
Binary files /dev/null and b/docs/en/studio/images/abp-studio-switch-to-preview.png differ
diff --git a/docs/en/studio/kubernetes.md b/docs/en/studio/kubernetes.md
index c6722dfc37..666fdf0a99 100644
--- a/docs/en/studio/kubernetes.md
+++ b/docs/en/studio/kubernetes.md
@@ -25,6 +25,11 @@ The *Kubernetes* panel is available only in the [business and enterprise](https:
* [Docker Desktop](https://www.docker.com/products/docker-desktop) (Enable Kubernetes option if not working with a real cluster)
* [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/deploy)
* [mkcert](https://www.ibm.com/docs/en/fsmmn?topic=commands-mkcert)
+ * When you are installing the `mkcert` to allow ABP Studio to generate certificates for you, please ensure that `mkcert` is installed on the **Trusted Certificate Store** by running the following command (on **Windows**, this command must be executed with *Administrator* priviliges):
+
+ ```bash
+ mkcert -install
+ ```
## Profile
diff --git a/docs/en/studio/monitoring-applications.md b/docs/en/studio/monitoring-applications.md
index b7a67e2f63..645df15418 100644
--- a/docs/en/studio/monitoring-applications.md
+++ b/docs/en/studio/monitoring-applications.md
@@ -5,7 +5,7 @@
{
"Next": {
"Name": "Working with Kubernetes",
- "Path": "studio/kubernetes.md"
+ "Path": "studio/kubernetes"
}
}
````
diff --git a/docs/en/studio/overview.md b/docs/en/studio/overview.md
index 15f6615883..ecfdda52bc 100644
--- a/docs/en/studio/overview.md
+++ b/docs/en/studio/overview.md
@@ -35,13 +35,14 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun
### ABP Suite
-[ABP Suite](https://abp.io/tools/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio.
+[ABP Suite](https://abp.io/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio.
### Tools Menu
- **Options**
- - **Theme:** Allows to change UI theme.
-- **Extensions:** Opens the extension management window.
+ - **Theme:** Allows to change UI theme.
+- **Global secrets**: Allows to add global secrets.
+- **Global metadata**: Allows to add global metadata.
### Help Menu
@@ -50,6 +51,7 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun
- **Community:** Opens the official [ABP Community](https://abp.io/community) website in your browser.
- **Support:** Opens the official [Support](https://abp.io/support/questions) website in your browser.
- **My Support Questions:** Opens the page on the official Support website in your browser showing the tickets you have opened.
+- **Check for updates:** Checks for new version of ABP Studio.
- **About:** Opens the about window of ABP Studio where you can get more information about it.
## Welcome Screen
diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md
new file mode 100644
index 0000000000..f30d4855af
--- /dev/null
+++ b/docs/en/studio/release-notes.md
@@ -0,0 +1,99 @@
+# ABP Studio Release Notes
+
+This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version.
+
+## 0.8.0 (2024-09-11)
+
+* Added `Blazor WebApp UI` to **app-nolayers** and **microservice** templates
+* Fixed version problem for bundle command
+* Fixed optional module integrations
+* Added **LeptonX Theme** to module-list
+* Fixed bug related to Kubernetes user-specified connection
+
+## 0.7.9 (2024-08-29)
+
+* Opened Readme.md file after module creation or opening a solution
+* Refactor & made enhancements to microservice template
+* Fixed some bugs that occur while creating a new module
+* Synchronized new templates with the old templates
+* Angular: Fixed logo problem in templates
+
+## 0.7.8 (2024-08-23)
+
+* Revised the new solution creation wizard and improved for UX
+* Fixed bugs on the Blazor WebApp template
+* Reduced logs count per application
+
+## 0.7.7 (2024-08-14)
+
+* Updated LeptonX logos in new templates
+* ABP Suite: Opened modules with .sln path instead of directory (fixes some problems in Suite integration)
+* Enhancements on Solution Runner
+
+## 0.7.6 (2024-08-12)
+
+* Removed redundant helm repo installation
+* Made enhancements to the Welcome Page area
+* Microservice Template: Enabled `DynamicPermissionStore` in AuthServer
+* Added Blazor WebApp option for Application template
+* Added **Solution Creation Info** action for identifying the solution
+
+## 0.7.5 (2024-08-06)
+
+* Fixed ABP Suite integration for macOS
+* Fixed build errors after upgrading to ABP 8.2.1
+* ABP Suite: Detected version inconsistencies and notified users to fix them automatically
+
+## 0.7.4 (2024-07-31)
+
+* Allowed creating open-source templates for active license owners
+* Fixed basic theme problems in angular templates
+* Handled docker related errors in solution runner
+* Fixed versions of Chat Module packages
+
+## 0.7.3 (2024-07-27)
+
+* Added administrator mode indicator on the application title
+* Made enhancements for aligning application title on macOS
+
+## 0.7.2 (2024-07-26)
+
+* Added `Blazor.Client` packages for alignment with new hosting logic
+* Updated Microsoft packages to v8.0.4
+* Revised application upgrade process
+* Fixed profile photo problem in tiered projects
+* Removed **LinkedAccounts** and **AuthorityDelegation** menu from templates
+
+## 0.7.1 (2024-07-24)
+
+* Fixed restart problem after installing extensions on macOS
+* Provided a model for sharing the same Kubernetes cluster between developers
+* Fixed the **Text Template Management** Module build problem in the app template
+* Fixed login problem for the community edition
+* Fixed all reported bugs & made enhancements
+
+## 0.7.0 (2024-07-17)
+
+* Added an option for building & starting C# applications directly
+* Disabled redis on migrator when the solution is tiered
+* Allowed Generating Static Proxies on ABP Studio UI
+
+## 0.6.9 (2024-06-27)
+
+* Allowed to open ABP Studio by clicking on a `*.abpsln` file
+* Fixed solution runner multiple instance problem
+* Allowed to install an NPM package to a package
+
+## 0.6.8 (2024-06-13)
+
+* Added free to pro upgrade option
+* Fixed microservice template helm chart bugs
+* Made enhancements to the new CLI
+
+## 0.6.7 (2024-05-31)
+
+* Added free option to app templates
+* Made social login optional for the app template
+* Added open-source (free) templates
+* Started showing angular projects on the browser tab
+* Introduced the Community Edition
\ No newline at end of file
diff --git a/docs/en/studio/solution-explorer.md b/docs/en/studio/solution-explorer.md
index cffd268a38..76e3543269 100644
--- a/docs/en/studio/solution-explorer.md
+++ b/docs/en/studio/solution-explorer.md
@@ -157,7 +157,7 @@ ABP modules have their own file extension `.abpmdl`, and they are located in the
### Difference Between ABP Module Template and ABP Studio Module Approach
-In ABP, creating a module solution using the [CLI](https://docs.abp.io/en/commercial/latest/startup-templates/module/creating-a-new-solution) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects.
+In ABP, creating a module solution using the [CLI](../cli/index.md) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects.
Furthermore, it's important to mention that we can create not just DDD-principled modules. The [Modularity](../framework/architecture/modularity/basics.md) document clarifies the difference between *Framework* and *Application* modules. Basically, every C# project refers to the `Volo.Abp.Core` package and defines the *Module* class as an ABP Class Library. We have the option to develop an infrastructure module using only the *ABP Class Library* packages and provide a module reference to other modules.
diff --git a/docs/en/studio/version-compatibility.md b/docs/en/studio/version-compatibility.md
new file mode 100644
index 0000000000..812db493b9
--- /dev/null
+++ b/docs/en/studio/version-compatibility.md
@@ -0,0 +1,16 @@
+# ABP Studio and ABP Solution Templates Version Compatibility
+
+This document provides an overview of the compatibility between various versions of ABP Studio and [ABP Solution Templates](../solution-templates/index.md). Use this reference to ensure that you are using the correct versions of ABP Studio and ABP for your projects.
+
+| **ABP Studio Version** | **ABP Version** |
+|------------------------|---------------------------|
+| 0.8.0 | 8.2.3 |
+| 0.7.8 - 0.7.9 | 8.2.2 |
+| 0.7.4 to 0.7.7 | 8.2.1 |
+| 0.7.0 to 0.7.3 | 8.2.0 |
+| 0.6.8 - 0.6.9 | 8.1.3 |
+| 0.6.7 | 8.1.1 |
+
+By default, ABP Studio uses stable versions to create solutions. Therefore, if you want to create a solution with a preview version, first you need to create a solution and then switch your solution to the preview version from the ABP Studio UI:
+
+
\ No newline at end of file
diff --git a/docs/en/suite/generating-crud-page.md b/docs/en/suite/generating-crud-page.md
index a4a2fcfd6e..8d98bb7df9 100644
--- a/docs/en/suite/generating-crud-page.md
+++ b/docs/en/suite/generating-crud-page.md
@@ -93,7 +93,7 @@ To create a new entity, make sure the *-New entity-* is selected in the **Entity
* **Customizable code**: Specifies hook-points to allow adding custom code blocks. Then, the code blocks that were written by you will not be overridden in the next entity generation and will be respected.
-* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](https://docs.abp.io/{{Document_Language_Code}}/abp/{{Document_Version}}/Multi-Tenancy)
+* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](../framework/architecture/multi-tenancy/index.md)
* If you created your application with *Separated tenant schema* support, then when you enable the multi-tenancy for the entity, database configurations (DbSet definitions and model configurations) will be defined in both `MyProjectNameDbContext` and `MyProjectNameTenantDbContext` (can be used for tenant-specific configurations) classes. Otherwise, the database configurations will only be defined in the `MyProjectNameDbContext` class for the host.
diff --git a/docs/en/tools.md b/docs/en/tools.md
new file mode 100644
index 0000000000..356db9f639
--- /dev/null
+++ b/docs/en/tools.md
@@ -0,0 +1,7 @@
+## Tools
+
+ABP provides a comprehensive set of tools designed to enhance the development experience and improve productivity:
+
+* [ABP CLI](./cli/index.md): Command line tool to perform some common operations for ABP based solutions.
+* [ABP Suite](./suite/index.md): A complementary tool that allows you to build web pages in a matter of minutes.
+* [ABP Studio](./studio/index.md): A cross-platform desktop application for ABP and .NET developers. Aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run, browse, monitor, trace and deploy your solutions much easier.
\ No newline at end of file
diff --git a/docs/en/tutorials/book-store/overview.md b/docs/en/tutorials/book-store/index.md
similarity index 100%
rename from docs/en/tutorials/book-store/overview.md
rename to docs/en/tutorials/book-store/index.md
diff --git a/docs/en/tutorials/book-store/part-05.md b/docs/en/tutorials/book-store/part-05.md
index 15ab2d5a26..947eec65f0 100644
--- a/docs/en/tutorials/book-store/part-05.md
+++ b/docs/en/tutorials/book-store/part-05.md
@@ -29,7 +29,7 @@ ABP provides an [authorization system](../../framework/fundamentals/authorizatio
A permission must have a unique name (a `string`). The best way is to define it as a `const`, so we can reuse the permission name.
-Open the `BookStorePermissions` class inside the `Acme.BookStore.Application.Contracts` project (in the `Permissions` folder) and change the content as shown below:
+Open the `BookStorePermissions` class inside the `Acme.BookStore.Application.Contracts` project (in the `Permissions` folder) and add new permission names:
````csharp
namespace Acme.BookStore.Permissions;
@@ -37,7 +37,11 @@ namespace Acme.BookStore.Permissions;
public static class BookStorePermissions
{
public const string GroupName = "BookStore";
+
+ // other permissions...
+ // other permissions...
+ // *** ADDED a NEW NESTED CLASS ***
public static class Books
{
public const string Default = GroupName + ".Books";
diff --git a/docs/en/tutorials/book-store/part-08.md b/docs/en/tutorials/book-store/part-08.md
index bce32ab42e..61412ba770 100644
--- a/docs/en/tutorials/book-store/part-08.md
+++ b/docs/en/tutorials/book-store/part-08.md
@@ -303,7 +303,7 @@ public async Task DeleteAsync(Guid id)
You can't compile the code since it is expecting some constants declared in the `BookStorePermissions` class.
-Open the `BookStorePermissions` class inside the `Acme.BookStore.Application.Contracts` project (in the `Permissions` folder) and change the content as shown below:
+Open the `BookStorePermissions` class inside the `Acme.BookStore.Application.Contracts` project (in the `Permissions` folder) and add new permission names:
````csharp
namespace Acme.BookStore.Permissions;
@@ -312,13 +312,8 @@ public static class BookStorePermissions
{
public const string GroupName = "BookStore";
- public static class Books
- {
- public const string Default = GroupName + ".Books";
- public const string Create = Default + ".Create";
- public const string Edit = Default + ".Edit";
- public const string Delete = Default + ".Delete";
- }
+ // other permissions...
+ // other permissions...
// *** ADDED a NEW NESTED CLASS ***
public static class Authors
diff --git a/docs/en/tutorials/index.md b/docs/en/tutorials/index.md
new file mode 100644
index 0000000000..87484d2acb
--- /dev/null
+++ b/docs/en/tutorials/index.md
@@ -0,0 +1,7 @@
+## ABP Tutorials
+
+The following guides explains how to build ABP based applications:
+
+* [TODO Application](todo/index.md): This is a single-part, quick-start tutorial to build a simple application with ABP. Start with this tutorial if you want to quickly understand how ABP works.
+* [Book Store Application](book-store/index.md): This is a multi-part, complete tutorial to build a bookstore application with ABP. Start with this tutorial if you want to create a layered solution with ABP and apply DDD best practices.
+* [Modular Monolith Application](modular-crm/index.md): This is a multi-part tutorial that demonstrates how to create application modules, compose and communicate them to build a monolith modular web application.
\ No newline at end of file
diff --git a/docs/en/tutorials/mobile/react-native/index.md b/docs/en/tutorials/mobile/react-native/index.md
index 3178574627..59170aa0b0 100644
--- a/docs/en/tutorials/mobile/react-native/index.md
+++ b/docs/en/tutorials/mobile/react-native/index.md
@@ -4,7 +4,7 @@
- This tutorial assumes that you have completed the [Web Application Development tutorial](../../book-store/part-01.md) and built an ABP based application named `Acme.BookStore` with [React Native](../../../framework/ui/react-native) as the mobile option.. Therefore, if you haven't completed the [Web Application Development tutorial](../../book-store/part-01.md), you either need to complete it or download the source code from down below and follow this tutorial.
- In this tutorial, we will only focus on the UI side of the `Acme.BookStore` application and will implement the CRUD operations.
-- Before starting, please make sure that the [React Native Development Environment](https://docs.abp.io/en/commercial/latest/getting-started-react-native) is ready on your machine.
+- Before starting, please make sure that the [React Native Development Environment](../../../framework/ui/react-native/index.md) is ready on your machine.
## Download the Source Code
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png
new file mode 100644
index 0000000000..c96217ac47
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png
new file mode 100644
index 0000000000..1629f541d8
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png
new file mode 100644
index 0000000000..f8a701770e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png
new file mode 100644
index 0000000000..882323b4b6
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png
new file mode 100644
index 0000000000..8815d15c44
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png
new file mode 100644
index 0000000000..6557599a4e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-class-library.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-class-library.png
new file mode 100644
index 0000000000..247ee96ca0
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-class-library.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-mvc-ui.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-mvc-ui.png
new file mode 100644
index 0000000000..41214c0ddc
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package-mvc-ui.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png
new file mode 100644
index 0000000000..de9e1aa8c5
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-nuget-package-reference.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-nuget-package-reference.png
new file mode 100644
index 0000000000..c52df6d559
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-nuget-package-reference.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png
new file mode 100644
index 0000000000..47a5671f7f
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png
new file mode 100644
index 0000000000..e79b72747f
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png
new file mode 100644
index 0000000000..fa3b5c4e23
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png
new file mode 100644
index 0000000000..4a8ef0ba58
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-2.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-2.png
new file mode 100644
index 0000000000..09682f0b6f
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-2.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-3.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-3.png
new file mode 100644
index 0000000000..2d9d1e504b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-3.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png
new file mode 100644
index 0000000000..8480ee8151
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog.png
new file mode 100644
index 0000000000..34342dad2e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png
new file mode 100644
index 0000000000..2cbd244a4b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-domain-package.png b/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-domain-package.png
new file mode 100644
index 0000000000..ed03c6b3bb
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-domain-package.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-orders-with-product-name.png b/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-orders-with-product-name.png
new file mode 100644
index 0000000000..ecbd5a7fbc
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-orders-with-product-name.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-products.png b/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-products.png
new file mode 100644
index 0000000000..f204d55ed6
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-browser-list-of-products.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-browser-orders-menu-item.png b/docs/en/tutorials/modular-crm/images/abp-studio-browser-orders-menu-item.png
new file mode 100644
index 0000000000..cb3af02592
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-browser-orders-menu-item.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png b/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png
new file mode 100644
index 0000000000..010851ee05
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-db.png b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-db.png
new file mode 100644
index 0000000000..714eeac483
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-db.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-ui.png b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-ui.png
new file mode 100644
index 0000000000..4f56ddf070
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog-step-ui.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog.png
new file mode 100644
index 0000000000..681402ae44
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-create-new-module-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png
new file mode 100644
index 0000000000..1e247f069b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png
new file mode 100644
index 0000000000..bece8dfc12
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png b/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png
new file mode 100644
index 0000000000..11855d792e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog-for-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog-for-ordering.png
new file mode 100644
index 0000000000..b39a3220a5
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog-for-ordering.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog.png
new file mode 100644
index 0000000000..88acf77a3c
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering-dialog.png
new file mode 100644
index 0000000000..762265b2c3
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png
new file mode 100644
index 0000000000..94ab70d255
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png
new file mode 100644
index 0000000000..e62c0dc315
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png
new file mode 100644
index 0000000000..673d303307
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-imports-and-dependencies.png b/docs/en/tutorials/modular-crm/images/abp-studio-imports-and-dependencies.png
new file mode 100644
index 0000000000..30d484ba6b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-imports-and-dependencies.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog-for-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog-for-ordering.png
new file mode 100644
index 0000000000..21af63a949
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog-for-ordering.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog.png
new file mode 100644
index 0000000000..17eb6d0ecc
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-install-module-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png b/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png
new file mode 100644
index 0000000000..3e04717081
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-module-installation-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-module-installation-dialog.png
new file mode 100644
index 0000000000..9946afaaec
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-module-installation-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png
new file mode 100644
index 0000000000..f726332a37
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-new-package-under-the-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-new-package-under-the-module.png
new file mode 100644
index 0000000000..8ac9bb987e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-new-package-under-the-module.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png
new file mode 100644
index 0000000000..ce052d2b17
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png
new file mode 100644
index 0000000000..1f879ed795
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png
new file mode 100644
index 0000000000..ba96d6f488
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-project-reference-example.png b/docs/en/tutorials/modular-crm/images/abp-studio-project-reference-example.png
new file mode 100644
index 0000000000..7694d8013b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-project-reference-example.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-run-initially.png b/docs/en/tutorials/modular-crm/images/abp-studio-run-initially.png
new file mode 100644
index 0000000000..2f969eff5b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-run-initially.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-two-modules.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-two-modules.png
new file mode 100644
index 0000000000..a98909c58b
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-two-modules.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-with-folders.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-with-folders.png
new file mode 100644
index 0000000000..221d002922
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-explorer-with-folders.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png
new file mode 100644
index 0000000000..ececabbf01
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png
new file mode 100644
index 0000000000..480da27d7e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png
new file mode 100644
index 0000000000..f3e9896e8f
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-create-order.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-create-order.png
new file mode 100644
index 0000000000..e2c15fca23
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-create-order.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-list-orders.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-list-orders.png
new file mode 100644
index 0000000000..e58ea0c51d
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-list-orders.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-execute.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-execute.png
new file mode 100644
index 0000000000..e07804e37d
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-execute.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-try.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-try.png
new file mode 100644
index 0000000000..52a99ce8fa
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-product-try.png differ
diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-in-browser.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-in-browser.png
new file mode 100644
index 0000000000..8183cde1fb
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-in-browser.png differ
diff --git a/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png b/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png
new file mode 100644
index 0000000000..eb10f3e26e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png differ
diff --git a/docs/en/tutorials/modular-crm/images/product-module-folder.png b/docs/en/tutorials/modular-crm/images/product-module-folder.png
new file mode 100644
index 0000000000..f9778d4b86
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/product-module-folder.png differ
diff --git a/docs/en/tutorials/modular-crm/images/product-module-visual-studio.png b/docs/en/tutorials/modular-crm/images/product-module-visual-studio.png
new file mode 100644
index 0000000000..843326afed
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/product-module-visual-studio.png differ
diff --git a/docs/en/tutorials/modular-crm/images/products-orders-pages-crop.png b/docs/en/tutorials/modular-crm/images/products-orders-pages-crop.png
new file mode 100644
index 0000000000..dbd8bbdee1
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/products-orders-pages-crop.png differ
diff --git a/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-expanded.png b/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-expanded.png
new file mode 100644
index 0000000000..841b8fe610
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-expanded.png differ
diff --git a/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial.png b/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial.png
new file mode 100644
index 0000000000..d2240688ec
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial.png differ
diff --git a/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table.png b/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table.png
new file mode 100644
index 0000000000..2090a35673
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table.png differ
diff --git a/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png b/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png
new file mode 100644
index 0000000000..1bc432c650
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png differ
diff --git a/docs/en/tutorials/modular-crm/images/sql-server-products-database-table-filled.png b/docs/en/tutorials/modular-crm/images/sql-server-products-database-table-filled.png
new file mode 100644
index 0000000000..051f2044f8
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/sql-server-products-database-table-filled.png differ
diff --git a/docs/en/tutorials/modular-crm/images/sql-server-products-database-table.png b/docs/en/tutorials/modular-crm/images/sql-server-products-database-table.png
new file mode 100644
index 0000000000..803c008524
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/sql-server-products-database-table.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png b/docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png
new file mode 100644
index 0000000000..9dfdcc0f34
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-main-dbcontext.png b/docs/en/tutorials/modular-crm/images/visual-studio-main-dbcontext.png
new file mode 100644
index 0000000000..825b6c2422
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-main-dbcontext.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-modular-crm-solution.png b/docs/en/tutorials/modular-crm/images/visual-studio-modular-crm-solution.png
new file mode 100644
index 0000000000..ef96d4b932
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-modular-crm-solution.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class-2.png b/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class-2.png
new file mode 100644
index 0000000000..3acc6e45c7
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class-2.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class.png b/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class.png
new file mode 100644
index 0000000000..b18d071cb1
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-new-migration-class.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-order-entity.png b/docs/en/tutorials/modular-crm/images/visual-studio-order-entity.png
new file mode 100644
index 0000000000..33ea2b9d24
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-order-entity.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-order-event-handler.png b/docs/en/tutorials/modular-crm/images/visual-studio-order-event-handler.png
new file mode 100644
index 0000000000..cae742abb3
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-order-event-handler.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-order-event.png b/docs/en/tutorials/modular-crm/images/visual-studio-order-event.png
new file mode 100644
index 0000000000..21377ac3ee
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-order-event.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service-impl.png b/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service-impl.png
new file mode 100644
index 0000000000..5007486775
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service-impl.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service.png b/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service.png
new file mode 100644
index 0000000000..7333958f11
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png
new file mode 100644
index 0000000000..56a1dad5b1
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-module-initial.png b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-module-initial.png
new file mode 100644
index 0000000000..0b238370b1
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-module-initial.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-ui-package-dependency.png b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-ui-package-dependency.png
new file mode 100644
index 0000000000..4fe2d6f935
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-ui-package-dependency.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-pages-folder.png b/docs/en/tutorials/modular-crm/images/visual-studio-pages-folder.png
new file mode 100644
index 0000000000..f1b5742ce9
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-pages-folder.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service-implementation.png b/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service-implementation.png
new file mode 100644
index 0000000000..48ea4cec66
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service-implementation.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service.png b/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service.png
new file mode 100644
index 0000000000..a211c2357e
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-product-integration-service.png differ
diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-products-cshtml.png b/docs/en/tutorials/modular-crm/images/visual-studio-products-cshtml.png
new file mode 100644
index 0000000000..24f4ae4677
Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-products-cshtml.png differ
diff --git a/docs/en/tutorials/modular-crm/index.md b/docs/en/tutorials/modular-crm/index.md
new file mode 100644
index 0000000000..e4bf64fbd7
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/index.md
@@ -0,0 +1,36 @@
+# Modular Monolith Application Development Tutorial
+
+````json
+//[doc-nav]
+{
+ "Next": {
+ "Name": "Creating the initial solution",
+ "Path": "tutorials/modular-crm/part-01"
+ }
+}
+````
+
+ABP provides a great infrastructure and tooling to build modular software solutions. In this tutorial, you will learn how to create application modules, compose and communicate them to build a monolith modular web application.
+
+> **This tutorial focuses on modularity.** The example application's functionality and user interface are intentionally kept simple. If you want to learn real world, full featured application logic development with ABP, please follow the [Book Store tutorial](../book-store/index.md).
+
+## Tutorial Outline
+
+This tutorial is organized as the following parts:
+
+* [Part 01: Creating the initial solution](part-01.md)
+* [Part 02: Creating the initial Products module](part-02.md)
+* [Part 03: Building the Products module](part-03.md)
+* [Part 04: Creating the initial Ordering module](part-04.md)
+* [Part 05: Building the Ordering module](part-05.md)
+* [Part 06: Integrating the modules: Implementing Integration Services](part-06.md)
+* [Part 07: Integrating the modules: Communication via Messages (Events)](part-07.md)
+* [Part 08: Integrating the modules: Joining the Products and Orders Data](part-08.md)
+
+## Download the Source Code
+
+You can download the completed sample solution [here](https://github.com/abpframework/abp-samples/tree/master/ModularCRM).
+
+## See Also
+
+* [Book Store: Web Application Development Tutorial](../book-store/index.md)
\ No newline at end of file
diff --git a/docs/en/tutorials/modular-crm/part-01.md b/docs/en/tutorials/modular-crm/part-01.md
new file mode 100644
index 0000000000..61698fb48a
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-01.md
@@ -0,0 +1,37 @@
+# Creating the Initial Solution
+
+````json
+//[doc-nav]
+{
+ "Next": {
+ "Name": "Creating the initial Products module",
+ "Path": "tutorials/modular-crm/part-02"
+ }
+}
+````
+
+Follow the *[Get Stared](../../get-started/layered-web-application.md)* guide to create a new layered web application with the following configuration:
+
+* **Solution name**: `ModularCrm`
+* **UI Framework**: ASP.NET Core MVC / Razor Pages
+* **Database Provider**: Entity Framework Core
+
+You can select the other options based on your preference.
+
+> **Please complete the [Get Stared](../../get-started/layered-web-application.md) guide and run the web application before going further.**
+
+The initial solution structure should be like the following in ABP Studio's *[Solution Explorer](../../studio/solution-explorer.md)*:
+
+
+
+Initially, you see a `ModularCrm` solution and a `ModularCrm` module under that solution.
+
+> An ABP Studio module is typically a .NET solution and an ABP Studio solution is an umbrella concept for multiple .NET Solutions (see the [concepts](../../studio/concepts.md) document for more).
+
+`ModularCrm` module is your main application, which is a layered .NET solution that consists of several packages (.NET projects). You can expand the `ModularCrm` module to see its packages:
+
+
+
+## Summary
+
+We've created the initial layered monolith solution. In the next part, we will learn how to create a new application module and install it to the main application.
\ No newline at end of file
diff --git a/docs/en/tutorials/modular-crm/part-02.md b/docs/en/tutorials/modular-crm/part-02.md
new file mode 100644
index 0000000000..14560b3766
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-02.md
@@ -0,0 +1,138 @@
+# Creating the Initial Products Module
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Creating the initial solution",
+ "Path": "tutorials/modular-crm/part-01"
+ },
+ "Next": {
+ "Name": "Building the Products module",
+ "Path": "tutorials/modular-crm/part-03"
+ }
+}
+````
+
+In this part, you will build a new product management module and install it in the main CRM application.
+
+## Creating Solution Folders
+
+You can create solution folders and sub-folders in *Solution Explorer* to organize your solution components better. Right-click to the solution root on the *Solution Explorer* panel, and select *Add* -> *New Folder* command:
+
+
+
+That command opens a dialog where you can set the folder name:
+
+
+
+Create a `main` and a `modules` folder using the *New Folder* command, then move the `ModularCrm` module into the `main` folder (simply by drag & drop). The *Solution Explorer* panel should look like the following figure now:
+
+
+
+## Creating The Module
+
+There are two module templates provided by ABP Studio:
+
+* **Empty Module**: You can use that module template to build your module structure from scratch.
+* **DDD Module**: A Domain Driven Design based layered module structure.
+
+We will use the *DDD Module* template for the Product module and the *Empty Module* template later in this tutorial.
+
+Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *DDD Module* command:
+
+
+
+This command opens a new dialog to define the properties of the new module. You can use the following values to create a new module named `ModularCrm.Products`:
+
+
+
+When you click the *Next* button, you are redirected to the UI selection step.
+
+### Selecting the UI Type
+
+Here, you can select the UI type you want to support in your module:
+
+
+
+A module;
+
+* May not contain a UI and leaves the UI development to the final application.
+* May contain a single UI implementation that is typically in the same technology as the main application.
+* May contain more than one UI implementation if you want to create a reusable application module and you want to make that module usable by different applications with different UI technologies. For example, all of [pre-built ABP modules](https://abp.io/modules) support multiple UI options.
+
+In this tutorial, we are selecting the MVC UI since we are building that module only for our `ModularCrm` solution and we are using the MVC UI in our application. So, select the MVC UI and click the *Next* button.
+
+### Selecting the Database Provider
+
+The next step is to select the database provider (or providers) you want to support with your module:
+
+
+
+Since our main application is using Entity Framework Core and we will use the `ModularCrm.Products` module only for that main application, we can select the *Entity Framework Core* option and click the *Create* button.
+
+### Exploring the New Module
+
+After adding the new module, the *Solution Explorer* panel should look like the following figure:
+
+
+
+The new `ModularCrm.Products` module has been created and added to the solution. The `ModularCrm.Products` module has a separate and independent .NET solution. Right-click the `ModularCrm.Products` module and select the *Open with* -> *Explorer* command:
+
+
+
+This command opens the solution folder in your file system:
+
+
+
+You can open `ModularCrm.Products.sln` in your favorite IDE (e.g. Visual Studio):
+
+
+
+As seen in the preceding figure, the `ModularCrm.Products` solution consists of several layers, each has own responsibility.
+
+### Installing the Product Module to the Main Application
+
+A module does not contain an executable application inside. The `Modular.Products.Web` project is just a class library project, not an executable web application. A module should be installed in an executable application to run it.
+
+> **Ensure that the web application is not running in [Solution Runner](../../studio/running-applications.md) or in your IDE. Installing a module to a running application will produce errors.**
+
+The product module has yet to be related to the main application. Right-click on the `ModularCrm` module (inside the `main` folder) and select the *Import Module* command:
+
+
+
+The *Import Module* command opens a dialog as shown below:
+
+
+
+Select the `ModularCrm.Products` module and check the *Install this module* option. If you don't check that option, it only imports the module but doesn't set project dependencies. Importing a module without installation can be used to set up your project dependencies manually. We want to make it automatically, so check the *Install this module* option.
+
+When you click the *OK* button, ABP Studio opens the *Install Module* dialog:
+
+
+
+This dialog simplifies installing a multi-layer module to a multi-layer application. It automatically determines which package of the `ModularCrm.Products` module should be installed to which package of the main application. For example, the `ModularCrm.Products.Domain` package is installed to the `ModularCrm.Domain` package. In that way, you can use domain objects ([entities](../../framework/architecture/domain-driven-design/entities.md), [repositories](../../framework/architecture/domain-driven-design/repositories.md), ...) of the products module from the domain layer of your main application.
+
+The default package match is good for this tutorial, so you can click the *OK* button to proceed.
+
+### Building the Main Application
+
+After the installation, build the entire solution by right-clicking on the `ModularCrm` module (under the `main` folder) and selecting the *Dotnet CLI* -> *Graph Build* command:
+
+
+
+Graph Build is a dotnet CLI command that recursively builds all the referenced dotnet projects, even if they are not part of the root solution.
+
+> While developing multi-module solutions with ABP Studio, you may need to perform *Graph Build* on the root/main module if you change the depending modules.
+
+### Run the Main Application
+
+Open the *Solution Runner* panel, click the *Play* button (near to the solution root), right-click the `ModularCrm.Web` application and select the *Browse* command. It will open the web application in the built-in browser. Then you can navigate to the *Products* page on the main menu of the application to see the Products page that is coming from the `ModularCrm.Products` module:
+
+
+
+## Summary
+
+In this part, we've created a new module to manage products in our modular application. Then we installed the new module to the main application and run the solution to test if it has successfully installed.
+
+In the next part, you will learn how to create entities, services and a basic user interface for the products module.
diff --git a/docs/en/tutorials/modular-crm/part-03.md b/docs/en/tutorials/modular-crm/part-03.md
new file mode 100644
index 0000000000..799745b9c8
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-03.md
@@ -0,0 +1,506 @@
+# Building the Products Module
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Creating the initial Products module",
+ "Path": "tutorials/modular-crm/part-02"
+ },
+ "Next": {
+ "Name": "Creating the initial Ordering module",
+ "Path": "tutorials/modular-crm/part-04"
+ }
+}
+````
+
+In this part, you will learn how to create entities and services and a basic user interface for the products module.
+
+> **This module's functionality will be minimal to focus on modularity.** You can follow the [Book Store tutorial](../book-store/index.md) to learn building more real-world applications with ABP.
+
+If it is still running, please stop the web application before continuing with the tutorial.
+
+## Creating a `Product` Entity
+
+Open the `ModularCrm.Products` module in your favorite IDE. You can right-click the `ModularCrm.Products` module and select the *Open With* -> *Visual Studio* command to open the `ModularCrm.Products` module's .NET solution with Visual Studio. If you can not find your IDE in the *Open with* list, open with the *Explorer*, then open the `.sln` file with your IDE:
+
+
+
+The `ModularCrm.Products` .NET solution should look like the following figure:
+
+
+
+Add a new `Product` class under the `ModularCrm.Products.Domain` project (Right-click the `ModularCrm.Products.Domain` project, select *Add* -> *Class*):
+
+````csharp
+using System;
+using Volo.Abp.Domain.Entities;
+
+namespace ModularCrm.Products;
+
+public class Product : AggregateRoot
+{
+ public string Name { get; set; }
+ public int StockCount { get; set; }
+}
+````
+
+## Mapping Entity to Database
+
+The next step is to configure the Entity Framework Core `DbContext` class and the database for the new entity.
+
+### Add a `DbSet` Property
+
+Open the `ProductsDbContext` in the `ModularCrm.Products.EntityFrameworkCore` project and add a new `DbSet` property for the `Product` entity. The final `ProductsDbContext.cs` file content should be the following:
+
+````csharp
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Data;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace ModularCrm.Products.EntityFrameworkCore;
+
+[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
+public class ProductsDbContext : AbpDbContext, IProductsDbContext
+{
+ public DbSet Products { get; set; } //NEW: DBSET FOR THE PRODUCT ENTITY
+
+ public ProductsDbContext(DbContextOptions options)
+ : base(options)
+ {
+
+ }
+
+ protected override void OnModelCreating(ModelBuilder builder)
+ {
+ base.OnModelCreating(builder);
+ builder.ConfigureProducts();
+ }
+}
+````
+
+The `ProductsDbContext` class implements the `IProductsDbContext` interface. Add the following property to the `IProductsDbContext` interface:
+
+````csharp
+DbSet Products { get; set; }
+````
+
+The final `IProductsDbContext` interface should be the following:
+
+````csharp
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Data;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace ModularCrm.Products.EntityFrameworkCore;
+
+[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
+public interface IProductsDbContext : IEfCoreDbContext
+{
+ DbSet Products { get; set; }
+}
+````
+
+Having such an `IProductsDbContext` interface allows us to decouple our repositories (and other classes) from the concrete `ProductsDbContext` class. This provides flexibility to the final application to merge multiple `DbContext`s into a single `DbContext` to manage database migrations easier and have a database level transaction support for multi-module database operations.
+
+### Configure the Table Mapping
+
+The DDD module template is designed to be flexible so that your module can have a separate physical database or store its tables inside another database, like the main database of your application. To make that possible, it configures the database mapping in an extension method (`ConfigureProducts`) called inside the `OnModelCreating` method above. Find that extension method (in the `ProductsDbContextModelCreatingExtensions` class) and change its content as the following code block:
+
+````csharp
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+
+namespace ModularCrm.Products.EntityFrameworkCore;
+
+public static class ProductsDbContextModelCreatingExtensions
+{
+ public static void ConfigureProducts(
+ this ModelBuilder builder)
+ {
+ Check.NotNull(builder, nameof(builder));
+
+ builder.Entity(b =>
+ {
+ //Configure table & schema name
+ b.ToTable(ProductsDbProperties.DbTablePrefix + "Products",
+ ProductsDbProperties.DbSchema);
+
+ //Always call this method to setup base entity properties
+ b.ConfigureByConvention();
+
+ //Properties of the entity
+ b.Property(q => q.Name).IsRequired().HasMaxLength(100);
+ });
+ }
+}
+````
+
+First, we are setting the database table name with the `ToTable` method. `ProductsDbProperties.DbTablePrefix` defines a constant that is added as a prefix to all database table names of this module. If you see the `ProductsDbProperties` class (in the `ModularCrm.Products.Domain` project), `DbTablePrefix` value is `Products`. In that case, the table name for the `Product` entity will be `ProductsProducts`. That is unnecessary for such a simple module; we can remove that prefix. So, you can change the `ProductsDbProperties` class with the following content to set an empty string to the `DbTablePrefix` property:
+
+````csharp
+namespace ModularCrm.Products;
+
+public static class ProductsDbProperties
+{
+ public static string DbTablePrefix { get; set; } = "";
+ public static string? DbSchema { get; set; } = null;
+ public const string ConnectionStringName = "Products";
+}
+````
+
+You can set a `DbSchema` to collect a module's tables under a separate schema (if your DBMS supports it) or use a `DbTablePrefix` as a prefix for all module table names. We won't set any of them for this tutorial.
+
+At that point, build the `ModularCrm.Products` .NET solution in your IDE (or ABP Studio UI). We will switch to the main application's .NET solution.
+
+### Configuring the Main Application Database
+
+We changed the Entity Framework Core configuration. The next step should be adding a new code-first database migration and updating the database so the new Products table is created on the database.
+
+We are not managing the database migrations in the module. Instead, the main application decides which DBMS (Database Management System) to use and how to share physical database(s) among modules. We will store all the modules' data in a single physical database to simplify this tutorial.
+
+Open the `ModularCrm` module (which is the main application) in your IDE:
+
+
+
+Find the `ModularCrmDbContext` class under the `ModularCrm.EntityFrameworkCore` project:
+
+
+
+We will merge module's database configuration into `ModularCrmDbContext`.
+
+#### Replace the `IProductsDbContext` Service
+
+Follow the three steps below;
+
+**(1)** Add the following attribute on top of the `ModularCrmDbContext` class:
+
+````csharp
+[ReplaceDbContext(typeof(IProductsDbContext))]
+````
+
+`ReplaceDbContext` attribute makes it possible to use the `ModularCrmDbContext` class in the services in the Products module.
+
+**(2)** Implement the `IProductsDbContext` by the `ModularCrmDbContext` class:
+
+````csharp
+public class ModularCrmDbContext :
+ AbpDbContext,
+ ITenantManagementDbContext,
+ IIdentityDbContext,
+ IProductsDbContext //NEW: IMPLEMENT THE INTERFACE
+{
+ public DbSet Products { get; set; } //NEW: ADD DBSET PROPERTY
+ ...
+}
+````
+
+**(3)** Finally, call the `ConfigureProducts()` extension method inside the `OnModelCreating` method after other `Configure...` module calls:
+
+````csharp
+protected override void OnModelCreating(ModelBuilder builder)
+{
+ ...
+ builder.ConfigureProducts(); //NEW: CALL THE EXTENSION METHOD
+}
+````
+
+In this way, `ModularCrmDbContext` can be used by the products module over the `IProductsDbContext` interface. This part is only needed once for a module. Next time, you can add a new database migration, as explained in the next section.
+
+#### Add a Database Migration
+
+Now, we can add a new database migration. You can use Entity Framework Core's `Add-Migration` (or `dotnet ef migrations add`) terminal command, but we will use ABP Studio's shortcut UI in this tutorial.
+
+Ensure that the solution has built. You can right-click the `ModularCrm` (under the `main` folder) on ABP Studio *Solution Runner* and select the *Dotnet CLI* -> *Graph Build* command.
+
+Right-click the `ModularCrm.EntityFrameworkCore` package and select the *EF Core CLI* -> *Add Migration* command:
+
+
+
+The *Add Migration* command opens a new dialog to get a migration name:
+
+
+
+Once you click the *OK* button, a new database migration class is added to the `Migrations` folder of the `ModularCrm.EntityFrameworkCore` project:
+
+
+
+Now, you can return to ABP Studio, right-click the `ModularCrm.EntityFrameworkCore` project and select the *EF Core CLI* -> *Update Database* command:
+
+
+
+After the operation completes, you can check your database to see the new `Products` table has been created:
+
+
+
+## Creating the Application Service
+
+Now, we will create an [application service](../../framework/architecture/domain-driven-design/application-services.md) to perform some use cases related to products.
+
+### Defining the Application Service Contract
+
+Return to your IDE (e.g. Visual Studio), open the `ModularCrm.Products` module's .NET solution and create an `IProductAppService` interface under the `ModularCrm.Products.Application.Contracts` project:
+
+````csharp
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+
+namespace ModularCrm.Products;
+
+public interface IProductAppService : IApplicationService
+{
+ Task> GetListAsync();
+ Task CreateAsync(ProductCreationDto input);
+}
+````
+
+We are defining application service interfaces and [data transfer objects](../../framework/architecture/domain-driven-design/data-transfer-objects.md) in the `Application.Contracts` project. That way, we can share those contracts with clients without sharing the actual implementation class.
+
+### Defining Data Transfer Objects
+
+The `GetListAsync` and `CreateAsync` methods use the `ProductDto` and `ProductCreationDto` classes, which have not been defined yet. So, we need to define them.
+
+Create a `ProductCreationDto` class under the `ModularCrm.Products.Application.Contracts` project:
+
+````csharp
+using System.ComponentModel.DataAnnotations;
+
+namespace ModularCrm.Products;
+
+public class ProductCreationDto
+{
+ [Required]
+ [StringLength(100)]
+ public string Name { get; set; }
+
+ [Range(0, int.MaxValue)]
+ public int StockCount { get; set; }
+}
+````
+
+And create a `ProductDto` class under the `ModularCrm.Products.Application.Contracts` project:
+
+````csharp
+using System;
+
+namespace ModularCrm.Products
+{
+ public class ProductDto
+ {
+ public Guid Id { get; set; }
+ public string Name { get; set; }
+ public int StockCount { get; set; }
+ }
+}
+````
+
+The new files under the `ModularCrm.Products.Application.Contracts` project are shown below:
+
+
+
+### Implementing the Application Service
+
+Now, we can implement the `IProductAppService` interface. Create a `ProductAppService` class under the `ModularCrm.Products.Application` project:
+
+````csharp
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+
+namespace ModularCrm.Products;
+
+public class ProductAppService : ProductsAppService, IProductAppService
+{
+ private readonly IRepository _productRepository;
+
+ public ProductAppService(IRepository productRepository)
+ {
+ _productRepository = productRepository;
+ }
+
+ public async Task> GetListAsync()
+ {
+ var products = await _productRepository.GetListAsync();
+ return ObjectMapper.Map, List>(products);
+ }
+
+ public async Task CreateAsync(ProductCreationDto input)
+ {
+ var product = new Product
+ {
+ Name = input.Name,
+ StockCount = input.StockCount
+ };
+
+ await _productRepository.InsertAsync(product);
+ }
+}
+````
+
+Notice that `ProductAppService` class implements the `IProductAppService` and also inherits from the `ProductsAppService` class. Do not be confused about the naming (`ProductAppService` and `ProductsAppService`). The `ProductsAppService` is a base class. It makes a few configurations for [localization](../../framework/fundamentals/localization.md) and [object mapping](../../framework/infrastructure/object-to-object-mapping.md) (you can see in the `ModularCrm.Products.Application` project). You can inherit all of your application services from that base class. This way, you can define some common properties and methods to share among all your application services. You can rename the base class if you feel that you may be confused later.
+
+#### Object Mapping
+
+`ProductAppService.GetListAsync` method uses the `ObjectMapper` service to convert `Product` entities to `ProductDto` objects. The mapping should be configured. Open the `ProductsApplicationAutoMapperProfile` class in the `ModularCrm.Products.Application` project and change it to the following code block:
+
+````csharp
+using AutoMapper;
+
+namespace ModularCrm.Products;
+
+public class ProductsApplicationAutoMapperProfile : Profile
+{
+ public ProductsApplicationAutoMapperProfile()
+ {
+ CreateMap();
+ }
+}
+````
+
+We've added the `CreateMap();` line to define the mapping.
+
+### Exposing Application Services as HTTP API Controllers
+
+For this application, we don't need to create HTTP API endpoints for the products module. But it is good to understand how to do it when you need it. You have two options;
+
+* You can create a regular ASP.NET Core Controller class in the `ModularCrm.Products.HttpApi` project, inject `IProductAppService` and use it to create wrapper methods. We will do this later while we create the Ordering module.
+* Alternatively, you can use the ABP's [Auto API Controllers](../../framework/api-development/auto-controllers.md) feature to expose your application services as API controllers by conventions. We will do it here.
+
+Open the `ModularCrmWebModule` class in the main application's solution (the `ModularCrm` solution), find the `PreConfigureServices` method and add the following lines inside that method:
+
+````csharp
+PreConfigure(mvcBuilder =>
+{
+ mvcBuilder.AddApplicationPartIfNotExists(typeof(ProductsApplicationModule).Assembly);
+});
+````
+
+This will tell the ASP.NET Core to explore the given assembly to discover controllers.
+
+Then open the `ConfigureAutoApiControllers` method of the same class and add a second `ConventionalControllers.Create` call as shown in the following code block:
+
+````csharp
+Configure(options =>
+{
+ options.ConventionalControllers.Create(typeof(ModularCrmApplicationModule).Assembly);
+
+ //ADD THE FOLLOWING LINE:
+ options.ConventionalControllers.Create(typeof(ProductsApplicationModule).Assembly);
+});
+````
+
+This will tell the ABP framework to create API controllers for the application services in the assembly.
+
+> We made these configurations in the main application's solution since there is no project in the product module's solution that references ASP.NET Core MVC packages and uses the product module's application layer. If you add a reference of `ModularCrm.Products.Application` to `ModularCrm.Products.HttpApi`, then you can move these configurations to the `ModularCrm.Products.HttpApi` project.
+
+Now, ABP will automatically expose the application services defined in the `ModularCrm.Products.Application` project as API controllers. The next section will use these API controllers to create some example products.
+
+### Creating Example Products
+
+This section will create a few example products using the [Swagger UI](../../framework/api-development/swagger.md). Thus, we will have some sample products to show on the UI.
+
+Now, right-click the `ModularCrm` under the `main` folder in the Solution Explorer panel and select the *Dotnet CLI* -> *Graph Build* command. This will ensure that the product module and the main application are built and ready to run.
+
+After the build process completes, open the Solution Runner panel and click the *Play* button near the solution root. Once the `ModularCrm.Web` application runs, we can right-click it and select the *Browse* command to open the user interface.
+
+Once you see the user interface of the web application, type `/swagger` at the end of the URL to open the Swagger UI. If you scroll down, you should see the `Products` API:
+
+
+
+Expand the `/api/app/product` API and click the *Try it out* button as shown in the following figure:
+
+
+
+Then, create a few products by filling in the *Request body* and clicking the *Execute* button:
+
+
+
+If you check the database, you should see the entities created in the `Products` table:
+
+
+
+We've some entities in the database; we can show them on the user interface now.
+
+## Creating the User Interface
+
+In this section, we will create a very simple user interface to demonstrate how to build UI in the products module and make it work in the main application.
+
+As a first step, you can stop the application on ABP Studio's Solution Runner if it is currently running.
+
+Open the `ModularCrm.Products` .NET solution in your IDE, and find the `Pages/Products/Index.cshtml` file under the `ModularCrm.Products.Web` project:
+
+
+
+Replace the `IndexModel.cshtml.cs` file with the following content:
+
+````csharp
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace ModularCrm.Products.Web.Pages.Products;
+
+public class IndexModel : ProductsPageModel
+{
+ public List Products { get; set; }
+
+ private readonly IProductAppService _productAppService;
+
+ public IndexModel(IProductAppService productAppService)
+ {
+ _productAppService = productAppService;
+ }
+
+ public async Task OnGetAsync()
+ {
+ Products = await _productAppService.GetListAsync();
+ }
+}
+````
+
+Here, we simply use the `IProductAppService` to get a list of all products and assign the result to the `Products` property. We can use it in the `Index.cshtml` file to show a simple list of products on the UI:
+
+````xml
+@page
+@using Microsoft.Extensions.Localization
+@using ModularCrm.Products.Localization
+@using ModularCrm.Products.Web.Pages.Products
+@model ModularCrm.Products.Web.Pages.Products.IndexModel
+@inject IStringLocalizer L
+
+Products
+
+
+
+
+ @foreach (var product in Model.Products)
+ {
+
+ @product.Name (stock: @product.StockCount)
+
+ }
+
+
+
+````
+
+You can build the product module's .NET solution (`ModularCrm.Products`), then right-click the `ModularCrm.Web` application on ABP Studio's solution runner and select the *Build & Restart* command:
+
+
+
+Now, you can browse the *Products* page to see the list of the products:
+
+
+
+As you can see, developing a UI page in a modular ABP application is pretty straightforward. We kept the UI very simple to focus on modularity. To learn how to build complex application UIs, please check the [Book Store Tutorial](../book-store/index.md).
+
+## Final Notes
+
+Some of the projects in the product module's .NET solution (`ModularCrm.Products`) are not necessary for most of the cases. They are available to support different scenarios. You can delete them from your module (and remove the dependencies on the main application) if you want:
+
+* `ModularCrm.Products.HttpApi`: This project aims to define regular HTTP API controllers. If you will always use ABP's [Auto API Controllers](../../framework/api-development/auto-controllers.md) feature (like we did in this tutorial), you can delete that project.
+* `ModularCrm.Products.HttpApi.Client`: That project is generally shared with 3rd-party applications, so they can easily consume your HTTP API endpoints. In a modular monolith application, you typically don't need it.
+* `ModularCrm.Products.HttpApi.Installer`: That project is used to discover and install a multi-projects module (like the product module) when you deploy it to a package management system (like NuGet). If you use the module with local project references (like we did here), you can delete that project.
+* You can also delete the test projects (there are 4 of them in the solution) if you don't prefer to write unit/integration tests in the module's solution (Legal warning: it is recommended to write tests 😊)
diff --git a/docs/en/tutorials/modular-crm/part-04.md b/docs/en/tutorials/modular-crm/part-04.md
new file mode 100644
index 0000000000..ea7e66cc8b
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-04.md
@@ -0,0 +1,112 @@
+# Creating the Initial Ordering Module
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Building the Products Module",
+ "Path": "tutorials/modular-crm/part-03"
+ },
+ "Next": {
+ "Name": "Building the Ordering module",
+ "Path": "tutorials/modular-crm/part-05"
+ }
+}
+````
+
+In this part, you will build a new module for placing orders and install it in the main CRM application.
+
+## Creating an Empty Module
+
+In this part, we have used the *DDD Module* template for the Product module and will use the *Empty Module* template for the Ordering module.
+
+Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *Empty Module* command:
+
+
+
+That command opens a dialog to define the properties of the new module:
+
+
+
+Set `ModularCrm.Ordering` as the *Module name*, leave the *Output folder* as is and click the *Create* button. It will create the new `ModularCrm.Ordering` module under the `modules` folder in the *Solution Explorer*:
+
+
+
+Since we've created an empty module, it is really empty. If you open the `modules/modularcrm.ordering` in your file system, you can see the initial files:
+
+
+
+## Creating the Module Packages
+
+In this section, we will create packages under the Ordering module. The Products module was well layered based on Domain Driven Design principles. This time, we will keep things very simple and will only create two packages for the Ordering module:
+
+* `ModularCrm.Ordering`: Contains all the module code without any layering. It will contain entities, database access code, services, controllers, UI pages and whatever we need to implement the *Ordering* module.
+* `ModularCrm.Ordering.Contracts`: Contains the services and objects we want to share with other modules. `ModularCrm.Ordering` uses (and implements) this package.
+
+> If your modules are relatively small and easy to maintain, they will only be used by your main application, and you don't care about layering, then you can create such simple module structures.
+
+We will create and configure everything from scratch. You have already learned the easy way in the previous parts, where we created the Products module. It is time to deepen your understanding of the details and learn how ABP Studio allows you to set up custom structures. Let's begin.
+
+### Creating the `ModularCrm.Ordering.Contracts` Package
+
+Right-click the `ModularCrm.Ordering` module on the *Solution Explorer* and select the *Add* -> *Package* -> *New Package* command as shown in the following figure:
+
+
+
+That command opens a new dialog to create a new package:
+
+
+
+With that dialog, you can build your module or application layer by layer. There are templates for any package. However, here we will go with the simplest one: *ABP Class Library*. ABP Class Library is an empty C# class library with the [core ABP package](https://www.nuget.org/packages/Volo.Abp.Core) dependency and a [module class](../../framework/architecture/modularity/basics.md).
+
+Type `ModularCrm.Ordering.Contracts` as the *Package name* and click the *Create* button. It will add the package under the `ModularCrm.Ordering` module:
+
+
+
+### Creating the `ModularCrm.Ordering` Package
+
+Right-click the `ModularCrm.Ordering` module on the *Solution Explorer* again and select the *Add* -> *Package* -> *New Package* command to create a second package:
+
+
+
+This time, we select the MVC UI template and set the Package name to `ModularCrm.Ordering`. Then, click the Create button to add the new package.
+
+### Add Package Reference
+
+After the package has been added, right-click the `ModularCrm.Ordering` package and select the *Add Package Reference* command:
+
+
+
+That command opens a dialog to select the package:
+
+
+
+In that dialog, you can add package references from various sources. Here, we will add a reference for the package in the current module. So, select the `ModularCrm.Ordering.Contracts` package in the *This module* tab and click the *OK* button. You can see the package reference under the *Projects* dependencies on the *Solution Explorer* panel:
+
+
+
+The initial module creation has been completed. Now, we have a new module with two packages. However, it is not related to other modules and applications in the solution yet.
+
+## Installing into the Main Application
+
+In this section, we will install the `ModularCrm.Ordering` module in the main application so it can be part of the system.
+
+> Before the installation, please ensure the web application is not running.
+
+Right-click the `ModularCrm` module (under the `main` folder) and select the *Import Module* command:
+
+
+
+That command opens the *Import Module* dialog:
+
+
+
+Select the `ModularCrm.Ordering` module and check the *Install this module* option as shown in the preceding figure. When you click the OK button, a new dialog is shown to select the packages to install:
+
+
+
+Select the `ModuleCrm.Ordering` package in the left area and the `ModularCrm.Domain` package in the middle area, as shown in the preceding figure, and click the *OK* button.
+
+> Since the Ordering module is not layered, we didn't install its packages to the layers of our main application. We are installing it only to `ModularCrm.Domain`. In this way, we can use the Ordering module from any layer of our application since `ModularCrm.Domain` is one of the core packages of our application. If you build your modules as non-layered and you don't have much code in the main application's .NET solution, you can also consider creating a non-layered main application that composes these modules.
+
+In this part of the tutorial, we've created an empty module and added packages. This allows you to create modules or applications with a custom structure. In the next part, we will add functionality to the Ordering module.
diff --git a/docs/en/tutorials/modular-crm/part-05.md b/docs/en/tutorials/modular-crm/part-05.md
new file mode 100644
index 0000000000..f7d624bcbf
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-05.md
@@ -0,0 +1,402 @@
+# Building the Ordering Module
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Creating the Initial Ordering Module",
+ "Path": "tutorials/modular-crm/part-04"
+ },
+ "Next": {
+ "Name": "Integrating Modules: Implementing Integration Services",
+ "Path": "tutorials/modular-crm/part-06"
+ }
+}
+````
+
+In the previous part, we created a custom Ordering module and installed it into the main application. However, the Ordering module has no functionality now. In this part, we will create an `Order` entity and add functionality to create and list the orders.
+
+## Creating an `Order` Entity
+
+Open the `ModularCrm.Ordering` .NET solution in your IDE.
+
+> Tip: You can open the folder of a module's .NET solution by right-clicking the related module in ABP Studio and selecting the *Open with* -> *Explorer* command.
+
+The following figure shows the `ModularCrm.Ordering` module in the *Solution Explorer* panel of Visual Studio:
+
+
+
+### Adding `Volo.Abp.Ddd.Domain` Package Reference
+
+As you see in the preceding figure, the solution structure is very minimal. It also has a minimal ABP dependency. ABP Framework has [hundreds of NuGet packages](https://abp.io/packages), but the `ModularCrm.Ordering` project only has the [`Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared`](https://abp.io/package-detail/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) package reference:
+
+
+
+We will create an [entity class](../../framework/architecture/domain-driven-design/entities.md). ABP defines base entity classes and other related infrastructure in the [`Volo.Abp.Ddd.Domain`](https://abp.io/package-detail/Volo.Abp.Ddd.Domain) package. So, we need to add a reference to that NuGet package.
+
+You can add that package and manually arrange the [module](../../framework/architecture/modularity/basics.md) class dependency. However, we will use ABP Studio as a more practical option.
+
+Return to ABP Studio, right-click the `ModularCrm.Ordering` package in the *Solution Explorer* and select the *Add Package Reference* command:
+
+
+
+That command opens a dialog to add a new package reference:
+
+
+
+Select the *NuGet* tab, type `Volo.Abp.Ddd.Domain` as the *Package name* and write the version of the package you want to install. Please be sure that you are installing the same version as the other ABP packages you are already using. ABP Studio will provide an easier way to select the package and its version in future ABP versions.
+
+Click the *OK* button. Now you can check the *Packages* under the `ModularCrm.Ordering` module *Dependencies* to see the `Volo.Abp.Ddd.Domain` package is installed:
+
+
+
+### Adding an `Order` Class
+
+Now, you can return your IDE and add an `Order` class to the `ModularCrm.Ordering` project (open an `Entities` folder and place the `Order.cs` into that folder):
+
+````csharp
+using System;
+using ModularCrm.Ordering.Contracts.Enums;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace ModularCrm.Ordering.Entities
+{
+ public class Order : CreationAuditedAggregateRoot
+ {
+ public Guid ProductId { get; set; }
+ public string CustomerName { get; set; }
+ public OrderState State { get; set; }
+ }
+}
+````
+
+We allow users to place only a single product within an order. The `Order` entity would be much more complex in a real-world application. However, the complexity of the `Order` entity doesn't affect modularity, so we keep it simple to focus on modularity in this tutorial. We are inheriting from the [`CreationAuditedAggregateRoot` class](../../framework/architecture/domain-driven-design/entities.md) since I want to know when an order has been created and who has created it.
+
+### Adding an `OrderState` Enumeration
+
+We used an `OrderState` enumeration that has not yet been defined. Open an `Enums` folder in the `ModularCrm.Ordering.Contracts` project and create an `OrderState.cs` file inside it:
+
+````csharp
+namespace ModularCrm.Ordering.Contracts.Enums;
+
+public enum OrderState : byte
+{
+ Placed = 0,
+ Delivered = 1,
+ Canceled = 2
+}
+````
+
+The final structure of the Ordering module should be similar to the following figure in your IDE:
+
+
+
+## Configuring the Database Mapping
+
+The `Order` entity has been created. Now, we need to configure the database mapping for that entity. We will first install the Entity Framework Core package, define the database table mapping, create a database migration and update the database.
+
+### Installing the Entity Framework Core Package
+
+> In this section, we will install the [`Volo.Abp.EntityFrameworkCore`](https://abp.io/package-detail/Volo.Abp.EntityFrameworkCore) package to the Ordering module. That package is DBMS-independent and leaves the DBMS selection to the final application. If you want, you can install a DBMS-specific package instead. For example, you can install the [`Volo.Abp.EntityFrameworkCore.SqlServer`](https://abp.io/package-detail/Volo.Abp.EntityFrameworkCore.SqlServer) package if you are using SQL Server and want to make SQL Server specific configuration for your module's database.
+> You can search for other packages on the [abp.io/packages](https://abp.io/packages) page.
+
+Stop the web application if it is still running. Return to ABP Studio, right-click the `ModularCrm.Ordering` package on the *Solution Explorer* panel and select the *Add Package Reference* command:
+
+
+
+Select the *NuGet* tab, type `Volo.Abp.EntityFrameworkCore` as the *Package name* and specify a *Version* that is compatible with the ABP version used by your solution:
+
+
+
+Once you click the *OK* button, the NuGet package reference is added.
+
+### Defining the Database Mappings
+
+Entity Framework Core requires defining a `DbContext` class as the main object for the database mapping. We want to use the main application's `DbContext` object. That way, we can control the database migrations at a single point, ensure database transactions on multi-module operations, and establish relations between database tables of different modules. However, the Ordering module can not use the main application's `DbContext` object because it doesn't depend on the main application, and we don't want to establish such a dependency.
+
+As a solution, we will define a `DbContext` interface in the Ordering module which is then implemented by the main module's `DbContext`.
+
+Open your IDE, create a `Data` folder under the `ModularCrm.Ordering` project, and create an `IOrderingDbContext` interface under that folder:
+
+````csharp
+using Microsoft.EntityFrameworkCore;
+using ModularCrm.Ordering.Entities;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace ModularCrm.Ordering.Data
+{
+ public interface IOrderingDbContext : IEfCoreDbContext
+ {
+ DbSet Orders { get; set; }
+ }
+}
+````
+
+We can inject and use the `IOrderingDbContext` in the Ordering module. However, we will not usually directly use that interface. Instead, we will use ABP's [repositories](../../framework/architecture/domain-driven-design/repositories.md), which internally uses that interface.
+
+It is best to configure the database table mapping for the `Order` entity in the Ordering module. We will create an extension method that will be called by the main application later. Create a class named `OrderingDbContextModelCreatingExtensions` in the same `Data` folder:
+
+````csharp
+using Microsoft.EntityFrameworkCore;
+using ModularCrm.Ordering.Entities;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+
+namespace ModularCrm.Ordering.Data
+{
+ public static class OrderingDbContextModelCreatingExtensions
+ {
+ public static void ConfigureOrdering(this ModelBuilder builder)
+ {
+ Check.NotNull(builder, nameof(builder));
+
+ builder.Entity(b =>
+ {
+ //Configure table name
+ b.ToTable("Orders");
+
+ //Always call this method to set base entity properties
+ b.ConfigureByConvention();
+
+ //Properties of the entity
+ b.Property(q => q.CustomerName).IsRequired().HasMaxLength(120);
+ });
+ }
+ }
+}
+````
+
+#### Configuring the Main Application
+
+Open the main application's solution in your IDE, find the `ModularCrmDbContext` class under the `ModularCrm.EntityFrameworkCore` project and follow the 3 steps below:
+
+**(1)** Add the following attribute on top of the `ModularCrmDbContext` class:
+
+````csharp
+[ReplaceDbContext(typeof(IOrderingDbContext))]
+````
+
+The `ReplaceDbContext` attribute allows the use of the `ModularCrmDbContext` class in the services in the Ordering module.
+
+**(2)** Implement the `IOrderingDbContext` by the `ModularCrmDbContext` class:
+
+````csharp
+public class ModularCrmDbContext :
+ AbpDbContext,
+ ITenantManagementDbContext,
+ IIdentityDbContext,
+ IProductsDbContext,
+ IOrderingDbContext //NEW: IMPLEMENT THE INTERFACE
+{
+ public DbSet Products { get; set; }
+ public DbSet Orders { get; set; } //NEW: ADD DBSET PROPERTY
+ ...
+}
+````
+
+**(3)** Finally, call the `ConfigureOrdering()` extension method inside the `OnModelCreating` method after other `Configure...` module calls:
+
+````csharp
+protected override void OnModelCreating(ModelBuilder builder)
+{
+ ...
+ builder.ConfigureOrdering(); //NEW: CALL THE EXTENSION METHOD
+}
+````
+
+In this way, the Ordering module can use' ModularCrmDbContext' over the `IProductsDbContext` interface. This part is only needed once for a module. Next time, you can add a new database migration, as explained in the next section.
+
+#### Add a Database Migration
+
+Now, we can add a new database migration. You can use Entity Framework Core's `Add-Migration` (or `dotnet ef migrations add`) terminal command, but in this tutorial, we will use ABP Studio's shortcut UI.
+
+Ensure that the solution has built. You can right-click the `ModularCrm` (under the `main` folder) on ABP Studio *Solution Runner* and select the *Dotnet CLI* -> *Graph Build* command.
+
+Right-click the `ModularCrm.EntityFrameworkCore` package and select the *EF Core CLI* -> *Add Migration* command:
+
+
+
+The *Add Migration* command opens a new dialog to get a migration name:
+
+
+
+Once you click the *OK* button, a new database migration class is added to the `Migrations` folder of the `ModularCrm.EntityFrameworkCore` project:
+
+
+
+Now, you can return to ABP Studio, right-click the `ModularCrm.EntityFrameworkCore` project and select the *EF Core CLI* -> *Update Database* command:
+
+
+
+After the operation completes, you can check your database to see the new `Orders` table has been created:
+
+
+
+## Creating the User Interface
+
+Since this is a non-layered module, we can use entities and repositories directly on the user interface. If you think that is not a good practice, then use the layered module template as we've already done for the *Products* module. But for the Ordering module, we will keep it very simple for this tutorial to show it is also possible.
+
+### Creating a `_ViewImports.cshtml` File
+
+Open the `ModularCrm.Ordering` .NET solution in your favorite IDE, locate the `ModularCrm.Ordering` project and create a `Pages` folder under that project. Then add a `_ViewImports.cshtml` file under that `Pages` folder with the following content:
+
+````csharp
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI
+@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
+@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling
+````
+
+That file imports some tag helpers from ASP.NET Core and ABP. The `Pages` folder should be like the following figure:
+
+
+
+### Creating the Orders Page
+
+Create an `Orders` folder under the `Pages` folder and add an `Index.cshtml` Razor Page inside that new folder. Then replace the `Index.cshtml.cs` content with the following code block:
+
+````csharp
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using ModularCrm.Ordering.Entities;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+
+namespace ModularCrm.Ordering.Pages.Orders
+{
+ public class IndexModel : PageModel
+ {
+ public List Orders { get; set; }
+
+ private readonly IRepository _orderRepository;
+
+ public IndexModel(IRepository orderRepository)
+ {
+ _orderRepository = orderRepository;
+ }
+
+ public async Task OnGetAsync()
+ {
+ Orders = await _orderRepository.GetListAsync();
+ }
+ }
+}
+````
+
+Here, we are injecting a repository to query `Order` entities from the database to show on the page. Open the `Index.cshtml` file and replace the content with the following code block:
+
+````html
+@page
+@model ModularCrm.Ordering.Pages.Orders.IndexModel
+
+Orders
+
+
+
+
+ @foreach (var order in Model.Orders)
+ {
+
+ Customer: @order.CustomerName
+ Product: @order.ProductId
+ State: @order.State
+
+ }
+
+
+
+````
+
+This page shows a list of orders on the UI. We haven't created a UI to create new orders, and we will not do it to keep this tutorial simple. If you want to learn how to create advanced UIs with ABP, please follow the [Book Store tutorial](../book-store/index.md).
+
+### Creating Some Sample Data
+
+You can open the database and manually create a few order records to show on the UI:
+
+
+
+You can get `ProductId` values from the `Products` table and [generate](https://www.guidgenerator.com/) some random GUIDs for other GUID fields.
+
+### Building the Application
+
+Now, we will run the application to see the result. Please stop the application if it is already running. Then open the *Solution Runner* panel, right-click the `ModularCrm.Web` application, and select the *Build* -> *Graph Build* command:
+
+
+
+We've performed a graph build since we've made a change on a module, and more than building the main application is needed. *Graph Build* command also builds the depended modules if necessary. Alternatively, you could build the Ordering module first (on ABP Studio or your IDE), then right-click the `ModularCrm.Web` application and select the *Run* -> *Build & Start*. This approach can be faster if you have too many modules and you make a change in one of the modules.
+
+### Running the Application
+
+Run the main application on ABP Studio, manually type `/Orders` to the end of your application's URL to open the *Orders* page:
+
+
+
+Great! We can see the list of orders. However, there are two problems:
+
+1. The Order page has no menu item on the main menu. This is because we haven't configured the [navigation menu system](../../framework/ui/mvc-razor-pages/navigation-menu.md) yet.
+2. We see Product's GUID ID instead of its name. This is because the Ordering module has no integration with the Products module and doesn't have access to Product module's database to perform a JOIN query.
+
+We will solve the second problem in the [next part](part-06.md), but we can easily add a menu item for the Orders page now.
+
+### Adding a Menu Item
+
+ABP provides a modular navigation [menu system](../../framework/ui/mvc-razor-pages/navigation-menu.md) where each module can contribute to the main menu dynamically.
+
+Open the `ModularCrm.Ordering` .NET solution in your IDE and add the following `OrderingMenuContributor` class into the `ModularCrm.Ordering` project:
+
+````csharp
+using System.Threading.Tasks;
+using Volo.Abp.UI.Navigation;
+
+namespace ModularCrm.Ordering
+{
+ public class OrderingMenuContributor : IMenuContributor
+ {
+ public Task ConfigureMenuAsync(MenuConfigurationContext context)
+ {
+ if (context.Menu.Name == StandardMenus.Main)
+ {
+ context.Menu.AddItem(
+ new ApplicationMenuItem(
+ "ModularCrm.Orders.Index", // Unique menu id
+ "Orders", // Menu display text
+ "~/Orders", // URL
+ "fa-solid fa-basket-shopping" // Icon CSS class
+ )
+ );
+ }
+
+ return Task.CompletedTask;
+ }
+ }
+}
+````
+
+`OrderingMenuContributor` implements the `IMenuContributor` interface, which forces us to implement the `ConfigureMenuAsync` method. In that method, we can manipulate the menu items (add new menu items, remove existing menu items or change the properties of existing menu items). The `ConfigureMenuAsync` method is executed whenever the menu is rendered on the UI, so you can dynamically decide how to manipulate the menu items.
+
+After creating such a class, we should configure the `AbpNavigationOptions` to add that contributor. Open the `OrderingWebModule` class in the `ModularCrm.Ordering` project and add the following configuration code into the `ConfigureServices` method (if there is no `ConfigureServices` method, first create it as shown below):
+
+````csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ Configure(options =>
+ {
+ options.MenuContributors.Add(new OrderingMenuContributor());
+ });
+}
+````
+
+That's all. You can stop the main application (if it is already working), make a graph build on the main application, run it again on ABP Studio's *Solution Runner* panel and *Browse* it to see the result:
+
+
+
+The *Orders* menu item is added under the *Products* menu item.
+
+> You can check the [menu documentation](../../framework/ui/mvc-razor-pages/navigation-menu.md) to learn more about manipulating menu items.
+
+## Summary
+
+In this part of the *Modular CRM* tutorial, we've built the functionality inside the Ordering module we created in the [previous part](part-04.md). Since we've created the Ordering module from scratch (with the *Empty Module* template), we had to implement many aspects manually, add ABP packages, create some configuration classes, etc. It is good to do all these manually for one time to learn the things, but it is better to use the other module templates (that pre-configure the fundamentals for us) for a more comfortable development experience.
+
+In the next part, we will work on establishing communication between the Orders module and the Products module.
diff --git a/docs/en/tutorials/modular-crm/part-06.md b/docs/en/tutorials/modular-crm/part-06.md
new file mode 100644
index 0000000000..2fd5d82f34
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-06.md
@@ -0,0 +1,244 @@
+# Integrating the Modules: Implementing Integration Services
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Building the Ordering module",
+ "Path": "tutorials/modular-crm/part-05"
+ },
+ "Next": {
+ "Name": "Integrating the Modules: Communication via Messages (Events)",
+ "Path": "tutorials/modular-crm/part-07"
+ }
+}
+````
+
+In the previous parts, we created two modules: the Products module to store and manage products and the Orders module to accept orders. However, these modules were completely independent from each other. Only the main application brought them together to execute in the same application, but these modules don't communicate with each other.
+
+In the next three parts, you will learn to implement three patterns for integrating these modules:
+
+1. The Order module will make a request to the Products module to get product information when needed.
+2. The Product module will listen to events from the Orders module, so it can decrease a product's stock count when an order is placed.
+3. Finally, we will execute a database query that includes product and order data.
+
+Let's begin from the first one: The Integration Services.
+
+## The Need for the Integration Services
+
+Remember from the [previous part](part-05.md), the Orders page shows products' identities instead of their names:
+
+
+
+That is because the Orders module has no access to the product data, so it can not perform a JOIN query to get the names of products from the `Products` table. That is a natural result of the modular design. However, we also don't want to show a product's identity on the UI, which is not a good user experience.
+
+As a solution to that problem, the Orders module may ask product names to the Product module using an [integration service](../../framework/api-development/integration-services.md). Integration service concept in ABP is designed for request/response style inter-module (in modular applications) and inter-microservice (in distributed systems) communication.
+
+> When you implement integration services for inter-module communication, you can easily convert them to REST API calls if you convert your solution to a microservice system and convert your modules to services later.
+
+## Creating a Products Integration Service
+
+The first step is to create an integration service in the Products module, so other modules can consume it.
+
+We will define an interface in the `ModularCrm.Products.Application.Contracts` package and implement it in the `ModularCrm.Products.Application` package.
+
+### Defining the `IProductIntegrationService` Interface
+
+Open the `ModularCrm.Products` .NET solution in your IDE, find the `ModularCrm.Products.Application.Contracts` project, create an `Integration` folder inside inside of that project and finally create an interface named `IProductIntegrationService` into that folder. The final folder structure should be like that:
+
+
+
+(Creating an`Integration` folder is not required, but it can be a good practice)
+
+Open the `IProductIntegrationService.cs` file and replace it's content with the following code block:
+
+````csharp
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+
+namespace ModularCrm.Products.Integration
+{
+ [IntegrationService]
+ public interface IProductIntegrationService : IApplicationService
+ {
+ Task> GetProductsByIdsAsync(List ids);
+ }
+}
+````
+
+`IProductIntegrationService` is very similar to a typical [application service](../../framework/architecture/domain-driven-design/application-services.md). The only difference is that it has an `[IntegrationService]` attribute on top of the interface definition. In that way, ABP can recognize and behave differently for them (for example, ABP doesn't expose [integration services](../../framework/api-development/integration-services.md) as HTTP APIs by default if you've configured the *[Auto API Controllers](../../framework/api-development/auto-controllers.md)* feature)
+
+`IProductIntegrationService` has a single method that gets a list of product Ids and returns a list of `ProductDto` objects for these Ids. Any other module can use that method to get details of products when it only has some product Ids. This is exactly what we need in the Ordering module.
+
+> **Design Tip**
+>
+> You may think if we can use the existing application services (like `IProductAppService`) from other modules instead of creating specific integration services. Technically you can use, ABP has no restriction. However, from good design and best practice points, we don't suggest it. Because, application services are designed to be consumed specifically by the presentation layer. They will have different authorization and validation logic, they will need different DTO input and output properties, they will have different performance, optimization and caching requirements, and so on. And most importantly, all these will change by the time based on UI requirements and these changes may break your integrations later. It is best to implement specific integration APIs that is designed and optimized for that purpose.
+>
+> We've reused the `ProductDto` object created for `IProductAppService`, which can be reasonable from a maintenance point of view. But if you think your integration service results will be different from the application service results in the future, it can be good to separate them from the first day so you don't need to introduce breaking changes later.
+
+### Implementing the `ProductIntegrationService` Class
+
+We've defined the integration service interface. Now, we can implement it in the `ModularCrm.Products.Application` project. Create an `Integration` folder and then create a `ProductIntegrationService` class in that folder. The final folder structure should be like this:
+
+
+
+Open the `ProductIntegrationService.cs` file and replace its content with the following code block:
+
+````csharp
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Domain.Repositories;
+
+namespace ModularCrm.Products.Integration
+{
+ [IntegrationService]
+ public class ProductIntegrationService
+ : ProductsAppService, IProductIntegrationService
+ {
+ private readonly IRepository _productRepository;
+
+ public ProductIntegrationService(IRepository productRepository)
+ {
+ _productRepository = productRepository;
+ }
+
+ public async Task> GetProductsByIdsAsync(List ids)
+ {
+ var products = await _productRepository.GetListAsync(
+ product => ids.Contains(product.Id)
+ );
+
+ return ObjectMapper.Map, List>(products);
+ }
+ }
+}
+````
+
+The implementation is pretty simple. Just using a [repository](../../framework/architecture/domain-driven-design/repositories.md) to query `Product` [entities](../../framework/architecture/domain-driven-design/entities.md).
+
+> Here, we directly used `List` classes, but instead, you could wrap inputs and outputs into [DTOs](../../framework/architecture/domain-driven-design/data-transfer-objects.md). In that way, it can be possible to add new properties to these DTOs without changing the signature of your integration service method (and without introducing breaking changes for your client modules).
+
+## Consuming the Products Integration Service
+
+The Product Integration Service is ready for the other modules to use. In this section, we will use it in the Ordering module to convert product IDs to product names.
+
+### Adding a Reference to the `ModularCrm.Products.Application.Contracts` Package
+
+Open the ABP Studio UI and stop the application if it is already running. Then open the *Solution Explorer* in ABP Studio, right-click the `ModularCrm.Ordering` package and select the *Add Package Reference* command:
+
+
+
+In the opening dialog, select the *This solution* tab, find and check the `ModularCrm.Products.Application.Contracts` package and click the OK button:
+
+
+
+ABP Studio adds the package reference and arranges the [module](../../framework/architecture/modularity/basics.md) dependency.
+
+> Instead of directly adding such a package reference, it can be best to import the module first (right-click the `ModularCrm.Ordering` module, select the _Import Module_ command and import the `ModularCrm.Products` module), then install the package reference. In that way, it would be easy to see and keep track of inter-module dependencies.
+
+### Using the Products Integration Service
+
+Now, we can inject and use `IProductIntegrationService` in the Ordering module codebase.
+
+Open the `IndexModel` class (the `IndexModel.cshtml.cs` file under the `Pages/Orders` folder of the `ModularCrm.Ordering` project of the `ModularCrm.Ordering` .NET solution) and change its content as like the following code block:
+
+````csharp
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using ModularCrm.Ordering.Entities;
+using ModularCrm.Products.Integration;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+
+namespace ModularCrm.Ordering.Pages.Orders
+{
+ public class IndexModel : PageModel
+ {
+ public List Orders { get; set; }
+
+ // Define a dictionary for Id -> Name conversion
+ public Dictionary ProductNames { get; set; }
+
+ private readonly IRepository _orderRepository;
+ private readonly IProductIntegrationService _productIntegrationService;
+
+ public IndexModel(
+ IRepository orderRepository,
+ IProductIntegrationService productIntegrationService)
+ {
+ _orderRepository = orderRepository;
+ _productIntegrationService = productIntegrationService;
+ }
+
+ public async Task OnGetAsync()
+ {
+ // Getting the orders from this module's database
+ Orders = await _orderRepository.GetListAsync();
+
+ // Prepare a list of products we need
+ var productIds = Orders.Select(o => o.ProductId).Distinct().ToList();
+
+ // Request the related products from the product integration service
+ var products = await _productIntegrationService
+ .GetProductsByIdsAsync(productIds);
+
+ // Create a dictionary to get a product name easily by its id
+ ProductNames = products.ToDictionary(p => p.Id, p => p.Name);
+ }
+ }
+}
+````
+
+Let's see what we've changed:
+
+* We have defined a `ProductNames` dictionary. We will use it on the UI to convert product IDs to product names. We are filling that dictionary with products from the product integration service.
+* Injecting the `IProductIntegrationService` interface so we can use it to request products.
+* In the `OnGetAsync` method;
+ * First getting the orders from the ordering module's database just like done before.
+ * Next, we are preparing a unique list of product IDs since the `GetProductsByIdsAsync` method requests it.
+ * Then we are calling the `IProductIntegrationService.GetProductsByIdsAsync` method to get a `List` object.
+ * In the last line, we are converting the product list to a dictionary, where the key is `Guid Id` and the value is `string Name`. That way, we can easily find a product's name with its ID.
+
+Open the `Index.cshtml` file, and change the `@order.ProductId` part by `@Model.ProductNames[order.ProductId]` to write the product name instead of the product ID. The final `Index.cshtml` content should be the following:
+
+````html
+@page
+@model ModularCrm.Ordering.Pages.Orders.IndexModel
+
+Orders
+
+
+
+
+ @foreach (var order in Model.Orders)
+ {
+
+ Customer: @order.CustomerName
+ Product: @Model.ProductNames[order.ProductId]
+ State: @order.State
+
+ }
+
+
+
+````
+
+That's all. Now, you can graph build the main application and run it in ABP Studio to see the result:
+
+
+
+As you can see, we can see the product names instead of product IDs.
+
+In the way explained in this section, you can easily create integration services for your modules and consume these integration services in any other module.
+
+> **Design Tip**
+>
+> It is suggested that you keep that type of communication to a minimum and not couple your modules with each other. It can make your solution complicated and may also decrease your system performance. When you need to do it, think about performance and try to make some optimizations. For example, if the Ordering module frequently needs product data, you can use a kind of [cache layer](../../framework/fundamentals/caching.md), so it doesn't make frequent requests to the Products module. Especially if you consider converting your system to a microservice solution in the future, too many direct integration API calls can be a performance bottleneck.
+
diff --git a/docs/en/tutorials/modular-crm/part-07.md b/docs/en/tutorials/modular-crm/part-07.md
new file mode 100644
index 0000000000..9dc18648bd
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-07.md
@@ -0,0 +1,244 @@
+# Integrating the Modules: Communication via Messages (Events)
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Integrating the Modules: Implementing Integration Services",
+ "Path": "tutorials/modular-crm/part-06"
+ },
+ "Next": {
+ "Name": "Integrating the Modules: Joining the Products and Orders Data",
+ "Path": "tutorials/modular-crm/part-08"
+ }
+}
+````
+
+Another common approach to communicating between modules is messaging. By publishing and handling messages, a module can perform an operation when an event happens in another module.
+
+ABP provides two types of event buses for loosely coupled communication:
+
+* [Local Event Bus](../../framework/infrastructure/event-bus/local/index.md) is suitable for in-process messaging. Since in a modular monolith, both of publisher and subscriber are in the same process, they can communicate in-process, without needing an external message broker.
+* **[Distributed Event Bus](../../framework/infrastructure/event-bus/distributed/index.md)** is normal for inter-process messaging, like microservices, for publishing and subscribing to distributed events. However, ABP's distributed event bus works as local (in-process) by default (actually, it uses the Local Event Bus under the hood by default) unless you configure an external message broker.
+
+If you consider converting your modular monolith to a microservice system later, it is best to use the Distributed Event Bus with default local/in-process implementation. It already supports database-level transactional event execution and has no performance penalty. If you switch to an external provider ([RabbitMQ](../../framework/infrastructure/event-bus/distributed/rabbitmq.md), [Kafka](../../framework/infrastructure/event-bus/distributed/kafka.md), etc.), you don't need to change your application code.
+
+On the other hand, if you want to publish events and always subscribe to the same module, you should use the Local Event Bus. That way, if you switch to microservices later, you don't accidentally (and unnecessarily) distribute a local event. Both event bus types can be used in the same system; just understand them and use them properly.
+
+We will use the distributed event bus since we will use messaging (events) between different modules.
+
+## Publishing an Event
+
+In the example scenario, we want to publish an event when a new order is placed. The Ordering module will publish the event since it knows when a new order is placed. The Products module will subscribe to that event and get notified when a new order is placed. This will decrease the stock count of the product related to the new order. The scenario is pretty simple; let's implement it.
+
+### Defining the Event Class
+
+Open the `ModularCrm.Ordering` module in your IDE, find the `ModularCrm.Ordering.Contracts` project, create an `Events` folder and create an `OrderPlacedEto` class inside that folder. The final folder structure should be like this:
+
+
+
+We've placed the `OrderPlacedEto` class inside the `ModularCrm.Ordering.Contracts` project since that project can be referenced and used by other modules without accessing the internal implementation of the Ordering module. The `OrderPlacedEto` class definition should be the following:
+
+````csharp
+using System;
+
+namespace ModularCrm.Ordering.Contracts.Events
+{
+ public class OrderPlacedEto
+ {
+ public string CustomerName { get; set; }
+ public Guid ProductId { get; set; }
+ }
+}
+````
+
+`OrderPlacedEto` is very simple. It is a plain C# class used to transfer data related to the event (*ETO* is an acronym for *Event Transfer Object*, a suggested naming convention but not required). You can add more properties if needed, but for this tutorial, it is more than enough.
+
+### Using the `IDistributedEventBus` Service
+
+The `IDistributedEventBus` service publishes events to the event bus. Until this point, the Ordering module has no functionality to create new orders.
+
+In Part 3, we used ABP's Auto HTTP API Controller feature to expose HTTP APIs from application services automatically. In this section, we will create an ASP.NET Core API controller class to create a new order. In that way, you will also see that it is not different from creating a regular ASP.NET Core controller.
+
+Open the `ModularCrm.Ordering` module's .NET solution, create a `Controllers` folder in the `ModularCrm.Ordering` project and place a controller class named `OrdersController` in that new folder. The final folder structure should be like that:
+
+
+
+Here is the full `OrdersController` class:
+
+````csharp
+using Microsoft.AspNetCore.Mvc;
+using ModularCrm.Ordering.Contracts.Enums;
+using ModularCrm.Ordering.Contracts.Events;
+using ModularCrm.Ordering.Entities;
+using System;
+using System.ComponentModel.DataAnnotations;
+using System.Threading.Tasks;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.EventBus.Distributed;
+
+namespace ModularCrm.Ordering.Controllers
+{
+ [Route("api/orders")]
+ [ApiController]
+ public class OrdersController : AbpControllerBase
+ {
+ private readonly IRepository _orderRepository;
+ private readonly IDistributedEventBus _distributedEventBus;
+
+ public OrdersController(
+ IRepository orderRepository,
+ IDistributedEventBus distributedEventBus)
+ {
+ _orderRepository = orderRepository;
+ _distributedEventBus = distributedEventBus;
+ }
+
+ [HttpPost]
+ public async Task CreateAsync(OrderCreationModel input)
+ {
+ // Create a new Order entity
+ var order = new Order
+ {
+ CustomerName = input.CustomerName,
+ ProductId = input.ProductId,
+ State = OrderState.Placed
+ };
+
+ // Save it to the database
+ await _orderRepository.InsertAsync(order);
+
+ // Publish an event so other modules can be informed
+ await _distributedEventBus.PublishAsync(
+ new OrderPlacedEto
+ {
+ ProductId = order.ProductId,
+ CustomerName = order.CustomerName
+ });
+
+ return Created();
+ }
+
+ public class OrderCreationModel
+ {
+ public Guid ProductId { get; set; }
+
+ [Required]
+ [StringLength(120)]
+ public string CustomerName { get; set; }
+ }
+ }
+}
+````
+
+The `OrdersController.CreateAsync` method creates a new `Order` entity, saves it to the database and finally publishes an `OrderPlacedEto` event.
+
+## Subscribing to an Event
+
+This section will subscribe to the `OrderPlacedEto` event in the Products module and decrease the related product's stock count once a new order is placed.
+
+### Adding a Reference to the `ModularCrm.Ordering.Contracts` Package
+
+Since the `OrderPlacedEto` class is in the `ModularCrm.Ordering.Contracts` project, we must add that package's reference to the Products module. This time, we will use the *Import Module* feature of ABP Studio (as an alternative to the approach we used in the *Adding a Reference to the `ModularCrm.Products.Application.Contracts` Package* section of the [previous part](part-06.md)).
+
+Open the ABP Studio UI and stop the application if it is already running. Then open the *Solution Explorer* in ABP Studio, right-click the `ModularCrm.Products` module and select the *Import Module* command:
+
+
+
+In the opening dialog, find and select the `ModularCrm.Ordering` module, check the *Install this module* option and click the OK button:
+
+
+
+Once you click the OK button, the Ordering module is imported to the Products module, and an installation dialog is open:
+
+
+
+Here, select the `ModularCrm.Ordering.Contracts` package on the left side (because we want to add that package reference) and `ModularCrm.Products.Domain` package on the middle area (because we want to add the package reference to that project). We installed it on the [domain layer](../../framework/architecture/domain-driven-design/domain-layer.md) of the Products module since we will create our event handler in that layer. Click the OK button to finish the installation operation.
+
+You can check the ABP Studio's *Solution Explorer* panel to see the module import and the project reference (dependency).
+
+
+
+### Handling the `OrderPlacedEto` Event
+
+Now, it is possible to use the `OrderPlacedEto` class inside the Product module's domain layer since it has the `ModularCrm.Ordering.Contracts` package reference.
+
+Open the Product module's .NET solution in your IDE, locate the `ModularCrm.Products.Domain` project, and create a new `Orders` folder and an `OrderEventHandler` class inside that folder. The final folder structure should be like this:
+
+
+
+Replace the `OrderEventHandler.cs` file's content with the following code block:
+
+````csharp
+using ModularCrm.Ordering.Contracts.Events;
+using System;
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.EventBus.Distributed;
+
+namespace ModularCrm.Products.Orders
+{
+ public class OrderEventHandler :
+ IDistributedEventHandler,
+ ITransientDependency
+ {
+ private readonly IRepository _productRepository;
+
+ public OrderEventHandler(IRepository productRepository)
+ {
+ _productRepository = productRepository;
+ }
+
+ public async Task HandleEventAsync(OrderPlacedEto eventData)
+ {
+ // Find the related product
+ var product = await _productRepository.FindAsync(eventData.ProductId);
+ if (product == null)
+ {
+ return;
+ }
+
+ // Decrease the stock count
+ product.StockCount = product.StockCount - 1;
+
+ // Update the entity in the database
+ await _productRepository.UpdateAsync(product);
+ }
+ }
+}
+````
+
+`OrderEventHandler` implements the `IDistributedEventHandler` interface. In that way, ABP recognizes that class and subscribes to the related event automatically. Implementing `ITransientDependency` registers the `OrderEventHandler` class to the [dependency injection](../../framework/fundamentals/dependency-injection.md) system as a transient object.
+
+We inject the product repository and update the stock count in the event handler method (`HandleEventAsync`). That's it.
+
+### Testing the Order Creation
+
+To keep this tutorial more focused, we will not create a UI for creating an order. You can easily create a form to create an order on your user interface. In this section, we will test it just using the Swagger UI.
+
+Graph build the `ModularCrm.Web` application, run it on the ABP Studio's *Solution Runner* panel and browse the application UI as demonstrated earlier.
+
+Once the application is running and ready, manually type `/swagger` to the end of the URL and press the ENTER key. You should see the Swagger UI that is used to discover and test your HTTP APIs:
+
+
+
+Find the *Orders* API, click the *Try it out* button, enter a sample value the the *Request body*:
+
+````json
+{
+ "productId": "0fbf7dd0-d7e9-0d18-9214-3a14d9fa1b74",
+ "customerName": "David"
+}
+````
+
+> **IMPORTANT:** Here, you should type a valid Product Id from the Products table of your database!
+
+Once you press the *Execute* button, a new order is created. At that point, you can check the `/Orders` page to see if the new order is shown on the UI, and check the `/Products` page to see if the related product's stock count has decreased.
+
+Here are sample screenshots from the Products and Orders pages:
+
+
+
+We placed a new order for Product C. As a result, Product C's stock count has decreased from 55 to 54 and a new line is added to the Orders page.
diff --git a/docs/en/tutorials/modular-crm/part-08.md b/docs/en/tutorials/modular-crm/part-08.md
new file mode 100644
index 0000000000..20efa3d7bd
--- /dev/null
+++ b/docs/en/tutorials/modular-crm/part-08.md
@@ -0,0 +1,213 @@
+# Integrating the Modules: Joining the Products and Orders Data
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Integrating the Modules: Communication via Messages (Events)",
+ "Path": "tutorials/modular-crm/part-07"
+ }
+}
+````
+
+In this part, you will learn how to perform a database-level JOIN operation on the data of multiple modules when their data is located in the same physical database.
+
+## The Problem
+
+One essential purpose of modularity is to create modules that hide (encapsulate) their internal data and implementation details from the other modules. These modules communicate with each other through well-defined [integration services](../../framework/api-development/integration-services.md) and [events](framework/infrastructure/event-bus/distributed). In that way, you can independently develop and change module implementations (even modules' database structures) from each other as long as you don't break these inter-module integration points.
+
+In a non-modular application, accessing the related data is easy. You could write a LINQ expression that joins `Orders` and `Products` database tables to get the data with a single database query. It would be easier to implement and execute with a good performance.
+
+On the other hand, it becomes harder to perform operations or get reports requiring access to multiple modules' internal data in a modular system. Remember the *[Implementing Integration Services](part-06.md)* part; We couldn't access the product data inside the Ordering module (`IOrderingDbContext` only defines a `DbSet`), so we needed to create an integration service just to get names of products. This approach is harder to implement and less performant (yet it is acceptable if you don't show too many orders on the UI or properly implement a caching layer). Still, it gives freedom to the Products module about its internal database or application logic changes. For example, you can decide to move product data to another physical database or even to another database management system (DBMS) without affecting the other modules.
+
+## A Solution Option
+
+If you want to perform a single database query that spans database tables of multiple modules in a modular system, you still have some options. One option can be creating a reporting module with access to all entities (or database tables). However, when you do that, you accept the following limitations:
+
+* When you change a module's database structure, you should also update your reporting code. That is reasonable, but all module developers should let you know in such a case.
+* You can not change the DBMS of a module easily. For example, performing such a JOIN operation would be impossible if you decide to use MongoDB for your Products module while the Ordering module still uses SQL Server. Moving the Products module to another SQL Server database in another physical server can also break your reporting logic.
+
+If these are not problems for you, or if you can handle them when they become problems, you can create reporting modules or aggregator modules that work with multiple modules' data.
+
+In the next section, we will use the main application's codebase to implement such a JOIN operation to keep the tutorial short. However, you already learned how to create new modules, so you can create a new module and develop your JOIN logic inside that new module if you want.
+
+## The Implementation
+
+In this section, we will create an application service in the main application's .NET solution. That application service will perform a LINQ operation on the `Product` and `Order` entities.
+
+### Defining the Reporting Service Interface
+
+We will define the `IOrderReportingAppService` interface in the `ModularCrm.Application.Contracts` project of the main application's .NET solution.
+
+#### Adding `ModularCrm.Ordering.Contracts` Package Reference
+
+As the first step, we should reference the `ModularCrm.Ordering.Contracts` package (of the `ModularCrm.Ordering` module) since we will reuse the `OrderState` enum defined in that package.
+
+Open the ABP Studio's *Solution Explorer* panel, right-click the `ModularCrm.Application.Contracts` package and select the *Add Package Reference* command:
+
+
+
+Select the *Imported modules* tab, find and check the `ModularCrm.Ordering.Contracts` package and click the OK button:
+
+
+
+The package reference has been added, and we can now use the types in the `ModularCrm.Ordering.Contracts` package.
+
+#### Defining the `IOrderReportingAppService` Interface
+
+Open the main `ModularCrm` .NET solution in your IDE, find the `ModularCrm.Application.Contracts` project, create an `Orders` folder and add an `IOrderReportingAppService` interface. Here is the definition of that interface:
+
+````csharp
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+
+namespace ModularCrm.Orders
+{
+ public interface IOrderReportingAppService : IApplicationService
+ {
+ Task> GetLatestOrders();
+ }
+}
+````
+
+We have a single method, `GetLatestOrders`, that will return a list of the latest orders. We should also define the `OrderReportDto` class that that method returns. Create the following class in the same `Orders` folder:
+
+````csharp
+using System;
+using ModularCrm.Ordering.Contracts.Enums;
+
+namespace ModularCrm.Orders
+{
+ public class OrderReportDto
+ {
+ // Order data
+ public Guid OrderId { get; set; }
+ public string CustomerName { get; set; }
+ public OrderState State { get; set; }
+
+ // Product data
+ public Guid ProductId { get; set; }
+ public string ProductName { get; set; }
+ }
+}
+````
+
+`OrderReportDto` contains data from both the `Order` and `Product` entities. We could use the `OrderState` since we have a reference to the package that defines that enum.
+
+After adding these files, the final folder structure should be like this:
+
+
+
+### Implementing the `OrderReportingAppService` Class
+
+Create an `Orders` folder inside the `ModularCrm.Application` project and add a class named `OrderReportingAppService` inside it. The final folder structure should be like this:
+
+
+
+Open the `OrderReportingAppService.cs` file and change its content by the following code block:
+
+````csharp
+using ModularCrm.Ordering.Entities;
+using ModularCrm.Products;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+
+namespace ModularCrm.Orders
+{
+ public class OrderReportingAppService :
+ ModularCrmAppService,
+ IOrderReportingAppService
+ {
+ private readonly IRepository _orderRepository;
+ private readonly IRepository _productRepository;
+
+ public OrderReportingAppService(
+ IRepository orderRepository,
+ IRepository productRepository)
+ {
+ _orderRepository = orderRepository;
+ _productRepository = productRepository;
+ }
+
+ public async Task> GetLatestOrders()
+ {
+ var orders = await _orderRepository.GetQueryableAsync();
+ var products = await _productRepository.GetQueryableAsync();
+
+ var latestOrders = (from order in orders
+ join product in products on order.ProductId equals product.Id
+ orderby order.CreationTime descending
+ select new OrderReportDto
+ {
+ OrderId = order.Id,
+ CustomerName = order.CustomerName,
+ State = order.State,
+ ProductId = product.Id,
+ ProductName = product.Name
+ })
+ .Take(10)
+ .ToList();
+
+ return latestOrders;
+ }
+ }
+}
+````
+
+Let's explain that class;
+
+* It injects [repository](../../framework/architecture/domain-driven-design/repositories.md) services for `Order` and `Product` entities. We can access all entities of all modules from the main application codebase.
+* In the `GetLatestOrders` method, we get `IQueryable` objects for the entities so we can create LINQ expressions.
+* Then, we execute a LINQ expression with the `join` keyword, enabling us to execute a single query that uses multiple tables.
+
+That's all. In that way, you can execute JOIN queries that use data from multiple modules. However, if you write most of your code into the main application and perform operations on multiple modules, your system can not be so modular. Here we show it is technically possible. Please use at your own risk.
+
+### Testing the Reporting Service
+
+We haven't created a UI to show list of the latest orders using `OrderReportingAppService`. However, we can use the Swagger UI again to test it.
+
+Open the ABP Studio UI, stop the application if it is running, build and run it again. Once the application starts, browse it, then add `/swagger` to the end of the URL to open the Swagger UI:
+
+
+
+Here, find the `OrderReporting` API and execute it as shown above. You should get the order objects with product names.
+
+Alternatively, you can visit the `/api/app/order-reporting/latest-orders` URL to directly execute the HTTP API on the browser (you should write the full URL, like `https://localhost:44358/api/app/order-reporting/latest-orders` - port can be different for your case)
+
+## Summary
+
+In the last three parts of this tutorial, you have learned three ways of integrating your application modules:
+
+1. You can use the integration services to make request/response style communication between your modules.
+2. You can publish events from a module and subscribe to these events from other modules.
+3. You can write your code into the main application, so you can access to all entities (and related data) of all modules. Instead of writing it into the main application code, you can also create some aggregation or reporting modules that can access more than one module entities.
+
+Now, you know the fundamental principles and mechanics of building sophisticated modular monolith applications with ABP.
+
+## Download the Source Code
+
+You can download the completed sample solution [here](https://github.com/abpframework/abp-samples/tree/master/ModularCRM).
+
+## See Also
+
+See the following sections for additional resources.
+
+### The Book Store Tutorial
+
+In this tutorial, we intentionally kept the application logic very simple and didn't build a usable user interface for the modules. Also, didn't implement authorization and localization for the modules. This was to keep your focus on modularity. If you want to learn how to build real-world user interfaces with ABP, you can check the [Book Store tutorial](../book-store/index.md). All the principles and approaches explained there are already possible with a modular system too.
+
+### ABP Reusable Application Modules
+
+ABP is designed as modular from the first day. The ABP team has created tens of production-ready and [reusable application modules](../../modules/index.md). You can investigate these modules (some of them are already [free and open source](https://github.com/abpframework/abp/tree/dev/modules)) to see real-world modules.
+
+When you [create a new ABP solution](../../get-started/index.md), some of these modules are already comes as installed into your application (as NuGet and NPM packages). So, your initial ABP application is already a modular application from day one.
+
+### Guide: Module Development Best Practices & Conventions
+
+ABP team has created the [reusable application modules](../../modules/index.md) based on some strict principles and rules to make them reusable as much as possible in different scenarios, including modular monolith applications and microservice systems.
+
+These application modules are designed so that they are generic, extensible, doesn't depend on each other, reusable in any web application, provides multiple UI and database options, etc. In a monolith modular application, you mostly don't have such requirements. But, you can still check the [best practices guides](../../framework/architecture/best-practices/index.md) that is prepared by the ABP team and followed while implementing these application modules.
diff --git a/docs/en/tutorials/todo/layered/index.md b/docs/en/tutorials/todo/layered/index.md
index db25c826f1..78f49df9dd 100644
--- a/docs/en/tutorials/todo/layered/index.md
+++ b/docs/en/tutorials/todo/layered/index.md
@@ -3,7 +3,7 @@
````json
//[doc-params]
{
- "UI": ["MVC", "Blazor", "BlazorServer", "NG"],
+ "UI": ["MVC", "Blazor", "BlazorServer", "BlazorWebApp" ,"NG"],
"DB": ["EF", "Mongo"]
}
````
@@ -148,6 +148,10 @@ Ensure the `TodoApp.HttpApi.Host` project is the startup project, then run the a
You can explore and test your HTTP API with this UI. Now, we can set the `TodoApp.Blazor` as the startup project and run it to open the actual Blazor application UI:
+{{else if UI=="BlazorWebApp" }}
+
+It is good to run the application before starting the development. Ensure the `TodoApp.Blazor` project is the startup project, then run the application (Ctrl+F5 in Visual Studio) to see the initial UI:
+
{{else if UI=="NG"}}
It is good to run the application before starting the development. The solution has two main applications:
@@ -252,7 +256,7 @@ You can apply changes to the database using the following command, in the same c
dotnet ef database update
```
-> If you are using Visual Studio, you may want to use the `Add-Migration Added_TodoItem` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`TodoApp.Web`{{else if UI=="BlazorServer"}}`TodoApp.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`TodoApp.HttpApi.Host`{{end}} is the startup project and `TodoApp.EntityFrameworkCore` is the *Default Project* in PMC.
+> If you are using Visual Studio, you may want to use the `Add-Migration Added_TodoItem` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`TodoApp.Web`{{else if UI=="BlazorServer" || UI=="Blazor" || UI=="BlazorWebApp"}}`TodoApp.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`TodoApp.HttpApi.Host`{{end}} is the startup project and `TodoApp.EntityFrameworkCore` is the *Default Project* in PMC.
{{else if DB=="Mongo"}}
@@ -581,11 +585,11 @@ If you open the [Swagger UI](https://swagger.io/tools/swagger-ui/) by entering t

-{{else if UI=="Blazor" || UI=="BlazorServer"}}
+{{else if UI=="Blazor" || UI=="BlazorServer" || UI=="BlazorWebApp"}}
### Index.razor.cs
-Open the `Index.razor.cs` file in the `Pages` folder of the *TodoApp.Blazor* project and replace the content with the following code block:
+Open the `Index.razor.cs` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}} *TodoApp.Blazor.Client* {{else}}*TodoApp.Blazor*{{end}} project and replace the content with the following code block:
```csharp
using Microsoft.AspNetCore.Components;
@@ -634,7 +638,7 @@ See the *Dynamic C# Proxies & Auto API Controllers* section below to learn how w
### Index.razor
-Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* project and replace the content with the following code block:
+Open the `Index.razor` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}} *TodoApp.Blazor.Client* {{else}} *TodoApp.Blazor* {{end}} project and replace the content with the following code block:
```xml
@page "/"
@@ -676,7 +680,7 @@ Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* projec
### Index.razor.css
-As the final touch, open the `Index.razor.css` file in the `Pages` folder of the *TodoApp.Blazor* project and replace it with the following content:
+As the final touch, open the `Index.razor.css` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}}*TodoApp.Blazor.Client*{{else}}*TodoApp.Blazor*{{end}} project and replace it with the following content:
```css
#TodoList{
diff --git a/docs/en/ui-themes/lepton-x/angular-customization.md b/docs/en/ui-themes/lepton-x/angular-customization.md
index 5c570478c2..71ee3761f2 100644
--- a/docs/en/ui-themes/lepton-x/angular-customization.md
+++ b/docs/en/ui-themes/lepton-x/angular-customization.md
@@ -1,4 +1,4 @@
-## Customization
+# Customization
### Layouts
diff --git a/docs/en/ui-themes/lepton-x/angular/how-to-add-a-new-variation-to-lepton-x-for-angular.md b/docs/en/ui-themes/lepton-x/angular/how-to-add-a-new-variation-to-lepton-x-for-angular.md
index 01ea39c5ec..afea2fd228 100644
--- a/docs/en/ui-themes/lepton-x/angular/how-to-add-a-new-variation-to-lepton-x-for-angular.md
+++ b/docs/en/ui-themes/lepton-x/angular/how-to-add-a-new-variation-to-lepton-x-for-angular.md
@@ -1,4 +1,4 @@
-## How to Add a New Appearance to LeptonX for Angular
+# How to Add a New Appearance to LeptonX for Angular
LeptonX has four appearances: light, dim, dark, and system. You can add a new appearance to LeptonX for Angular. In this document, we will show you how to add a new appearance to LeptonX for Angular.
### Step 1: Creating the New Theme Definition
diff --git a/docs/en/ui-themes/lepton-x/angular/how-to-change-default-theme-option.md b/docs/en/ui-themes/lepton-x/angular/how-to-change-default-theme-option.md
index 961cbc461e..4b58c4b106 100644
--- a/docs/en/ui-themes/lepton-x/angular/how-to-change-default-theme-option.md
+++ b/docs/en/ui-themes/lepton-x/angular/how-to-change-default-theme-option.md
@@ -1,4 +1,4 @@
-## Configuring the Default Theme for LeptonX
+# Configuring the Default Theme for LeptonX
The LeptonX theme offers multiple appearances to suit your application's visual style. You can easily configure the default theme for your application using the ThemeLeptonXModule provided by LeptonX.
### Configuration Code
diff --git a/docs/en/ui-themes/lepton-x/comparison-obsolete.md b/docs/en/ui-themes/lepton-x/comparison-obsolete.md
index 2870be0a8e..e14dcfc368 100644
--- a/docs/en/ui-themes/lepton-x/comparison-obsolete.md
+++ b/docs/en/ui-themes/lepton-x/comparison-obsolete.md
@@ -1,4 +1,4 @@
-## Feature Set
+# Feature Set
### Frontend Choices
diff --git a/docs/en/ui-themes/lepton-x/index.md b/docs/en/ui-themes/lepton-x/index.md
index 5fc1ee4fb1..3bfc769409 100644
--- a/docs/en/ui-themes/lepton-x/index.md
+++ b/docs/en/ui-themes/lepton-x/index.md
@@ -85,13 +85,13 @@ LeptonX Module doesn't define any permissions.
You can use the following CLI command to download the source-code:
```bash
-abp get-source Volo.Abp.LeptonXTheme.Pro
+abp get-source Volo.Abp.LeptonXTheme
```
If you want to download the source code of the preview version, you can use the following command:
```bash
-abp get-source Volo.Abp.LeptonXTheme.Pro --preview
+abp get-source Volo.Abp.LeptonXTheme --preview
```
> You can download the source code of a certain version by using the `--version` parameter. See the [ABP CLI documentation](../../cli/index#get-source) for other possible options.
diff --git a/docs/en/ui-themes/lepton-x/mvc.md b/docs/en/ui-themes/lepton-x/mvc.md
index 5e7aab2b7f..4627ccb727 100644
--- a/docs/en/ui-themes/lepton-x/mvc.md
+++ b/docs/en/ui-themes/lepton-x/mvc.md
@@ -152,7 +152,7 @@ Commonly used components in all layouts.

-Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#breadcrumb) for more information.
+Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](../../framework/ui/mvc-razor-pages/page-header.md#breadcrumb) for more information.
If you need to replace the component, you can follow the steps below.
@@ -166,7 +166,7 @@ If you need to replace the component, you can follow the steps below.

-Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#page-title) for more information.
+Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](../../framework/ui/mvc-razor-pages/page-header.md#page-title) for more information.
If you need to replace the component, you can follow the steps below.
diff --git a/framework/NuGet.md b/framework/NuGet.md
index 7b143ff3b9..79b27606a4 100644
--- a/framework/NuGet.md
+++ b/framework/NuGet.md
@@ -11,7 +11,7 @@ ABP offers an opinionated architecture to build enterprise software solutions wi
🔗GitHub Repository: https://github.com/abpframework/abp
-🔗Samples: https://abp.io/docs/latest/Samples/Index
+🔗Samples: https://abp.io/docs/latest/samples/
🔗Official Theme: https://www.LeptonTheme.com
@@ -126,4 +126,4 @@ If you are building an enterprise-level application with pro support, extra tool
To understand how it works, see [How it Works](https://abp.io/how-it-works) page.
-If you wonder why you should choose ABP Commercial, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page.
\ No newline at end of file
+If you wonder why you should choose ABP, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page.
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json
index 9b8257a2f0..da04b6d001 100644
--- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.Application.Contracts",
- "hash": "392da50100d94bd18adbc7c41cd9efce",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account",
diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json
index dbd55b0f21..d02c89e745 100644
--- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.Application",
- "hash": "ebd6f98a2003938944d5a3790daf20af",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account",
@@ -141,6 +141,7 @@
"methods": [
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Account",
"name": "RegisterAsync",
"summary": null,
"isAsync": true,
@@ -157,6 +158,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Account",
"name": "SendPasswordResetCodeAsync",
"summary": null,
"isAsync": true,
@@ -173,6 +175,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Account",
"name": "VerifyPasswordResetTokenAsync",
"summary": null,
"isAsync": true,
@@ -189,6 +192,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Account",
"name": "ResetPasswordAsync",
"summary": null,
"isAsync": true,
@@ -208,6 +212,87 @@
"name": "AccountAppService",
"summary": null
},
+ {
+ "namespace": "Volo.Abp.Account",
+ "baseClass": {
+ "name": "IdentityAppServiceBase",
+ "namespace": "Volo.Abp.Identity",
+ "declaringAssemblyName": "Volo.Abp.Identity.Application",
+ "fullName": "Volo.Abp.Identity.IdentityAppServiceBase"
+ },
+ "implementingInterfaces": [
+ {
+ "name": "IApplicationService",
+ "namespace": "Volo.Abp.Application.Services",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts",
+ "fullName": "Volo.Abp.Application.Services.IApplicationService"
+ },
+ {
+ "name": "IRemoteService",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IRemoteService"
+ },
+ {
+ "name": "IAvoidDuplicateCrossCuttingConcerns",
+ "namespace": "Volo.Abp.Aspects",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns"
+ },
+ {
+ "name": "IValidationEnabled",
+ "namespace": "Volo.Abp.Validation",
+ "declaringAssemblyName": "Volo.Abp.Validation",
+ "fullName": "Volo.Abp.Validation.IValidationEnabled"
+ },
+ {
+ "name": "IUnitOfWorkEnabled",
+ "namespace": "Volo.Abp.Uow",
+ "declaringAssemblyName": "Volo.Abp.Uow",
+ "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled"
+ },
+ {
+ "name": "IAuditingEnabled",
+ "namespace": "Volo.Abp.Auditing",
+ "declaringAssemblyName": "Volo.Abp.Auditing.Contracts",
+ "fullName": "Volo.Abp.Auditing.IAuditingEnabled"
+ },
+ {
+ "name": "IGlobalFeatureCheckingEnabled",
+ "namespace": "Volo.Abp.GlobalFeatures",
+ "declaringAssemblyName": "Volo.Abp.GlobalFeatures",
+ "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled"
+ },
+ {
+ "name": "ITransientDependency",
+ "namespace": "Volo.Abp.DependencyInjection",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.DependencyInjection.ITransientDependency"
+ },
+ {
+ "name": "IDynamicClaimsAppService",
+ "namespace": "Volo.Abp.Account",
+ "declaringAssemblyName": "Volo.Abp.Account.Application.Contracts",
+ "fullName": "Volo.Abp.Account.IDynamicClaimsAppService"
+ }
+ ],
+ "methods": [
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Account",
+ "name": "RefreshAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": []
+ }
+ ],
+ "contentType": "applicationService",
+ "name": "DynamicClaimsAppService",
+ "summary": null
+ },
{
"namespace": "Volo.Abp.Account",
"baseClass": {
@@ -275,6 +360,7 @@
"methods": [
{
"returnType": "ProfileDto",
+ "namespace": "Volo.Abp.Account",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -285,6 +371,7 @@
},
{
"returnType": "ProfileDto",
+ "namespace": "Volo.Abp.Account",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -301,6 +388,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Account",
"name": "ChangePasswordAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json
index 0fe0981e1d..cba964b090 100644
--- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json
@@ -1,10 +1,25 @@
{
"name": "Volo.Abp.Account.Blazor",
- "hash": "caa7279a6d55f90db90b3ec2313a4e12",
+ "hash": "",
"contents": [
{
- "namespace": "Volo.Abp.Account.Blazor;",
+ "namespace": "Volo.Abp.Account.Blazor",
"dependsOnModules": [
+ {
+ "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming",
+ "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming",
+ "name": "AbpAspNetCoreComponentsWebThemingModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.AutoMapper",
+ "namespace": "Volo.Abp.AutoMapper",
+ "name": "AbpAutoMapperModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.Account.Application.Contracts",
+ "namespace": "Volo.Abp.Account",
+ "name": "AbpAccountApplicationContractsModule"
+ }
],
"implementingInterfaces": [
{
@@ -53,6 +68,12 @@
"contentType": "abpModule",
"name": "AbpAccountBlazorModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Blazor.Pages.Account",
+ "contentType": "webPage",
+ "name": "AccountManage",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json
index bed1809a98..d6313846ba 100644
--- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.HttpApi.Client",
- "hash": "5a1716ad59fa19da3009381a4d0d3e1d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account",
diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json
index 2df3965fe7..3ee0c8975a 100644
--- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.HttpApi",
- "hash": "caa7279a6d55f90db90b3ec2313a4e12",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account",
@@ -68,6 +68,107 @@
"contentType": "abpModule",
"name": "AbpAccountHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/account/register",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "Volo.Abp.Identity.IdentityUserDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "RegisterDto"
+ }
+ ]
+ },
+ {
+ "path": "api/account/send-password-reset-code",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "SendPasswordResetCodeDto"
+ }
+ ]
+ },
+ {
+ "path": "api/account/verify-password-reset-token",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "System.Boolean",
+ "responseTypeAsJson": "true",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "VerifyPasswordResetTokenInput"
+ }
+ ]
+ },
+ {
+ "path": "api/account/reset-password",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "ResetPasswordDto"
+ }
+ ]
+ },
+ {
+ "path": "api/account/dynamic-claims/refresh",
+ "method": "POST",
+ "groupName": "DynamicClaims",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/account/my-profile",
+ "method": "GET",
+ "groupName": "Profile",
+ "responseType": "Volo.Abp.Account.ProfileDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/account/my-profile",
+ "method": "PUT",
+ "groupName": "Profile",
+ "responseType": "Volo.Abp.Account.ProfileDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "UpdateProfileDto"
+ }
+ ]
+ },
+ {
+ "path": "api/account/my-profile/change-password",
+ "method": "POST",
+ "groupName": "Profile",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "ChangePasswordInput"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json
index 2f22b0023e..5f73497d46 100644
--- a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.Web.OpenIddict",
- "hash": "29785246e5bdaa8010c7da236efe3ba1",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account.Web",
diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json
index f346e062ae..af62c4f131 100644
--- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json
+++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.Account.Web",
- "hash": "93b7e37fb41330719f0911b2c1b31cf0",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.Account.Web",
@@ -78,6 +78,107 @@
"contentType": "abpModule",
"name": "AbpAccountWebModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/account/login",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "login",
+ "type": "UserLoginInfo"
+ }
+ ]
+ },
+ {
+ "path": "api/account/logout",
+ "method": "GET",
+ "groupName": "Account",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/account/check-password",
+ "method": "POST",
+ "groupName": "Account",
+ "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "login",
+ "type": "UserLoginInfo"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "AccessDeniedModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "ForgotPasswordModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "LoggedOutModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "LoginModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "LogoutModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "ManageModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "PasswordResetLinkSentModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "RegisterModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "ResetPasswordModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Account.Web.Pages.Account",
+ "contentType": "webPage",
+ "name": "ResetPasswordConfirmationModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json
index 459bd50c19..3dab2d3fe4 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.AuditLogging.Domain.Shared",
- "hash": "8e82f96ec1349d214e72c8fb4f902460",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.AuditLogging",
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json
index 9d2726bc18..92016b016f 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.AuditLogging.Domain",
- "hash": "fa171768247503b44e7e57d4518d2ef8",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.AuditLogging",
@@ -274,7 +274,7 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
@@ -486,6 +486,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -528,6 +529,11 @@
"name": "url",
"isOptional": true
},
+ {
+ "type": "String",
+ "name": "clientId",
+ "isOptional": true
+ },
{
"type": "Nullable",
"name": "userId",
@@ -587,6 +593,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -614,6 +621,11 @@
"name": "url",
"isOptional": true
},
+ {
+ "type": "String",
+ "name": "clientId",
+ "isOptional": true
+ },
{
"type": "Nullable",
"name": "userId",
@@ -668,6 +680,7 @@
},
{
"returnType": "Dictionary",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetAverageExecutionDurationPerDayAsync",
"summary": null,
"isAsync": true,
@@ -694,6 +707,7 @@
},
{
"returnType": "EntityChange",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetEntityChange",
"summary": null,
"isAsync": true,
@@ -715,6 +729,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetEntityChangeListAsync",
"summary": null,
"isAsync": true,
@@ -781,6 +796,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetEntityChangeCountAsync",
"summary": null,
"isAsync": true,
@@ -827,6 +843,7 @@
},
{
"returnType": "EntityChangeWithUsername",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetEntityChangeWithUsernameAsync",
"summary": null,
"isAsync": true,
@@ -848,6 +865,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.AuditLogging",
"name": "GetEntityChangesWithUsernameAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json
index 5e5f6b6373..40affc51e8 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.AuditLogging.EntityFrameworkCore",
- "hash": "ce7134690167eded17ba2eac28d2d34e",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore",
@@ -67,33 +67,27 @@
{
"namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore",
"connectionStringName": "AbpAuditLogging",
- "databaseTables": [
- {
- "entityFullName": "Volo.Abp.AuditLogging.AuditLog",
- "contentType": "databaseTable",
- "name": "AbpAuditLogs",
- "summary": null
- },
- {
- "entityFullName": "Volo.Abp.AuditLogging.AuditLogAction",
- "contentType": "databaseTable",
- "name": "AbpAuditLogActions",
- "summary": null
- },
- {
- "entityFullName": "Volo.Abp.AuditLogging.EntityChange",
- "contentType": "databaseTable",
- "name": "AbpEntityChanges",
- "summary": null
- },
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
{
- "entityFullName": "Volo.Abp.AuditLogging.EntityPropertyChange",
- "contentType": "databaseTable",
- "name": "AbpEntityPropertyChanges",
- "summary": null
+ "returnType": "Void",
+ "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore",
+ "name": "ConfigureAuditLogging",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
}
],
- "replacedDbContexts": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json
index 7b26febfce..93652f22ec 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.AuditLogging.MongoDB",
- "hash": "ce6dfe92b247a77b0138c47e0da4a98c",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.AuditLogging.MongoDB",
@@ -71,7 +71,7 @@
{
"entityFullName": "Volo.Abp.AuditLogging.AuditLog",
"contentType": "databaseCollection",
- "name": "AbpAuditLogs",
+ "name": "AuditLogs",
"summary": null
}
],
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json
index c916e58771..40eeda286c 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BackgroundJobs.Domain.Shared",
- "hash": "ad745dc8f75ef6e5b391ee5eca14a895",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BackgroundJobs",
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json
index e969d25819..f792712158 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BackgroundJobs.Domain",
- "hash": "9135b4c99ca5f16a980041e8621fb415",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BackgroundJobs",
@@ -222,6 +222,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Abp.BackgroundJobs",
"name": "GetWaitingListAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json
index 41772a0d4f..abe0548d04 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BackgroundJobs.EntityFrameworkCore",
- "hash": "093b92974b3f005cca5e441d8cc1bafb",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore",
@@ -67,15 +67,27 @@
{
"namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore",
"connectionStringName": "AbpBackgroundJobs",
- "databaseTables": [
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
{
- "entityFullName": "Volo.Abp.BackgroundJobs.BackgroundJobRecord",
- "contentType": "databaseTable",
- "name": "AbpBackgroundJobs",
- "summary": null
+ "returnType": "Void",
+ "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore",
+ "name": "ConfigureBackgroundJobs",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
}
],
- "replacedDbContexts": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json
index 3c333134f7..d6e11b2a6f 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BackgroundJobs.MongoDB",
- "hash": "43dcde5f0f68f0b06ce3158a154b58e1",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BackgroundJobs.MongoDB",
@@ -71,7 +71,7 @@
{
"entityFullName": "Volo.Abp.BackgroundJobs.BackgroundJobRecord",
"contentType": "databaseCollection",
- "name": "AbpBackgroundJobs",
+ "name": "BackgroundJobs",
"summary": null
}
],
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json
index 0e1d29e0df..14797aa792 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
- "hash": "69ff20961072c952f3a841d6e783cba9",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
index 8ce707cd24..fc53ff7c76 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
@@ -3,8 +3,8 @@
"name": "asp.net",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.shared": "~8.2.1",
- "@abp/prismjs": "~8.2.1",
- "@abp/highlight.js": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~8.2.3",
+ "@abp/prismjs": "~8.2.3",
+ "@abp/highlight.js": "~8.2.3"
}
}
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
index e8151ebe13..0c24a28d41 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
@@ -2,212 +2,212 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/clipboard@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.1.tgz#6c2c14fecbac60d29680e8a0b6d304e5f8baf30d"
- integrity sha512-9hIb9aQyEoe5955cV5M81u7RUL/IObN55PQEKhzQsQcoQb+evLG9V43Epwtkg/2t6w02d+W5HjysBEc6t8o1IA==
+"@abp/clipboard@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.3.tgz#9e0c0b750114ddaca0beba1051dd7fc1fe77f543"
+ integrity sha512-RS1pVeeN1/5LlDNBBRDFUqR+xpfWteCZfIByh8xAbec1xuxHmxxxvb3kv1Wp7n4c1ec3V0yLRyvaj0SfYmnWNA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
clipboard "^2.0.8"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/highlight.js@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.1.tgz#440f4618d8ce8904377250684425a4f55205b0c0"
- integrity sha512-cRP5bmpXx7WGvCTJLtHT/TbNd/2NA1R2BRnUdnd+CkAHXFJTSPhRyx0lKfeMIQik97uAnal0hKzK1/6181qt9Q==
+"@abp/highlight.js@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.3.tgz#bae44df0505814cc0692c3a1ea7ca1e36988a677"
+ integrity sha512-IFNDZcXGKMLY/IZRLZVxY7vsoaWYD2aZYCdqKGFyxHaBTB3KltEDC1Nb6pxE0C1YlNJS5g3BOC+V/z8ZD7h6SA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@highlightjs/cdn-assets" "~11.4.0"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/prismjs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.1.tgz#d72808d2569154b4db3f2960d90d46f0de6ddc07"
- integrity sha512-JUla9NORFW8Mti/WnNQ8WnhQGBUJAh7OQDJNSbRuaUhbnu2Jm4WUtvPknpfQSenE+RBT1VWrWd6X9pOvYCxxiA==
+"@abp/prismjs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.3.tgz#8927f1660815f4e3de11085ea5f3a73b127a858a"
+ integrity sha512-JJ/wlLlWShGYj0FMFjxriCIA4v1Fe+oHTgo1Kt9JpYkYG+Zq+rHsj1tvNthh2GU7Y69Kt2w1r1LpEDKZZHu58A==
dependencies:
- "@abp/clipboard" "~8.2.1"
- "@abp/core" "~8.2.1"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/core" "~8.2.3"
prismjs "^1.26.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
index 89d7ec4115..999387c332 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
@@ -3,8 +3,8 @@
"name": "asp.net",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1",
- "@abp/prismjs": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3",
+ "@abp/prismjs": "~8.2.3"
},
"devDependencies": {}
}
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
index 0ded056211..86d1bf43fa 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
@@ -2,211 +2,211 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/clipboard@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.1.tgz#6c2c14fecbac60d29680e8a0b6d304e5f8baf30d"
- integrity sha512-9hIb9aQyEoe5955cV5M81u7RUL/IObN55PQEKhzQsQcoQb+evLG9V43Epwtkg/2t6w02d+W5HjysBEc6t8o1IA==
+"@abp/clipboard@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.3.tgz#9e0c0b750114ddaca0beba1051dd7fc1fe77f543"
+ integrity sha512-RS1pVeeN1/5LlDNBBRDFUqR+xpfWteCZfIByh8xAbec1xuxHmxxxvb3kv1Wp7n4c1ec3V0yLRyvaj0SfYmnWNA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
clipboard "^2.0.8"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/prismjs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.1.tgz#d72808d2569154b4db3f2960d90d46f0de6ddc07"
- integrity sha512-JUla9NORFW8Mti/WnNQ8WnhQGBUJAh7OQDJNSbRuaUhbnu2Jm4WUtvPknpfQSenE+RBT1VWrWd6X9pOvYCxxiA==
+"@abp/prismjs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.3.tgz#8927f1660815f4e3de11085ea5f3a73b127a858a"
+ integrity sha512-JJ/wlLlWShGYj0FMFjxriCIA4v1Fe+oHTgo1Kt9JpYkYG+Zq+rHsj1tvNthh2GU7Y69Kt2w1r1LpEDKZZHu58A==
dependencies:
- "@abp/clipboard" "~8.2.1"
- "@abp/core" "~8.2.1"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/core" "~8.2.3"
prismjs "^1.26.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json
index ad923a8ce3..6deba88b34 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BlobStoring.Database.Domain.Shared",
- "hash": "ca71bff6138a518c84899353b3d88f2e",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BlobStoring.Database",
@@ -11,6 +11,50 @@
"name": "AbpValidationModule"
}
],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
"contentType": "abpModule",
"name": "BlobStoringDatabaseDomainSharedModule",
"summary": null
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json
index 44aa7327f7..cd919d1727 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BlobStoring.Database.Domain",
- "hash": "4c72530134504ee1792b7e24248dc384",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BlobStoring.Database",
@@ -21,6 +21,50 @@
"name": "BlobStoringDatabaseDomainSharedModule"
}
],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
"contentType": "abpModule",
"name": "BlobStoringDatabaseDomainModule",
"summary": null
@@ -29,56 +73,69 @@
"baseClass": {
"name": "AggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.AggregateRoot"
},
"implementingInterfaces": [
{
"name": "IEntity",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
},
{
"name": "IEntity",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
},
{
"name": "IAggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
},
{
"name": "IAggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
},
{
"name": "IGeneratesDomainEvents",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents"
},
{
"name": "IHasExtraProperties",
"namespace": "Volo.Abp.Data",
- "declaringAssemblyName": "Volo.Abp.ObjectExtending"
+ "declaringAssemblyName": "Volo.Abp.ObjectExtending",
+ "fullName": "Volo.Abp.Data.IHasExtraProperties"
},
{
"name": "IHasConcurrencyStamp",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Data"
+ "declaringAssemblyName": "Volo.Abp.Data",
+ "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp"
},
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy"
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
+ "fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
- "isAsync": false,
+ "namespace": "Volo.Abp.BlobStoring.Database",
"name": "SetContent",
"summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
"parameters": [
{
"type": "Byte[]",
@@ -88,10 +145,32 @@
]
}
],
- "namespace": "Volo.Abp.BlobStoring.Database",
- "primaryKeyType": "Guid",
"collectionProperties": {},
"navigationProperties": {},
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "primaryKeyType": "Guid",
+ "properties": [
+ {
+ "type": "System.Guid",
+ "name": "ContainerId",
+ "summary": null
+ },
+ {
+ "type": "System.Nullable`1[System.Guid]",
+ "name": "TenantId",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Name",
+ "summary": null
+ },
+ {
+ "type": "System.Byte[]",
+ "name": "Content",
+ "summary": null
+ }
+ ],
"contentType": "aggregateRoot",
"name": "DatabaseBlob",
"summary": null
@@ -100,55 +179,76 @@
"baseClass": {
"name": "AggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.AggregateRoot"
},
"implementingInterfaces": [
{
"name": "IEntity",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
},
{
"name": "IEntity",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
},
{
"name": "IAggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
},
{
"name": "IAggregateRoot",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
},
{
"name": "IGeneratesDomainEvents",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain"
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents"
},
{
"name": "IHasExtraProperties",
"namespace": "Volo.Abp.Data",
- "declaringAssemblyName": "Volo.Abp.ObjectExtending"
+ "declaringAssemblyName": "Volo.Abp.ObjectExtending",
+ "fullName": "Volo.Abp.Data.IHasExtraProperties"
},
{
"name": "IHasConcurrencyStamp",
"namespace": "Volo.Abp.Domain.Entities",
- "declaringAssemblyName": "Volo.Abp.Data"
+ "declaringAssemblyName": "Volo.Abp.Data",
+ "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp"
},
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy"
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
+ "fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [],
- "namespace": "Volo.Abp.BlobStoring.Database",
- "primaryKeyType": "Guid",
"collectionProperties": {},
"navigationProperties": {},
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "primaryKeyType": "Guid",
+ "properties": [
+ {
+ "type": "System.Nullable`1[System.Guid]",
+ "name": "TenantId",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Name",
+ "summary": null
+ }
+ ],
"contentType": "aggregateRoot",
"name": "DatabaseBlobContainer",
"summary": null
@@ -158,12 +258,67 @@
"entityAnalyzeModel": {
"namespace": "Volo.Abp.BlobStoring.Database",
"primaryKeyType": "Guid",
- "collectionProperties": {},
- "navigationProperties": {},
+ "properties": [],
"contentType": "entity",
"name": "DatabaseBlobContainer",
"summary": null
},
+ "implementingInterfaces": [
+ {
+ "name": "IBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository"
+ },
+ {
+ "name": "IBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository"
+ },
+ {
+ "name": "IReadOnlyBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository"
+ },
+ {
+ "name": "IRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IRepository"
+ },
+ {
+ "name": "IReadOnlyBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository"
+ }
+ ],
+ "methods": [
+ {
+ "returnType": "DatabaseBlobContainer",
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "name": "FindAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "name",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ }
+ ],
"contentType": "repositoryInterface",
"name": "IDatabaseBlobContainerRepository",
"summary": null
@@ -173,12 +328,131 @@
"entityAnalyzeModel": {
"namespace": "Volo.Abp.BlobStoring.Database",
"primaryKeyType": "Guid",
- "collectionProperties": {},
- "navigationProperties": {},
+ "properties": [],
"contentType": "entity",
"name": "DatabaseBlob",
"summary": null
},
+ "implementingInterfaces": [
+ {
+ "name": "IBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository"
+ },
+ {
+ "name": "IBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository"
+ },
+ {
+ "name": "IReadOnlyBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository"
+ },
+ {
+ "name": "IRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IRepository"
+ },
+ {
+ "name": "IReadOnlyBasicRepository",
+ "namespace": "Volo.Abp.Domain.Repositories",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository"
+ }
+ ],
+ "methods": [
+ {
+ "returnType": "DatabaseBlob",
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "name": "FindAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "containerId",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "name",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ },
+ {
+ "returnType": "Boolean",
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "name": "ExistsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "containerId",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "name",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ },
+ {
+ "returnType": "Boolean",
+ "namespace": "Volo.Abp.BlobStoring.Database",
+ "name": "DeleteAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "containerId",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "name",
+ "isOptional": false
+ },
+ {
+ "type": "Boolean",
+ "name": "autoSave",
+ "isOptional": true
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ }
+ ],
"contentType": "repositoryInterface",
"name": "IDatabaseBlobRepository",
"summary": null
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json
index 132618f5a1..9cfa23ae83 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
- "hash": "0c136e999f8d28fc3b27414e0ff5aef7",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
@@ -16,6 +16,50 @@
"name": "AbpEntityFrameworkCoreModule"
}
],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
"contentType": "abpModule",
"name": "BlobStoringDatabaseEntityFrameworkCoreModule",
"summary": null
@@ -23,18 +67,93 @@
{
"namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
"connectionStringName": "AbpBlobStoring",
- "databaseTables": [
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
+ "name": "ConfigureBlobStoring",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
+ }
+ ],
+ "implementingInterfaces": [
+ {
+ "name": "IInfrastructure",
+ "namespace": "Microsoft.EntityFrameworkCore.Infrastructure",
+ "declaringAssemblyName": "Microsoft.EntityFrameworkCore",
+ "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure"
+ },
+ {
+ "name": "IDbContextDependencies",
+ "namespace": "Microsoft.EntityFrameworkCore.Internal",
+ "declaringAssemblyName": "Microsoft.EntityFrameworkCore",
+ "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies"
+ },
+ {
+ "name": "IDbSetCache",
+ "namespace": "Microsoft.EntityFrameworkCore.Internal",
+ "declaringAssemblyName": "Microsoft.EntityFrameworkCore",
+ "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache"
+ },
+ {
+ "name": "IDbContextPoolable",
+ "namespace": "Microsoft.EntityFrameworkCore.Internal",
+ "declaringAssemblyName": "Microsoft.EntityFrameworkCore",
+ "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable"
+ },
+ {
+ "name": "IResettableService",
+ "namespace": "Microsoft.EntityFrameworkCore.Infrastructure",
+ "declaringAssemblyName": "Microsoft.EntityFrameworkCore",
+ "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService"
+ },
+ {
+ "name": "IDisposable",
+ "namespace": "System",
+ "declaringAssemblyName": "System.Private.CoreLib",
+ "fullName": "System.IDisposable"
+ },
+ {
+ "name": "IAsyncDisposable",
+ "namespace": "System",
+ "declaringAssemblyName": "System.Private.CoreLib",
+ "fullName": "System.IAsyncDisposable"
+ },
+ {
+ "name": "IAbpEfCoreDbContext",
+ "namespace": "Volo.Abp.EntityFrameworkCore",
+ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore",
+ "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext"
+ },
+ {
+ "name": "IEfCoreDbContext",
+ "namespace": "Volo.Abp.EntityFrameworkCore",
+ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore",
+ "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext"
+ },
{
- "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlob",
- "contentType": "databaseTable",
- "name": "AbpBlobs",
- "summary": null
+ "name": "ITransientDependency",
+ "namespace": "Volo.Abp.DependencyInjection",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.DependencyInjection.ITransientDependency"
},
{
- "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlobContainer",
- "contentType": "databaseTable",
- "name": "AbpBlobContainers",
- "summary": null
+ "name": "IBlobStoringDbContext",
+ "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
+ "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore",
+ "fullName": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore.IBlobStoringDbContext"
}
],
"contentType": "efCoreDbContext",
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json
index 888f20c52a..207bff6963 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.BlobStoring.Database.MongoDB",
- "hash": "d0d45fc623e9180d60e60935449cb69b",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.BlobStoring.Database.MongoDB",
@@ -16,6 +16,50 @@
"name": "AbpMongoDbModule"
}
],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
"contentType": "abpModule",
"name": "BlobStoringDatabaseMongoDbModule",
"summary": null
@@ -27,16 +71,36 @@
{
"entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlobContainer",
"contentType": "databaseCollection",
- "name": "AbpBlobContainers",
+ "name": "BlobContainers",
"summary": null
},
{
"entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlob",
"contentType": "databaseCollection",
- "name": "AbpBlobs",
+ "name": "Blobs",
"summary": null
}
],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpMongoDbContext",
+ "namespace": "Volo.Abp.MongoDB",
+ "declaringAssemblyName": "Volo.Abp.MongoDB",
+ "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext"
+ },
+ {
+ "name": "ITransientDependency",
+ "namespace": "Volo.Abp.DependencyInjection",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.DependencyInjection.ITransientDependency"
+ },
+ {
+ "name": "IBlobStoringMongoDbContext",
+ "namespace": "Volo.Abp.BlobStoring.Database.MongoDB",
+ "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.MongoDB",
+ "fullName": "Volo.Abp.BlobStoring.Database.MongoDB.IBlobStoringMongoDbContext"
+ }
+ ],
"contentType": "mongoDbContext",
"name": "BlobStoringMongoDbContext",
"summary": null
diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json
index 0933dd25b5..f0d94eb3ee 100644
--- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.BloggingTestApp.EntityFrameworkCore",
- "hash": "1ae906cf0026320e50077986287d66ac",
+ "hash": "",
"contents": [
{
"namespace": "Volo.BloggingTestApp.EntityFrameworkCore",
@@ -89,6 +89,7 @@
"connectionStringName": null,
"databaseTables": [],
"replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json
index bb074e1d10..c5a0eb3244 100644
--- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json
+++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.BloggingTestApp.MongoDB",
- "hash": "f3aae951c5c4cd55de2a949848c2a755",
+ "hash": "",
"contents": [
{
"namespace": "Volo.BloggingTestApp.MongoDB",
diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json
index 61b8f19fe8..c9615cf41a 100644
--- a/modules/blogging/app/Volo.BloggingTestApp/package.json
+++ b/modules/blogging/app/Volo.BloggingTestApp/package.json
@@ -3,7 +3,7 @@
"name": "volo.blogtestapp",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1",
- "@abp/blogging": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3",
+ "@abp/blogging": "~8.2.3"
}
}
diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
index c5d231f006..34ce3340d1 100644
--- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
+++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
@@ -2,237 +2,237 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/blogging@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.2.1.tgz#be0ca952768f97d738937095d685d8da60913443"
- integrity sha512-I2YQxeIXfCeOlVHoZlrUMi2qYTPKw2etXfUZbRGgdAFDPd5YAyyKj8ZyFl37ay5VLp3Hc2fi1DBUHZuaKvjk/Q==
+"@abp/blogging@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.2.3.tgz#3a88e287ddc25ab1e380379727096a3a17258889"
+ integrity sha512-vc9JFlTT0Cd7EJqo+l36ZQejMTvYbf/N4/dBrOG2m4G1n/5d+M61w0YHiVX5KeKXhrLaJjyOvR8eKq+gMfeebA==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
- "@abp/owl.carousel" "~8.2.1"
- "@abp/prismjs" "~8.2.1"
- "@abp/tui-editor" "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+ "@abp/owl.carousel" "~8.2.3"
+ "@abp/prismjs" "~8.2.3"
+ "@abp/tui-editor" "~8.2.3"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/clipboard@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.1.tgz#6c2c14fecbac60d29680e8a0b6d304e5f8baf30d"
- integrity sha512-9hIb9aQyEoe5955cV5M81u7RUL/IObN55PQEKhzQsQcoQb+evLG9V43Epwtkg/2t6w02d+W5HjysBEc6t8o1IA==
+"@abp/clipboard@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.3.tgz#9e0c0b750114ddaca0beba1051dd7fc1fe77f543"
+ integrity sha512-RS1pVeeN1/5LlDNBBRDFUqR+xpfWteCZfIByh8xAbec1xuxHmxxxvb3kv1Wp7n4c1ec3V0yLRyvaj0SfYmnWNA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
clipboard "^2.0.8"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/owl.carousel@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.2.1.tgz#09aee4b39b040b2c9c822a78555f5472abe43bd8"
- integrity sha512-Noq3nSJD62yMY4YNDigG3qyQINzUGo8f9EzuAp4J4+2LcYVPURdnU3IHeV0MSE7Xl0np7YYRBZsU9G/U5rv+xA==
+"@abp/owl.carousel@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.2.3.tgz#b5e50655a6d04055e6e581a2af0e5ae5b8ca6295"
+ integrity sha512-cEKeGr76KibzhC1F+pEW+lkTezwQGx5rghgXUjxoG9BgPiukqAK79g7317EwYW7hBchKAUGt99ZJmUCsA8mWlQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
owl.carousel "^2.3.4"
-"@abp/prismjs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.1.tgz#d72808d2569154b4db3f2960d90d46f0de6ddc07"
- integrity sha512-JUla9NORFW8Mti/WnNQ8WnhQGBUJAh7OQDJNSbRuaUhbnu2Jm4WUtvPknpfQSenE+RBT1VWrWd6X9pOvYCxxiA==
+"@abp/prismjs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.3.tgz#8927f1660815f4e3de11085ea5f3a73b127a858a"
+ integrity sha512-JJ/wlLlWShGYj0FMFjxriCIA4v1Fe+oHTgo1Kt9JpYkYG+Zq+rHsj1tvNthh2GU7Y69Kt2w1r1LpEDKZZHu58A==
dependencies:
- "@abp/clipboard" "~8.2.1"
- "@abp/core" "~8.2.1"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/core" "~8.2.3"
prismjs "^1.26.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/tui-editor@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.1.tgz#4ec95faa8450897b70cdd3547af9b3af756fa640"
- integrity sha512-E7kMnhWpJrtAJn5gms7UG7+iJsvTDr+jCxoGTCtFfM8ZUhe8Vfd65VmE1LPa2u1KbCXayZaoBy4Vg9fxC/D4/A==
+"@abp/tui-editor@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.3.tgz#7f810481cd109e88bb67890e8daae7ae0a94c79d"
+ integrity sha512-rWl1WYwkzRZXXG5/ndU6ve9NZL73b2gTne6FShR36T7LdsmUZp4yuF6g956dvObUOw1Uhyo7TvvUcC72pKD8aA==
dependencies:
- "@abp/jquery" "~8.2.1"
- "@abp/prismjs" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
+ "@abp/prismjs" "~8.2.3"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json
index 3c721cbb8f..238d602da6 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Admin.Application.Contracts",
- "hash": "765deda9c2ad81c60686d163f8856cde",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.Admin",
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json
index b247ffa372..473750d55d 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Admin.Application",
- "hash": "f36b44743b8df7a8d4cc013570d044a2",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.Admin",
@@ -146,6 +146,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -156,6 +157,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -172,6 +174,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -188,6 +191,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -209,6 +213,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -225,6 +230,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Admin.Blogs",
"name": "ClearCacheAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json
index 294df5e147..851a0316da 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Admin.HttpApi.Client",
- "hash": "3c18ac9eda422806cb4bba72a39ad229",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.Admin",
diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json
index a93621f41c..1a6a317bd2 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Admin.HttpApi",
- "hash": "689f6b3f8cc4a2e9e75308df5a58b588",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.Admin",
@@ -63,6 +63,90 @@
"contentType": "abpModule",
"name": "BloggingAdminHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/blogging/blogs/admin",
+ "method": "GET",
+ "groupName": "BlogManagement",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/blogging/blogs/admin/{id}",
+ "method": "GET",
+ "groupName": "BlogManagement",
+ "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs/admin",
+ "method": "POST",
+ "groupName": "BlogManagement",
+ "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "CreateBlogDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs/admin/{id}",
+ "method": "PUT",
+ "groupName": "BlogManagement",
+ "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ },
+ {
+ "name": "input",
+ "type": "UpdateBlogDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs/admin/{id}",
+ "method": "DELETE",
+ "groupName": "BlogManagement",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs/admin/clear-cache/{id}",
+ "method": "GET",
+ "groupName": "BlogManagement",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json
index 258c5ec139..bfadd4006b 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Admin.Web",
- "hash": "f00cd39c07130843c7103cc1f6caf9a2",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.Admin",
@@ -73,6 +73,24 @@
"contentType": "abpModule",
"name": "BloggingAdminWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs",
+ "contentType": "webPage",
+ "name": "CreateModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs",
+ "contentType": "webPage",
+ "name": "EditModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json
index 233c9594ac..6d09472ac6 100644
--- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Application.Contracts",
- "hash": "90bed1d4c7274bff6059309df9800b27",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json
index 97dc91e6d7..b332019e6d 100644
--- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Application",
- "hash": "0119e0d4243cd5f865bda1dc7115637f",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
@@ -151,6 +151,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Tagging",
"name": "GetPopularTagsAsync",
"summary": null,
"isAsync": true,
@@ -242,6 +243,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetListByBlogIdAndTagNameAsync",
"summary": null,
"isAsync": true,
@@ -263,6 +265,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetTimeOrderedListAsync",
"summary": null,
"isAsync": true,
@@ -279,6 +282,7 @@
},
{
"returnType": "PostWithDetailsDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetForReadingAsync",
"summary": null,
"isAsync": true,
@@ -295,6 +299,7 @@
},
{
"returnType": "PostWithDetailsDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -311,6 +316,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Posts",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -327,6 +333,7 @@
},
{
"returnType": "PostWithDetailsDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -346,8 +353,48 @@
}
]
},
+ {
+ "returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
+ "name": "GetListByUserIdAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "userId",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
+ "name": "GetLatestBlogPostsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "blogId",
+ "isOptional": false
+ },
+ {
+ "type": "Int32",
+ "name": "count",
+ "isOptional": false
+ }
+ ]
+ },
{
"returnType": "PostWithDetailsDto",
+ "namespace": "Volo.Blogging.Posts",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -367,6 +414,110 @@
"name": "PostAppService",
"summary": null
},
+ {
+ "namespace": "Volo.Blogging.Members",
+ "baseClass": {
+ "name": "BloggingAppServiceBase",
+ "namespace": "Volo.Blogging",
+ "declaringAssemblyName": "Volo.Blogging.Application",
+ "fullName": "Volo.Blogging.BloggingAppServiceBase"
+ },
+ "implementingInterfaces": [
+ {
+ "name": "IApplicationService",
+ "namespace": "Volo.Abp.Application.Services",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts",
+ "fullName": "Volo.Abp.Application.Services.IApplicationService"
+ },
+ {
+ "name": "IRemoteService",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IRemoteService"
+ },
+ {
+ "name": "IAvoidDuplicateCrossCuttingConcerns",
+ "namespace": "Volo.Abp.Aspects",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns"
+ },
+ {
+ "name": "IValidationEnabled",
+ "namespace": "Volo.Abp.Validation",
+ "declaringAssemblyName": "Volo.Abp.Validation",
+ "fullName": "Volo.Abp.Validation.IValidationEnabled"
+ },
+ {
+ "name": "IUnitOfWorkEnabled",
+ "namespace": "Volo.Abp.Uow",
+ "declaringAssemblyName": "Volo.Abp.Uow",
+ "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled"
+ },
+ {
+ "name": "IAuditingEnabled",
+ "namespace": "Volo.Abp.Auditing",
+ "declaringAssemblyName": "Volo.Abp.Auditing.Contracts",
+ "fullName": "Volo.Abp.Auditing.IAuditingEnabled"
+ },
+ {
+ "name": "IGlobalFeatureCheckingEnabled",
+ "namespace": "Volo.Abp.GlobalFeatures",
+ "declaringAssemblyName": "Volo.Abp.GlobalFeatures",
+ "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled"
+ },
+ {
+ "name": "ITransientDependency",
+ "namespace": "Volo.Abp.DependencyInjection",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.DependencyInjection.ITransientDependency"
+ },
+ {
+ "name": "IMemberAppService",
+ "namespace": "Volo.Blogging.Members",
+ "declaringAssemblyName": "Volo.Blogging.Application.Contracts",
+ "fullName": "Volo.Blogging.Members.IMemberAppService"
+ }
+ ],
+ "methods": [
+ {
+ "returnType": "BlogUserDto",
+ "namespace": "Volo.Blogging.Members",
+ "name": "FindAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "username",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Blogging.Members",
+ "name": "UpdateUserProfileAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "CustomIdentityBlogUserUpdateDto",
+ "name": "input",
+ "isOptional": false
+ }
+ ]
+ }
+ ],
+ "contentType": "applicationService",
+ "name": "MemberAppService",
+ "summary": null
+ },
{
"namespace": "Volo.Blogging.Files",
"baseClass": {
@@ -434,6 +585,7 @@
"methods": [
{
"returnType": "RawFileDto",
+ "namespace": "Volo.Blogging.Files",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -450,6 +602,7 @@
},
{
"returnType": "IRemoteStreamContent",
+ "namespace": "Volo.Blogging.Files",
"name": "GetFileAsync",
"summary": null,
"isAsync": true,
@@ -466,6 +619,7 @@
},
{
"returnType": "FileUploadOutputDto",
+ "namespace": "Volo.Blogging.Files",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -552,6 +706,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Comments",
"name": "GetHierarchicalListOfPostAsync",
"summary": null,
"isAsync": true,
@@ -568,6 +723,7 @@
},
{
"returnType": "CommentWithDetailsDto",
+ "namespace": "Volo.Blogging.Comments",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -584,6 +740,7 @@
},
{
"returnType": "CommentWithDetailsDto",
+ "namespace": "Volo.Blogging.Comments",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -605,6 +762,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Comments",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -691,6 +849,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Blogging.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -701,6 +860,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.Blogging.Blogs",
"name": "GetByShortNameAsync",
"summary": null,
"isAsync": true,
@@ -717,6 +877,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.Blogging.Blogs",
"name": "GetAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json
index 54e8d52f5f..2b2ee467f7 100644
--- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Domain.Shared",
- "hash": "416d1bef921b5bb0eb443877eb8af5a6",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json
index 4ca41ac00d..64b65921d1 100644
--- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Domain",
- "hash": "6ef78d68d0b8c8fe7a3f43214e572d5d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
@@ -152,7 +152,7 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
},
{
@@ -165,6 +165,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.Blogging.Users",
"name": "Update",
"summary": null,
"isAsync": false,
@@ -229,6 +230,41 @@
"type": "System.Boolean",
"name": "PhoneNumberConfirmed",
"summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "WebSite",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Twitter",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Github",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Linkedin",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Company",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "JobTitle",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Biography",
+ "summary": null
}
],
"contentType": "aggregateRoot",
@@ -349,6 +385,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Tagging",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -365,6 +402,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Tagging",
"name": "IncreaseUsageCount",
"summary": null,
"isAsync": false,
@@ -381,6 +419,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Tagging",
"name": "DecreaseUsageCount",
"summary": null,
"isAsync": false,
@@ -397,6 +436,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Tagging",
"name": "SetDescription",
"summary": null,
"isAsync": false,
@@ -556,6 +596,7 @@
"methods": [
{
"returnType": "Post",
+ "namespace": "Volo.Blogging.Posts",
"name": "IncreaseReadCount",
"summary": null,
"isAsync": false,
@@ -566,6 +607,7 @@
},
{
"returnType": "Post",
+ "namespace": "Volo.Blogging.Posts",
"name": "SetTitle",
"summary": null,
"isAsync": false,
@@ -582,6 +624,7 @@
},
{
"returnType": "Post",
+ "namespace": "Volo.Blogging.Posts",
"name": "SetUrl",
"summary": null,
"isAsync": false,
@@ -598,6 +641,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Posts",
"name": "AddTag",
"summary": null,
"isAsync": false,
@@ -614,6 +658,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Posts",
"name": "RemoveTag",
"summary": null,
"isAsync": false,
@@ -800,6 +845,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Comments",
"name": "SetText",
"summary": null,
"isAsync": false,
@@ -954,6 +1000,7 @@
"methods": [
{
"returnType": "Blog",
+ "namespace": "Volo.Blogging.Blogs",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -970,6 +1017,7 @@
},
{
"returnType": "Blog",
+ "namespace": "Volo.Blogging.Blogs",
"name": "SetShortName",
"summary": null,
"isAsync": false,
@@ -1061,6 +1109,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Users",
"name": "GetUsersAsync",
"summary": null,
"isAsync": true,
@@ -1135,6 +1184,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Tagging",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1156,6 +1206,7 @@
},
{
"returnType": "Tag",
+ "namespace": "Volo.Blogging.Tagging",
"name": "GetByNameAsync",
"summary": null,
"isAsync": true,
@@ -1182,6 +1233,7 @@
},
{
"returnType": "Tag",
+ "namespace": "Volo.Blogging.Tagging",
"name": "FindByNameAsync",
"summary": null,
"isAsync": true,
@@ -1208,6 +1260,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Tagging",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1229,6 +1282,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Tagging",
"name": "DecreaseUsageCountOfTagsAsync",
"summary": null,
"isAsync": true,
@@ -1298,6 +1352,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetPostsByBlogId",
"summary": null,
"isAsync": true,
@@ -1319,6 +1374,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Blogging.Posts",
"name": "IsPostUrlInUseAsync",
"summary": null,
"isAsync": true,
@@ -1350,6 +1406,7 @@
},
{
"returnType": "Post",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetPostByUrl",
"summary": null,
"isAsync": true,
@@ -1376,6 +1433,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
"name": "GetOrderedList",
"summary": null,
"isAsync": true,
@@ -1399,6 +1457,55 @@
"isOptional": true
}
]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
+ "name": "GetListByUserIdAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "userId",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.Blogging.Posts",
+ "name": "GetLatestBlogPostsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "blogId",
+ "isOptional": false
+ },
+ {
+ "type": "Int32",
+ "name": "count",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
}
],
"contentType": "repositoryInterface",
@@ -1450,6 +1557,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Comments",
"name": "GetListOfPostAsync",
"summary": null,
"isAsync": true,
@@ -1471,6 +1579,7 @@
},
{
"returnType": "Int32",
+ "namespace": "Volo.Blogging.Comments",
"name": "GetCommentCountOfPostAsync",
"summary": null,
"isAsync": true,
@@ -1492,6 +1601,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Blogging.Comments",
"name": "GetRepliesOfComment",
"summary": null,
"isAsync": true,
@@ -1513,6 +1623,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Blogging.Comments",
"name": "DeleteOfPost",
"summary": null,
"isAsync": true,
@@ -1582,6 +1693,7 @@
"methods": [
{
"returnType": "Blog",
+ "namespace": "Volo.Blogging.Blogs",
"name": "FindByShortNameAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json
index 7fb2558e8c..6a4b92e01e 100644
--- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.EntityFrameworkCore",
- "hash": "6a38802ee4510532b9dd8879c2b2b7ff",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.EntityFrameworkCore",
@@ -67,45 +67,27 @@
{
"namespace": "Volo.Blogging.EntityFrameworkCore",
"connectionStringName": "Blogging",
- "databaseTables": [
- {
- "entityFullName": "Volo.Blogging.Blogs.Blog",
- "contentType": "databaseTable",
- "name": "BlgBlogs",
- "summary": null
- },
- {
- "entityFullName": "Volo.Blogging.Comments.Comment",
- "contentType": "databaseTable",
- "name": "BlgComments",
- "summary": null
- },
- {
- "entityFullName": "Volo.Blogging.Posts.Post",
- "contentType": "databaseTable",
- "name": "BlgPosts",
- "summary": null
- },
- {
- "entityFullName": "Volo.Blogging.Posts.PostTag",
- "contentType": "databaseTable",
- "name": "BlgPostTags",
- "summary": null
- },
- {
- "entityFullName": "Volo.Blogging.Tagging.Tag",
- "contentType": "databaseTable",
- "name": "BlgTags",
- "summary": null
- },
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
{
- "entityFullName": "Volo.Blogging.Users.BlogUser",
- "contentType": "databaseTable",
- "name": "BlgUsers",
- "summary": null
+ "returnType": "Void",
+ "namespace": "Volo.Blogging.EntityFrameworkCore",
+ "name": "ConfigureBlogging",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
}
],
- "replacedDbContexts": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json
index fab3946f08..4fde803ba1 100644
--- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.HttpApi.Client",
- "hash": "3ca2666acad094da483790ffe3497ae0",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json
index e9fa020357..7b15b827b0 100644
--- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.HttpApi",
- "hash": "3e6f3a5c72fe4dd10117f387c5a28255",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
@@ -63,6 +63,300 @@
"contentType": "abpModule",
"name": "BloggingHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/blogging/files/{name}",
+ "method": "GET",
+ "groupName": "BlogFiles",
+ "responseType": "Volo.Blogging.Files.RawFileDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "name",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/files/www/{name}",
+ "method": "GET",
+ "groupName": "BlogFiles",
+ "responseType": "Volo.Abp.Content.IRemoteStreamContent",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "name",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/files/images/upload",
+ "method": "POST",
+ "groupName": "BlogFiles",
+ "responseType": "Volo.Blogging.Files.FileUploadOutputDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"webUrl\": \"string\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "File",
+ "type": "IRemoteStreamContent"
+ },
+ {
+ "name": "Name",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs",
+ "method": "GET",
+ "groupName": "Blogs",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/blogging/blogs/by-shortname/{shortName}",
+ "method": "GET",
+ "groupName": "Blogs",
+ "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "shortName",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/blogs/{id}",
+ "method": "GET",
+ "groupName": "Blogs",
+ "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/comments/hierarchical/{postId}",
+ "method": "GET",
+ "groupName": "Comments",
+ "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Comments.Dtos.CommentWithRepliesDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"comment\": {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"replies\": [\r\n {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n }\r\n]",
+ "parameterDescriptions": [
+ {
+ "name": "postId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/comments",
+ "method": "POST",
+ "groupName": "Comments",
+ "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "CreateCommentDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/comments/{id}",
+ "method": "PUT",
+ "groupName": "Comments",
+ "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ },
+ {
+ "name": "input",
+ "type": "UpdateCommentDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/comments/{id}",
+ "method": "DELETE",
+ "groupName": "Comments",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{blogId}/all",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "blogId",
+ "type": "Guid"
+ },
+ {
+ "name": "tagName",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{blogId}/all/by-time",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "blogId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/read",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "Volo.Blogging.Posts.PostWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "Url",
+ "type": "String"
+ },
+ {
+ "name": "BlogId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{id}",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "Volo.Blogging.Posts.PostWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts",
+ "method": "POST",
+ "groupName": "Posts",
+ "responseType": "Volo.Blogging.Posts.PostWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "CreatePostDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{id}",
+ "method": "PUT",
+ "groupName": "Posts",
+ "responseType": "Volo.Blogging.Posts.PostWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ },
+ {
+ "name": "input",
+ "type": "UpdatePostDto"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/user/{userId}",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]",
+ "parameterDescriptions": [
+ {
+ "name": "userId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{blogId}/latest/{count}",
+ "method": "GET",
+ "groupName": "Posts",
+ "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]",
+ "parameterDescriptions": [
+ {
+ "name": "blogId",
+ "type": "Guid"
+ },
+ {
+ "name": "count",
+ "type": "Int32"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/posts/{id}",
+ "method": "DELETE",
+ "groupName": "Posts",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/blogging/tags/popular/{blogId}",
+ "method": "GET",
+ "groupName": "Tags",
+ "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Tagging.Dtos.TagDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]",
+ "parameterDescriptions": [
+ {
+ "name": "blogId",
+ "type": "Guid"
+ },
+ {
+ "name": "ResultCount",
+ "type": "Int32"
+ },
+ {
+ "name": "MinimumPostCount",
+ "type": "Nullable"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json
index f72236e318..3c45d3118e 100644
--- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.MongoDB",
- "hash": "4487b4df01fcd98b0ce2e7d2d11c9ba5",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging.MongoDB",
@@ -74,33 +74,33 @@
"connectionStringName": "Blogging",
"databaseCollections": [
{
- "entityFullName": "Volo.Blogging.Blogs.Blog",
+ "entityFullName": "Volo.Blogging.Users.BlogUser",
"contentType": "databaseCollection",
- "name": "BlgBlogs",
+ "name": "Users",
"summary": null
},
{
- "entityFullName": "Volo.Blogging.Comments.Comment",
+ "entityFullName": "Volo.Blogging.Blogs.Blog",
"contentType": "databaseCollection",
- "name": "BlgComments",
+ "name": "Blogs",
"summary": null
},
{
- "entityFullName": "Volo.Blogging.Users.BlogUser",
+ "entityFullName": "Volo.Blogging.Posts.Post",
"contentType": "databaseCollection",
- "name": "BlgUsers",
+ "name": "Posts",
"summary": null
},
{
"entityFullName": "Volo.Blogging.Tagging.Tag",
"contentType": "databaseCollection",
- "name": "BlgTags",
+ "name": "Tags",
"summary": null
},
{
- "entityFullName": "Volo.Blogging.Posts.Post",
+ "entityFullName": "Volo.Blogging.Comments.Comment",
"contentType": "databaseCollection",
- "name": "BlgPosts",
+ "name": "Comments",
"summary": null
}
],
diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json
index 27a396bd9e..895ffb1675 100644
--- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json
+++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Blogging.Web",
- "hash": "d4c82263439a4a663a6b98ee502d02f4",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Blogging",
@@ -73,6 +73,42 @@
"contentType": "abpModule",
"name": "BloggingWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs.Posts",
+ "contentType": "webPage",
+ "name": "DetailModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs.Posts",
+ "contentType": "webPage",
+ "name": "EditModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs.Posts",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs.Posts",
+ "contentType": "webPage",
+ "name": "NewModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Blogging.Pages.Blogs.Members",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
index 0805b3a6b0..ebbec7b446 100644
--- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
+++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
@@ -3,6 +3,6 @@
"name": "client-simulation-web",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3"
}
}
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
index b0104045be..f36d2d8e77 100644
--- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
+++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
@@ -2,194 +2,194 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json
index 907c063ea6..e0da5e658e 100644
--- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json
+++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.ClientSimulation.Web",
- "hash": "219a88f8096628953238e9590f6a5e56",
+ "hash": "",
"contents": [
{
"namespace": "Volo.ClientSimulation",
diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json
index 7031291b0b..eda7c69abc 100644
--- a/modules/cms-kit/angular/package.json
+++ b/modules/cms-kit/angular/package.json
@@ -15,11 +15,11 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~8.2.1",
- "@abp/ng.identity": "~8.2.1",
- "@abp/ng.setting-management": "~8.2.1",
- "@abp/ng.tenant-management": "~8.2.1",
- "@abp/ng.theme.basic": "~8.2.1",
+ "@abp/ng.account": "~8.2.3",
+ "@abp/ng.identity": "~8.2.3",
+ "@abp/ng.setting-management": "~8.2.3",
+ "@abp/ng.tenant-management": "~8.2.3",
+ "@abp/ng.theme.basic": "~8.2.3",
"@angular/animations": "~10.0.0",
"@angular/common": "~10.0.0",
"@angular/compiler": "~10.0.0",
diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json
index ce8bcc657d..c296473075 100644
--- a/modules/cms-kit/angular/projects/cms-kit/package.json
+++ b/modules/cms-kit/angular/projects/cms-kit/package.json
@@ -4,8 +4,8 @@
"peerDependencies": {
"@angular/common": "^9.1.11",
"@angular/core": "^9.1.11",
- "@abp/ng.core": ">=8.2.1",
- "@abp/ng.theme.shared": ">=8.2.1"
+ "@abp/ng.core": ">=8.2.3",
+ "@abp/ng.theme.shared": ">=8.2.3"
},
"dependencies": {
"tslib": "^2.0.0"
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
index d97edddfbd..135d6777aa 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
@@ -3,6 +3,6 @@
"name": "my-app-identityserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3"
}
}
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
index b0104045be..f36d2d8e77 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
@@ -2,194 +2,194 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
index f63711176a..dd50dd6a99 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3"
}
}
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
index b0104045be..f36d2d8e77 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
@@ -2,194 +2,194 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
index 85aa8b6f90..31015ec59f 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1",
- "@abp/cms-kit": "8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3",
+ "@abp/cms-kit": "8.2.3"
}
}
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
index 62cff572f8..b0d5e9edf5 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
@@ -2,293 +2,293 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/clipboard@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.1.tgz#6c2c14fecbac60d29680e8a0b6d304e5f8baf30d"
- integrity sha512-9hIb9aQyEoe5955cV5M81u7RUL/IObN55PQEKhzQsQcoQb+evLG9V43Epwtkg/2t6w02d+W5HjysBEc6t8o1IA==
+"@abp/clipboard@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.3.tgz#9e0c0b750114ddaca0beba1051dd7fc1fe77f543"
+ integrity sha512-RS1pVeeN1/5LlDNBBRDFUqR+xpfWteCZfIByh8xAbec1xuxHmxxxvb3kv1Wp7n4c1ec3V0yLRyvaj0SfYmnWNA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
clipboard "^2.0.8"
-"@abp/cms-kit.admin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.2.1.tgz#086f5a811cc8672faa0bc691d4d1afa3bf2921bf"
- integrity sha512-EW5zx0+PA3KM6r+fj6mAEP/ID2XAGe1otuhUY27ZZvY/zf+dYqbm5sELxc6AkR+fuoVAMv2eWHE70jgWxTVgSQ==
+"@abp/cms-kit.admin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.2.3.tgz#f1dc21055bd0445e12925c6a442510555f1059fe"
+ integrity sha512-khr/sRGSL5/mEK1kSI4Qxx6i+0RXmQKxjkOPMBJ7zTcrBZfHYRaXTIVbK9Jpod37MzwN05Wp5V1MQYOm0Q6NEA==
dependencies:
- "@abp/codemirror" "~8.2.1"
- "@abp/jstree" "~8.2.1"
- "@abp/slugify" "~8.2.1"
- "@abp/tui-editor" "~8.2.1"
- "@abp/uppy" "~8.2.1"
+ "@abp/codemirror" "~8.2.3"
+ "@abp/jstree" "~8.2.3"
+ "@abp/slugify" "~8.2.3"
+ "@abp/tui-editor" "~8.2.3"
+ "@abp/uppy" "~8.2.3"
-"@abp/cms-kit.public@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.2.1.tgz#af33802ec702b4be78a65ae68ede01da1e45ee24"
- integrity sha512-ERXxmDjt2uVBCNbbYHn6WVG5m2j8KnpPUYf7fE1Jyfzga0ccHULGBX8r1B+pEwGqn+l2hFffltJNF6noyuGadA==
+"@abp/cms-kit.public@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.2.3.tgz#99250a4367a3e43ef84ffbf29bf6bf0ffafb499f"
+ integrity sha512-CxBF7z5/4OBFjePsJl3zFZDUDGhTkoUQF9qKlDvHk9t2AEkV+cPk2TPVZ+YRMt9a0Fc9G+r09tB3Z6HUEwMPCQ==
dependencies:
- "@abp/highlight.js" "~8.2.1"
- "@abp/star-rating-svg" "~8.2.1"
+ "@abp/highlight.js" "~8.2.3"
+ "@abp/star-rating-svg" "~8.2.3"
-"@abp/cms-kit@8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.2.1.tgz#3ce8621101a39d4b877eecd4c8dd30c2dd9f2afe"
- integrity sha512-1VPeTH4krOeGM21jjAeMIT2lboNgYZmRODmZ6XHFHRL0GjCNX8X6OWMRK1S1R0Z15bT5zwFM9C3BC2puu17tig==
+"@abp/cms-kit@8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.2.3.tgz#64a8b4214a80965f440c8d542e40c19920495647"
+ integrity sha512-UE/thd4n5xr93Q7PoZzYmVRlbYulFtDdPFum1Kn3SURb+dlLEXUGDye0j2Fp+zpTds4/xUVKn+OOUNr6enIfcg==
dependencies:
- "@abp/cms-kit.admin" "~8.2.1"
- "@abp/cms-kit.public" "~8.2.1"
+ "@abp/cms-kit.admin" "~8.2.3"
+ "@abp/cms-kit.public" "~8.2.3"
-"@abp/codemirror@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.2.1.tgz#631e92be27cc59d62982e48978c5875ddf7c87a2"
- integrity sha512-uIDVi039OwLqznjyGkC2YizrgKdLOsKIokg0EzTf52XpWDKWaKCBbq0r+rNW3DfsZPMo9mi1aekLTf4KGUbpSA==
+"@abp/codemirror@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.2.3.tgz#151f107e8f4593cea51b791b05446a30dd466cda"
+ integrity sha512-IIedBSQbBY0FQje+7t9guHdoUturkfcq2CqYQobytocK27K/NCd/LxygZoeMEpbQMHD+wmeAbel0HJDEjsOYOg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
codemirror "^5.65.1"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/highlight.js@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.1.tgz#440f4618d8ce8904377250684425a4f55205b0c0"
- integrity sha512-cRP5bmpXx7WGvCTJLtHT/TbNd/2NA1R2BRnUdnd+CkAHXFJTSPhRyx0lKfeMIQik97uAnal0hKzK1/6181qt9Q==
+"@abp/highlight.js@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.3.tgz#bae44df0505814cc0692c3a1ea7ca1e36988a677"
+ integrity sha512-IFNDZcXGKMLY/IZRLZVxY7vsoaWYD2aZYCdqKGFyxHaBTB3KltEDC1Nb6pxE0C1YlNJS5g3BOC+V/z8ZD7h6SA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@highlightjs/cdn-assets" "~11.4.0"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/jstree@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.2.1.tgz#288c336229ac7ab7f4a5ea68fc82e6ba7183c525"
- integrity sha512-Da2+iiHDHhRhRAp8gztcFya+2y69Ls5mKYz0h7nw5WC79DaVt8Tp+4jCGFmpQ5aLMz2Tg3NZnYFdNSoCyL9phg==
+"@abp/jstree@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.2.3.tgz#475cc17a81f379292d2b4e379868f20c1948a354"
+ integrity sha512-qclfZnVUhGWoJKC+k3uTUVqSZloJsvs/YbScgNbSaUi4wC0IMnmlTSNT40Vw66i3PoZUl1qMMcmDNxc18wVddw==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jstree "^3.3.12"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/prismjs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.1.tgz#d72808d2569154b4db3f2960d90d46f0de6ddc07"
- integrity sha512-JUla9NORFW8Mti/WnNQ8WnhQGBUJAh7OQDJNSbRuaUhbnu2Jm4WUtvPknpfQSenE+RBT1VWrWd6X9pOvYCxxiA==
+"@abp/prismjs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.3.tgz#8927f1660815f4e3de11085ea5f3a73b127a858a"
+ integrity sha512-JJ/wlLlWShGYj0FMFjxriCIA4v1Fe+oHTgo1Kt9JpYkYG+Zq+rHsj1tvNthh2GU7Y69Kt2w1r1LpEDKZZHu58A==
dependencies:
- "@abp/clipboard" "~8.2.1"
- "@abp/core" "~8.2.1"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/core" "~8.2.3"
prismjs "^1.26.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/slugify@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.2.1.tgz#45e5e8df9200e1cebdf5ffc7c9584922618f6432"
- integrity sha512-rRlHH7lmRutaUYLOYmPMnK2KyJhxs8ZMwSBlFc2lrjkM5yaxHJAOvC3wQyhKC4oHw1vZZTp7yl9GLFiLJtFg+g==
+"@abp/slugify@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.2.3.tgz#129b8d7a8b502865d428a3bfedac8fca3330e337"
+ integrity sha512-v1P+4ceGhedua52F3mJTw8iDS3dIOg+GjBhNZQbPYW0JEVBIaqXSGrgbvWhrHGxzb+tjZ6DNqLiqtHU7bKDOrQ==
dependencies:
slugify "^1.6.5"
-"@abp/star-rating-svg@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.2.1.tgz#f232e675c0775bcd405f64848d0e0f0d69dd7c72"
- integrity sha512-18FgWSSthbSVlXJ8Zgr1i1w4HdTe9ni4SBYN7+c3+nR6cuvKNZNeDVHl6C8zh5R3KdALnMIxzg7TJaVBH08gGQ==
+"@abp/star-rating-svg@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.2.3.tgz#b75a1734ec280d616ce6655ce1ba56fc98d326a8"
+ integrity sha512-7oWlRfZcNE0fCYJpMTpocQW1xmyUjiobHAiUEe3mYBwAE9RNaesz8hr0/+TjCYxzyWdrjCcj8hkmVVejzu+lxA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
star-rating-svg "^3.5.0"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/tui-editor@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.1.tgz#4ec95faa8450897b70cdd3547af9b3af756fa640"
- integrity sha512-E7kMnhWpJrtAJn5gms7UG7+iJsvTDr+jCxoGTCtFfM8ZUhe8Vfd65VmE1LPa2u1KbCXayZaoBy4Vg9fxC/D4/A==
+"@abp/tui-editor@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.3.tgz#7f810481cd109e88bb67890e8daae7ae0a94c79d"
+ integrity sha512-rWl1WYwkzRZXXG5/ndU6ve9NZL73b2gTne6FShR36T7LdsmUZp4yuF6g956dvObUOw1Uhyo7TvvUcC72pKD8aA==
dependencies:
- "@abp/jquery" "~8.2.1"
- "@abp/prismjs" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
+ "@abp/prismjs" "~8.2.3"
-"@abp/uppy@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.2.1.tgz#ff981db87159c4a751dc6dba2cee20518b2ac7b3"
- integrity sha512-/mYiabN0Xr98i/q6ErmLh7N1EMCKZEDFVdeLY3gpP7/NQaH2kpEPMJZCmIbbu2wPJtZ9pya7ywSQP2G8aPgqOw==
+"@abp/uppy@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.2.3.tgz#a7938f9a9c6268c34688911ccc87d7f35c8dfa18"
+ integrity sha512-Z4mfhBqBkiyyJdBRs1Il0zLd345PzjY1a/4Nk9w2JnsqFncj/BUvATPLTuqaa4I2n5ZbHueuYf3Q94LBVL2h+g==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
uppy "^3.0.0"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json
index b89faf42fe..866d8d6dc8 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Admin.Application.Contracts",
- "hash": "ff0f4d058f512abcca9b3b61a7bb300e",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Admin",
@@ -60,7 +60,7 @@
"summary": null
},
{
- "displayName": "Comment Management",
+ "displayName": "Comment management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Comments",
@@ -74,7 +74,7 @@
"summary": null
},
{
- "displayName": "Tag Management",
+ "displayName": "Tag management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Tags",
@@ -102,7 +102,7 @@
"summary": null
},
{
- "displayName": "Page Management",
+ "displayName": "Page management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Pages",
@@ -130,14 +130,14 @@
"summary": null
},
{
- "displayName": "Set As Home Page",
+ "displayName": "Set as home page",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Pages.SetAsHomePage",
"summary": null
},
{
- "displayName": "Blog Management",
+ "displayName": "Blog management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Blogs",
@@ -172,7 +172,7 @@
"summary": null
},
{
- "displayName": "Blog Post Management",
+ "displayName": "Blog post management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.BlogPosts",
@@ -207,7 +207,7 @@
"summary": null
},
{
- "displayName": "Menu Management",
+ "displayName": "Menu management",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.Menus",
@@ -235,7 +235,7 @@
"summary": null
},
{
- "displayName": "Global Resources",
+ "displayName": "Global resources",
"isEnabled": true,
"contentType": "permission",
"name": "CmsKit.GlobalResources",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json
index e58e8fb34a..67d89bcb09 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Admin.Application",
- "hash": "1cf0db9a201c7d8143e4f8efb6218d59",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Admin",
@@ -136,6 +136,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "AddTagToEntityAsync",
"summary": null,
"isAsync": true,
@@ -152,6 +153,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "RemoveTagFromEntityAsync",
"summary": null,
"isAsync": true,
@@ -168,6 +170,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "SetEntityTagsAsync",
"summary": null,
"isAsync": true,
@@ -296,6 +299,7 @@
"methods": [
{
"returnType": "TagDto",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -312,6 +316,7 @@
},
{
"returnType": "TagDto",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -333,6 +338,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "GetTagDefinitionsAsync",
"summary": null,
"isAsync": true,
@@ -343,6 +349,7 @@
},
{
"returnType": "TagDto",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -359,6 +366,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -375,6 +383,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Tags",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -497,6 +506,7 @@
"methods": [
{
"returnType": "PageDto",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -513,6 +523,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -529,6 +540,7 @@
},
{
"returnType": "PageDto",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -545,6 +557,7 @@
},
{
"returnType": "PageDto",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -566,6 +579,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -582,6 +596,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Pages",
"name": "SetAsHomePageAsync",
"summary": null,
"isAsync": true,
@@ -668,6 +683,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -677,7 +693,8 @@
"parameters": []
},
{
- "returnType": "MenuItemDto",
+ "returnType": "MenuItemWithDetailsDto",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -694,6 +711,7 @@
},
{
"returnType": "MenuItemDto",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -710,6 +728,7 @@
},
{
"returnType": "MenuItemDto",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -731,6 +750,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -747,6 +767,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "MoveMenuItemAsync",
"summary": null,
"isAsync": true,
@@ -768,6 +789,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Menus",
"name": "GetPageLookupAsync",
"summary": null,
"isAsync": true,
@@ -854,6 +876,7 @@
"methods": [
{
"returnType": "MediaDescriptorDto",
+ "namespace": "Volo.CmsKit.Admin.MediaDescriptors",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -875,6 +898,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.MediaDescriptors",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -961,6 +985,7 @@
"methods": [
{
"returnType": "GlobalResourcesDto",
+ "namespace": "Volo.CmsKit.Admin.GlobalResources",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -971,6 +996,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.GlobalResources",
"name": "SetGlobalResourcesAsync",
"summary": null,
"isAsync": true,
@@ -1057,6 +1083,7 @@
"methods": [
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Comments",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1073,6 +1100,7 @@
},
{
"returnType": "CommentWithAuthorDto",
+ "namespace": "Volo.CmsKit.Admin.Comments",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -1089,6 +1117,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Comments",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -1217,6 +1246,7 @@
"methods": [
{
"returnType": "BlogDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -1233,6 +1263,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1249,6 +1280,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -1265,6 +1297,7 @@
},
{
"returnType": "BlogDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -1286,6 +1319,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -1372,6 +1406,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1388,6 +1423,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "SetAsync",
"summary": null,
"isAsync": true,
@@ -1515,6 +1551,7 @@
"methods": [
{
"returnType": "BlogPostDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -1531,6 +1568,7 @@
},
{
"returnType": "BlogPostDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -1552,6 +1590,7 @@
},
{
"returnType": "BlogPostDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -1568,6 +1607,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1584,6 +1624,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -1600,6 +1641,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "PublishAsync",
"summary": null,
"isAsync": true,
@@ -1616,6 +1658,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "DraftAsync",
"summary": null,
"isAsync": true,
@@ -1632,6 +1675,7 @@
},
{
"returnType": "BlogPostDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "CreateAndPublishAsync",
"summary": null,
"isAsync": true,
@@ -1648,6 +1692,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "SendToReviewAsync",
"summary": null,
"isAsync": true,
@@ -1664,6 +1709,7 @@
},
{
"returnType": "BlogPostDto",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "CreateAndSendToReviewAsync",
"summary": null,
"isAsync": true,
@@ -1680,6 +1726,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Admin.Blogs",
"name": "HasBlogPostWaitingForReviewAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json
index 5f9d12dd8c..15d3a881b5 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Admin.HttpApi.Client",
- "hash": "ef3894ffa45c8acb929d4feba96f8075",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Admin",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json
index a616d94e35..e18611bd30 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Admin.HttpApi",
- "hash": "5d180189476676a5483931264591c077",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Admin",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json
index 87cdbecc70..69bd893ca3 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Admin.Web",
- "hash": "fa6d7b5a529c2c76386141dc3cb12bba",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Admin.Web",
@@ -63,6 +63,126 @@
"contentType": "abpModule",
"name": "CmsKitAdminWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags",
+ "contentType": "webPage",
+ "name": "CreateModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags",
+ "contentType": "webPage",
+ "name": "EditModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages",
+ "contentType": "webPage",
+ "name": "CreateModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages",
+ "contentType": "webPage",
+ "name": "UpdateModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems",
+ "contentType": "webPage",
+ "name": "CreateModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems",
+ "contentType": "webPage",
+ "name": "UpdateModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.GlobalResources",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Contents",
+ "contentType": "webPage",
+ "name": "AddWidgetModal",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments",
+ "contentType": "webPage",
+ "name": "DetailsModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "CreateModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "FeaturesModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "UpdateModalModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts",
+ "contentType": "webPage",
+ "name": "CreateModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts",
+ "contentType": "webPage",
+ "name": "UpdateModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json
index 31c2e8b638..f99448fb3a 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Application.Contracts",
- "hash": "66c9cd5f35e614372742f30cffd8bd6f",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json
index 176ef47816..f9241cd762 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Application",
- "hash": "00e09a7a3302312d77b39946caa4bfeb",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json
index 3c7c768c62..83c5e5ef19 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Common.Application.Contracts",
- "hash": "784cb8875b468f63331845f2e59b803c",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json
index cc91790057..97e0500737 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Common.Application",
- "hash": "9c83bf387d563350ffb80d42d2884a92",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
@@ -141,6 +141,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetAllRelatedTagsAsync",
"summary": null,
"isAsync": true,
@@ -159,6 +160,28 @@
"isOptional": false
}
]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
+ "name": "GetPopularTagsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "entityType",
+ "isOptional": false
+ },
+ {
+ "type": "Int32",
+ "name": "maxCount",
+ "isOptional": false
+ }
+ ]
}
],
"contentType": "applicationService",
@@ -232,6 +255,7 @@
"methods": [
{
"returnType": "RemoteStreamContent",
+ "namespace": "Volo.CmsKit.MediaDescriptors",
"name": "DownloadAsync",
"summary": null,
"isAsync": true,
@@ -318,6 +342,7 @@
"methods": [
{
"returnType": "BlogFeatureDto",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetOrDefaultAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json
index 07cf87050b..878f2a794c 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Common.HttpApi.Client",
- "hash": "e7ad713defbe5999262cd31144491fae",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json
index 9fe40718c1..d89526e298 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Common.HttpApi",
- "hash": "a5120d7c193b3e67658db2321ee7f3cf",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json
index 4fb7b3751a..6b69cfe938 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Common.Web",
- "hash": "f301d4e5431930d0c906428b835e9b6d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Web",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json
index 5ae7c0efe3..1a7b4bd11b 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Domain.Shared",
- "hash": "bdbefadcd3677ae51a666b11c07bee07",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json
index a6e5c0aa93..23d55caf3c 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Domain",
- "hash": "a330d75df32c8b504c193f59fe9554e5",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
@@ -157,7 +157,7 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
},
{
@@ -170,6 +170,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Users",
"name": "Update",
"summary": null,
"isAsync": false,
@@ -353,13 +354,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Tags",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -376,6 +378,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Tags",
"name": "SetEntityType",
"summary": null,
"isAsync": false,
@@ -469,7 +472,7 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
@@ -568,6 +571,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Ratings",
"name": "SetStarCount",
"summary": null,
"isAsync": false,
@@ -736,13 +740,20 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
+ },
+ {
+ "name": "IHasEntityVersion",
+ "namespace": "Volo.Abp.Auditing",
+ "declaringAssemblyName": "Volo.Abp.Auditing.Contracts",
+ "fullName": "Volo.Abp.Auditing.IHasEntityVersion"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetTitle",
"summary": null,
"isAsync": false,
@@ -759,6 +770,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetContent",
"summary": null,
"isAsync": false,
@@ -775,6 +787,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetScript",
"summary": null,
"isAsync": false,
@@ -791,6 +804,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetStyle",
"summary": null,
"isAsync": false,
@@ -845,6 +859,11 @@
"type": "System.Boolean",
"name": "IsHomePage",
"summary": null
+ },
+ {
+ "type": "System.Int32",
+ "name": "EntityVersion",
+ "summary": null
}
],
"contentType": "aggregateRoot",
@@ -940,13 +959,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
"name": "SetDisplayName",
"summary": null,
"isAsync": false,
@@ -963,6 +983,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
"name": "SetUrl",
"summary": null,
"isAsync": false,
@@ -1156,13 +1177,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.MediaDescriptors",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -1302,13 +1324,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "SetValue",
"summary": null,
"isAsync": false,
@@ -1414,13 +1437,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Comments",
"name": "SetText",
"summary": null,
"isAsync": false,
@@ -1475,6 +1499,16 @@
"type": "System.DateTime",
"name": "CreationTime",
"summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Url",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "IdempotencyToken",
+ "summary": null
}
],
"contentType": "aggregateRoot",
@@ -1594,13 +1628,14 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -1617,6 +1652,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetSlug",
"summary": null,
"isAsync": false,
@@ -1907,13 +1943,20 @@
{
"name": "IMultiTenant",
"namespace": "Volo.Abp.MultiTenancy",
- "declaringAssemblyName": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
"fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
+ },
+ {
+ "name": "IHasEntityVersion",
+ "namespace": "Volo.Abp.Auditing",
+ "declaringAssemblyName": "Volo.Abp.Auditing.Contracts",
+ "fullName": "Volo.Abp.Auditing.IHasEntityVersion"
}
],
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetTitle",
"summary": null,
"isAsync": false,
@@ -1930,6 +1973,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetShortDescription",
"summary": null,
"isAsync": false,
@@ -1946,6 +1990,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetContent",
"summary": null,
"isAsync": false,
@@ -1962,6 +2007,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetDraft",
"summary": null,
"isAsync": false,
@@ -1972,6 +2018,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetPublished",
"summary": null,
"isAsync": false,
@@ -1982,6 +2029,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetWaitingForReview",
"summary": null,
"isAsync": false,
@@ -2052,6 +2100,11 @@
"type": "Volo.CmsKit.Blogs.BlogPostStatus",
"name": "Status",
"summary": null
+ },
+ {
+ "type": "System.Int32",
+ "name": "EntityVersion",
+ "summary": null
}
],
"contentType": "aggregateRoot",
@@ -2069,6 +2122,7 @@
"methods": [
{
"returnType": "EntityTag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "AddTagToEntityAsync",
"summary": null,
"isAsync": true,
@@ -2105,6 +2159,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Tags",
"name": "RemoveTagFromEntityAsync",
"summary": null,
"isAsync": true,
@@ -2141,6 +2196,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Tags",
"name": "SetEntityTagsAsync",
"summary": null,
"isAsync": true,
@@ -2167,6 +2223,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetEntityIdsFilteredByTagAsync",
"summary": null,
"isAsync": true,
@@ -2193,6 +2250,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetEntityIdsFilteredByTagNameAsync",
"summary": null,
"isAsync": true,
@@ -2252,6 +2310,7 @@
"methods": [
{
"returnType": "Tag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetOrAddAsync",
"summary": null,
"isAsync": true,
@@ -2273,6 +2332,7 @@
},
{
"returnType": "Tag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2299,6 +2359,7 @@
},
{
"returnType": "Tag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -2348,6 +2409,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "GetReactionsAsync",
"summary": null,
"isAsync": true,
@@ -2364,6 +2426,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "GetSummariesAsync",
"summary": null,
"isAsync": true,
@@ -2385,6 +2448,7 @@
},
{
"returnType": "UserReaction",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "GetOrCreateAsync",
"summary": null,
"isAsync": true,
@@ -2416,6 +2480,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -2475,6 +2540,7 @@
"methods": [
{
"returnType": "Rating",
+ "namespace": "Volo.CmsKit.Ratings",
"name": "SetStarAsync",
"summary": null,
"isAsync": true,
@@ -2534,6 +2600,7 @@
"methods": [
{
"returnType": "Page",
+ "namespace": "Volo.CmsKit.Pages",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2570,6 +2637,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetSlugAsync",
"summary": null,
"isAsync": true,
@@ -2591,6 +2659,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Pages",
"name": "SetHomePageAsync",
"summary": null,
"isAsync": true,
@@ -2607,6 +2676,7 @@
},
{
"returnType": "Page",
+ "namespace": "Volo.CmsKit.Pages",
"name": "GetHomePageAsync",
"summary": null,
"isAsync": true,
@@ -2645,6 +2715,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
"name": "SetPageUrl",
"summary": null,
"isAsync": false,
@@ -2666,6 +2737,29 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
+ "name": "SetPageUrl",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "MenuItem",
+ "name": "menuItem",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "url",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
"name": "MoveAsync",
"summary": null,
"isAsync": true,
@@ -2692,6 +2786,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Menus",
"name": "OrganizeTreeOrderForMenuItem",
"summary": null,
"isAsync": false,
@@ -2741,6 +2836,7 @@
"methods": [
{
"returnType": "MediaDescriptor",
+ "namespace": "Volo.CmsKit.MediaDescriptors",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2800,6 +2896,7 @@
"methods": [
{
"returnType": "GlobalResource",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "SetGlobalStyleAsync",
"summary": null,
"isAsync": true,
@@ -2816,6 +2913,7 @@
},
{
"returnType": "GlobalResource",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "SetGlobalScriptAsync",
"summary": null,
"isAsync": true,
@@ -2832,6 +2930,7 @@
},
{
"returnType": "GlobalResource",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "GetGlobalStyleAsync",
"summary": null,
"isAsync": true,
@@ -2842,6 +2941,7 @@
},
{
"returnType": "GlobalResource",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "GetGlobalScriptAsync",
"summary": null,
"isAsync": true,
@@ -2880,6 +2980,7 @@
"methods": [
{
"returnType": "Comment",
+ "namespace": "Volo.CmsKit.Comments",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2907,6 +3008,11 @@
"name": "text",
"isOptional": false
},
+ {
+ "type": "String",
+ "name": "url",
+ "isOptional": true
+ },
{
"type": "Nullable",
"name": "repliedCommentId",
@@ -2944,6 +3050,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetAsync",
"summary": null,
"isAsync": true,
@@ -2970,6 +3077,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetDefaultsAsync",
"summary": null,
"isAsync": true,
@@ -2986,6 +3094,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetIfNotSetAsync",
"summary": null,
"isAsync": true,
@@ -3012,6 +3121,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetDefaultsIfNotSetAsync",
"summary": null,
"isAsync": true,
@@ -3056,6 +3166,7 @@
"methods": [
{
"returnType": "Blog",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -3077,6 +3188,7 @@
},
{
"returnType": "Blog",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -3131,6 +3243,7 @@
"methods": [
{
"returnType": "BlogPost",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -3182,6 +3295,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SetSlugUrlAsync",
"summary": null,
"isAsync": true,
@@ -3306,6 +3420,7 @@
"methods": [
{
"returnType": "EntityTag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -3337,6 +3452,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Tags",
"name": "DeleteManyAsync",
"summary": null,
"isAsync": true,
@@ -3363,6 +3479,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetEntityIdsFilteredByTagAsync",
"summary": null,
"isAsync": true,
@@ -3389,6 +3506,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetEntityIdsFilteredByTagNameAsync",
"summary": null,
"isAsync": true,
@@ -3468,6 +3586,7 @@
"methods": [
{
"returnType": "Tag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -3494,6 +3613,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Tags",
"name": "AnyAsync",
"summary": null,
"isAsync": true,
@@ -3520,6 +3640,7 @@
},
{
"returnType": "Tag",
+ "namespace": "Volo.CmsKit.Tags",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -3546,6 +3667,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3558,6 +3680,21 @@
"name": "filter",
"isOptional": false
},
+ {
+ "type": "Int32",
+ "name": "maxResultCount",
+ "isOptional": true
+ },
+ {
+ "type": "Int32",
+ "name": "skipCount",
+ "isOptional": true
+ },
+ {
+ "type": "String",
+ "name": "sorting",
+ "isOptional": true
+ },
{
"type": "CancellationToken",
"name": "cancellationToken",
@@ -3567,6 +3704,7 @@
},
{
"returnType": "Int32",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -3588,6 +3726,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
"name": "GetAllRelatedTagsAsync",
"summary": null,
"isAsync": true,
@@ -3611,6 +3750,33 @@
"isOptional": true
}
]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.CmsKit.Tags",
+ "name": "GetPopularTagsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "entityType",
+ "isOptional": false
+ },
+ {
+ "type": "Int32",
+ "name": "maxCount",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
}
],
"contentType": "repositoryInterface",
@@ -3662,6 +3828,7 @@
"methods": [
{
"returnType": "UserReaction",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -3698,6 +3865,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "GetListForUserAsync",
"summary": null,
"isAsync": true,
@@ -3729,6 +3897,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Reactions",
"name": "GetSummariesAsync",
"summary": null,
"isAsync": true,
@@ -3803,6 +3972,7 @@
"methods": [
{
"returnType": "Rating",
+ "namespace": "Volo.CmsKit.Ratings",
"name": "GetCurrentUserRatingAsync",
"summary": null,
"isAsync": true,
@@ -3834,6 +4004,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Ratings",
"name": "GetGroupedStarCountsAsync",
"summary": null,
"isAsync": true,
@@ -3908,6 +4079,7 @@
"methods": [
{
"returnType": "Int32",
+ "namespace": "Volo.CmsKit.Pages",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -3929,6 +4101,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Pages",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3965,6 +4138,7 @@
},
{
"returnType": "Page",
+ "namespace": "Volo.CmsKit.Pages",
"name": "GetBySlugAsync",
"summary": null,
"isAsync": true,
@@ -3986,6 +4160,7 @@
},
{
"returnType": "Page",
+ "namespace": "Volo.CmsKit.Pages",
"name": "FindBySlugAsync",
"summary": null,
"isAsync": true,
@@ -4007,6 +4182,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Pages",
"name": "ExistsAsync",
"summary": null,
"isAsync": true,
@@ -4028,6 +4204,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Pages",
"name": "GetListOfHomePagesAsync",
"summary": null,
"isAsync": true,
@@ -4041,6 +4218,28 @@
"isOptional": true
}
]
+ },
+ {
+ "returnType": "String",
+ "namespace": "Volo.CmsKit.Pages",
+ "name": "FindTitleAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "pageId",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
}
],
"contentType": "repositoryInterface",
@@ -4186,6 +4385,7 @@
"methods": [
{
"returnType": "GlobalResource",
+ "namespace": "Volo.CmsKit.GlobalResources",
"name": "FindByNameAsync",
"summary": null,
"isAsync": true,
@@ -4255,6 +4455,7 @@
"methods": [
{
"returnType": "CommentWithAuthorQueryResultItem",
+ "namespace": "Volo.CmsKit.Comments",
"name": "GetWithAuthorAsync",
"summary": null,
"isAsync": true,
@@ -4276,6 +4477,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Comments",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -4337,6 +4539,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.CmsKit.Comments",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -4383,6 +4586,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Comments",
"name": "GetListWithAuthorsAsync",
"summary": null,
"isAsync": true,
@@ -4409,6 +4613,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Comments",
"name": "DeleteWithRepliesAsync",
"summary": null,
"isAsync": true,
@@ -4427,6 +4632,28 @@
"isOptional": true
}
]
+ },
+ {
+ "returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Comments",
+ "name": "ExistsAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "idempotencyToken",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
}
],
"contentType": "repositoryInterface",
@@ -4478,6 +4705,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -4499,6 +4727,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -4525,6 +4754,7 @@
},
{
"returnType": "BlogFeature",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -4599,6 +4829,7 @@
"methods": [
{
"returnType": "Int32",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -4640,6 +4871,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -4696,6 +4928,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SlugExistsAsync",
"summary": null,
"isAsync": true,
@@ -4722,6 +4955,7 @@
},
{
"returnType": "BlogPost",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetBySlugAsync",
"summary": null,
"isAsync": true,
@@ -4748,6 +4982,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetAuthorsHasBlogPostsAsync",
"summary": null,
"isAsync": true,
@@ -4784,6 +5019,7 @@
},
{
"returnType": "Int32",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetAuthorsHasBlogPostsCountAsync",
"summary": null,
"isAsync": true,
@@ -4805,6 +5041,7 @@
},
{
"returnType": "CmsUser",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetAuthorHasBlogPostAsync",
"summary": null,
"isAsync": true,
@@ -4826,6 +5063,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "HasBlogPostWaitingForReviewAsync",
"summary": null,
"isAsync": true,
@@ -4890,6 +5128,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -4926,6 +5165,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -4947,6 +5187,7 @@
},
{
"returnType": "Blog",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "GetBySlugAsync",
"summary": null,
"isAsync": true,
@@ -4968,6 +5209,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "ExistsAsync",
"summary": null,
"isAsync": true,
@@ -4989,6 +5231,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Blogs",
"name": "SlugExistsAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json
index 75a47da9b8..f8745e593d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.EntityFrameworkCore",
- "hash": "f77c50f915305bf6c4f61dd28fac3d42",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.EntityFrameworkCore",
@@ -74,6 +74,25 @@
"connectionStringName": "CmsKit",
"databaseTables": [],
"replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
+ {
+ "returnType": "Void",
+ "namespace": "Volo.CmsKit.EntityFrameworkCore",
+ "name": "ConfigureCmsKit",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
+ }
+ ],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json
index 1629b07433..6d48362846 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.HttpApi.Client",
- "hash": "81149b8997a408cc61968718d651707d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json
index 3cccbcb7bd..a2b88f1280 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.HttpApi",
- "hash": "21341ac4929e1d6f0dbc8e183ac3434d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit",
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json
index e4f8245ace..e43dc00fc3 100644
--- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.MongoDB",
- "hash": "0a97f3dd5afa54002ac001896c098325",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.MongoDB",
@@ -74,81 +74,81 @@
"connectionStringName": "CmsKit",
"databaseCollections": [
{
- "entityFullName": "Volo.CmsKit.Tags.Tag",
+ "entityFullName": "Volo.CmsKit.Comments.Comment",
"contentType": "databaseCollection",
- "name": "CmsTags",
+ "name": "Comments",
"summary": null
},
{
"entityFullName": "Volo.CmsKit.Reactions.UserReaction",
"contentType": "databaseCollection",
- "name": "CmsUserReactions",
+ "name": "UserReactions",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Pages.Page",
+ "entityFullName": "Volo.CmsKit.Users.CmsUser",
"contentType": "databaseCollection",
- "name": "CmsPages",
+ "name": "CmsUsers",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Comments.Comment",
+ "entityFullName": "Volo.CmsKit.Ratings.Rating",
"contentType": "databaseCollection",
- "name": "CmsComments",
+ "name": "Ratings",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Ratings.Rating",
+ "entityFullName": "Volo.CmsKit.Tags.Tag",
"contentType": "databaseCollection",
- "name": "CmsRatings",
+ "name": "Tags",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Blogs.BlogFeature",
+ "entityFullName": "Volo.CmsKit.Tags.EntityTag",
"contentType": "databaseCollection",
- "name": "CmsBlogFeatures",
+ "name": "EntityTags",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Users.CmsUser",
+ "entityFullName": "Volo.CmsKit.Pages.Page",
"contentType": "databaseCollection",
- "name": "CmsUsers",
+ "name": "Pages",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Blogs.BlogPost",
+ "entityFullName": "Volo.CmsKit.Blogs.Blog",
"contentType": "databaseCollection",
- "name": "CmsBlogPosts",
+ "name": "Blogs",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Menus.MenuItem",
+ "entityFullName": "Volo.CmsKit.Blogs.BlogPost",
"contentType": "databaseCollection",
- "name": "CmsMenuItems",
+ "name": "BlogPosts",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Blogs.Blog",
+ "entityFullName": "Volo.CmsKit.Blogs.BlogFeature",
"contentType": "databaseCollection",
- "name": "CmsBlogs",
+ "name": "BlogFeatures",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.Tags.EntityTag",
+ "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor",
"contentType": "databaseCollection",
- "name": "CmsEntityTags",
+ "name": "MediaDescriptors",
"summary": null
},
{
- "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor",
+ "entityFullName": "Volo.CmsKit.Menus.MenuItem",
"contentType": "databaseCollection",
- "name": "CmsMediaDescriptors",
+ "name": "MenuItems",
"summary": null
},
{
"entityFullName": "Volo.CmsKit.GlobalResources.GlobalResource",
"contentType": "databaseCollection",
- "name": "CmsGlobalResources",
+ "name": "GlobalResources",
"summary": null
}
],
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json
index 1dc00dc661..68bc9f6b6d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Public.Application.Contracts",
- "hash": "399ba7790fef13507bce65ed77967e4b",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Public",
@@ -63,6 +63,20 @@
"contentType": "abpModule",
"name": "CmsKitPublicApplicationContractsModule",
"summary": null
+ },
+ {
+ "displayName": "Comment management",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "CmsKitPublic.Comments",
+ "summary": null
+ },
+ {
+ "displayName": "Delete all",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "CmsKitPublic.Comments.DeleteAll",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs
index 9199458c87..dc68256f8a 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs
@@ -21,7 +21,7 @@ public class CommentDto : ExtensibleObject, IHasConcurrencyStamp
public DateTime CreationTime { get; set; }
- public CmsUserDto Author { get; set; } //TODO: Should only have AuthorId for the basic dto. see https://docs.abp.io/en/abp/latest/Best-Practices/Application-Services
+ public CmsUserDto Author { get; set; } //TODO: Should only have AuthorId for the basic dto. see https://abp.io/docs/latest/framework/architecture/best-practices/application-services
public string ConcurrencyStamp { get; set; }
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json
index 5aa9406110..06a2245857 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Public.Application",
- "hash": "b56557870806fcc0a1b72ff08f55da55",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Public",
@@ -136,6 +136,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.CmsKit.Public.Reactions",
"name": "GetForSelectionAsync",
"summary": null,
"isAsync": true,
@@ -157,6 +158,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Public.Reactions",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -183,6 +185,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Public.Reactions",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -279,6 +282,7 @@
"methods": [
{
"returnType": "RatingDto",
+ "namespace": "Volo.CmsKit.Public.Ratings",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -305,6 +309,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Public.Ratings",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -326,6 +331,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Public.Ratings",
"name": "GetGroupedStarCountsAsync",
"summary": null,
"isAsync": true,
@@ -417,6 +423,7 @@
"methods": [
{
"returnType": "PageDto",
+ "namespace": "Volo.CmsKit.Public.Pages",
"name": "FindBySlugAsync",
"summary": null,
"isAsync": true,
@@ -433,6 +440,7 @@
},
{
"returnType": "PageDto",
+ "namespace": "Volo.CmsKit.Public.Pages",
"name": "FindDefaultHomePageAsync",
"summary": null,
"isAsync": true,
@@ -440,6 +448,23 @@
"isPrivate": false,
"isStatic": false,
"parameters": []
+ },
+ {
+ "returnType": "Boolean",
+ "namespace": "Volo.CmsKit.Public.Pages",
+ "name": "DoesSlugExistAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "slug",
+ "isOptional": false
+ }
+ ]
}
],
"contentType": "applicationService",
@@ -513,6 +538,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.CmsKit.Public.Menus",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -593,6 +619,7 @@
"methods": [
{
"returnType": "GlobalResourceDto",
+ "namespace": "Volo.CmsKit.Public.GlobalResources",
"name": "GetGlobalScriptAsync",
"summary": null,
"isAsync": true,
@@ -603,6 +630,7 @@
},
{
"returnType": "GlobalResourceDto",
+ "namespace": "Volo.CmsKit.Public.GlobalResources",
"name": "GetGlobalStyleAsync",
"summary": null,
"isAsync": true,
@@ -683,6 +711,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.CmsKit.Public.Comments",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -704,6 +733,7 @@
},
{
"returnType": "CommentDto",
+ "namespace": "Volo.CmsKit.Public.Comments",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -730,6 +760,7 @@
},
{
"returnType": "CommentDto",
+ "namespace": "Volo.CmsKit.Public.Comments",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -751,6 +782,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.CmsKit.Public.Comments",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -837,6 +869,7 @@
"methods": [
{
"returnType": "BlogPostCommonDto",
+ "namespace": "Volo.CmsKit.Public.Blogs",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -858,6 +891,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Public.Blogs",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -879,6 +913,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.CmsKit.Public.Blogs",
"name": "GetAuthorsHasBlogPostsAsync",
"summary": null,
"isAsync": true,
@@ -895,6 +930,7 @@
},
{
"returnType": "CmsUserDto",
+ "namespace": "Volo.CmsKit.Public.Blogs",
"name": "GetAuthorHasBlogPostAsync",
"summary": null,
"isAsync": true,
@@ -908,6 +944,40 @@
"isOptional": false
}
]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.CmsKit.Public.Blogs",
+ "name": "DeleteAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "id",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "String",
+ "namespace": "Volo.CmsKit.Public.Blogs",
+ "name": "GetTagNameAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "tagId",
+ "isOptional": false
+ }
+ ]
}
],
"contentType": "applicationService",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json
index 80205a3959..62a47341e8 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Public.HttpApi.Client",
- "hash": "54e4cc77905039df9b16fde35a23e6fa",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Public",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json
index a99c733cc3..ff3f4e1b8e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Public.HttpApi",
- "hash": "e0f90c7c40bbd72d50bcd41f413fbf6a",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Public",
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json
index baff1e5a88..c82bbb321d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Public.Web",
- "hash": "a7ba6e8a7c5cd8f816a4fe9e11d41a02",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Public.Web",
@@ -63,6 +63,24 @@
"contentType": "abpModule",
"name": "CmsKitPublicWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "BlogPostModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json
index 39cd4fabeb..1c49452d8b 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json
+++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.CmsKit.Web",
- "hash": "5baa473fb5239f09781f6d7baf769b0c",
+ "hash": "",
"contents": [
{
"namespace": "Volo.CmsKit.Web",
diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs
index d01fc295cf..e260e3debe 100644
--- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs
+++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs
@@ -84,8 +84,8 @@ public class CommentPublicAppService_Tests : CmsKitApplicationTestBase
}
[Theory]
- [InlineData("[ABP Community](https://community.abp.io/)")]
- [InlineData("docs.abp.io")]
+ [InlineData("[ABP Community](https://abp.io/community/)")]
+ [InlineData("abp.io/docs")]
public async Task CreateAsync_ShouldThrowUserFriendlyException_If_Url_UnAllowed(string text)
{
_currentUser.Id.Returns(_cmsKitTestData.User2Id);
@@ -150,7 +150,7 @@ public class CommentPublicAppService_Tests : CmsKitApplicationTestBase
_cmsKitTestData.CommentWithChildId,
new UpdateCommentInput
{
- Text = "[ABP Community - Update](https://community.abp.io/)", //not allowed URL
+ Text = "[ABP Community - Update](https://abp.io/community/)", //not allowed URL
}
));
}
diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json
index db21a0a643..795e64c256 100644
--- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "VoloDocs.EntityFrameworkCore",
- "hash": "16b4276f8bb7836474b6a2da1a71df37",
+ "hash": "",
"contents": [
{
"namespace": "VoloDocs.EntityFrameworkCore",
@@ -84,6 +84,7 @@
"connectionStringName": null,
"databaseTables": [],
"replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml
index 0a212f1499..daa4c90a5f 100644
--- a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml
+++ b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml
@@ -7,7 +7,7 @@
{
No projects found!
- See documentation to see how you can create a new one.
+ See documentation to see how you can create a new one.
}
else
diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json
index 475fa0cad0..9567c10ab1 100644
--- a/modules/docs/app/VoloDocs.Web/package.json
+++ b/modules/docs/app/VoloDocs.Web/package.json
@@ -3,7 +3,7 @@
"name": "volo.docstestapp",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.1",
- "@abp/docs": "~8.2.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.3",
+ "@abp/docs": "~8.2.3"
}
}
diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock
index 8bbae7b45b..54979e8a5a 100644
--- a/modules/docs/app/VoloDocs.Web/yarn.lock
+++ b/modules/docs/app/VoloDocs.Web/yarn.lock
@@ -2,238 +2,238 @@
# yarn lockfile v1
-"@abp/anchor-js@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.2.1.tgz#329b854b4c807218028daffed6cdbddac430dd3e"
- integrity sha512-SLlduK47cQUcd7oHMMXWmQK1jsF+gXei8ghAwLpQ6HdCqpdcjkl1W+kJVsw1LYq7FGbumoNulS2d4Y+E+VCyIQ==
+"@abp/anchor-js@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.2.3.tgz#07d4eab78670b4da36e7feb8643dbd305cb01535"
+ integrity sha512-JSwv2pXvdyWkFSpowIh0aC02QLRweZfcEYOc+PmTku+SgsB3b+eSz53BKh9lTnlssmSAWs396buPvt8QAtiebA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
anchor-js "^4.3.1"
-"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.1.tgz#4c3b62f36a0a152fc8718ccc3ea64a81bb22c11c"
- integrity sha512-BzXj+7QOGL+M4j2ZNryatTX4wtD7Lv+ybvU0ilyFy8XmCc1c3VyYwXgPPibfpeG7VVWD4mmfC6NPtg1qRX6Bdg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.1.tgz#86552f8f960e02b3cfe3ad20a94baa52df73b07e"
- integrity sha512-aD+LQJ/bg/NsbHrVl2ZPZm9QDerGEg1QvzlJgr2M9yvEBKg+G9xYT1bxKRK6G/uK5qat4xqH0DJPpz/IIprGQA==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~8.2.1"
- "@abp/bootstrap" "~8.2.1"
- "@abp/bootstrap-datepicker" "~8.2.1"
- "@abp/bootstrap-daterangepicker" "~8.2.1"
- "@abp/datatables.net-bs5" "~8.2.1"
- "@abp/font-awesome" "~8.2.1"
- "@abp/jquery-form" "~8.2.1"
- "@abp/jquery-validation-unobtrusive" "~8.2.1"
- "@abp/lodash" "~8.2.1"
- "@abp/luxon" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/moment" "~8.2.1"
- "@abp/select2" "~8.2.1"
- "@abp/sweetalert2" "~8.2.1"
- "@abp/timeago" "~8.2.1"
- "@abp/toastr" "~8.2.1"
-
-"@abp/aspnetcore.mvc.ui@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.1.tgz#2b002fef1d26171a8dfe9395af49afbe76c8223b"
- integrity sha512-A+H7uIkwusHy4Qv0pIeiNQGz/BmzLUR9Q7c5KwtJyL287i5D+hHGD5gzc2Q3F8C29SfVc76zLDwDQ1o6Rsm5Rg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.3.tgz#4456eef32942a1064543f46b9b22fdd941ec209d"
+ integrity sha512-CmJ7Jp5guO/lCXb9IjrhZ0jpnlbL0d3k/7w6gp/jGhFZ5w7gTgI+ZOtr4jzQnQRWF+ZwaVhsgtfBG9PdNl63QA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.3.tgz#b1a795a947cf710730ddeec4684e706cd0d8b853"
+ integrity sha512-UDRzWXFUL1kHlrhzgjXwo+UxFwkthyQj2agk889mdt4doZ4NGbHKmgdHNrtt1PIOM8VOcQNubBx5VePffuMcYA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~8.2.3"
+ "@abp/bootstrap" "~8.2.3"
+ "@abp/bootstrap-datepicker" "~8.2.3"
+ "@abp/bootstrap-daterangepicker" "~8.2.3"
+ "@abp/datatables.net-bs5" "~8.2.3"
+ "@abp/font-awesome" "~8.2.3"
+ "@abp/jquery-form" "~8.2.3"
+ "@abp/jquery-validation-unobtrusive" "~8.2.3"
+ "@abp/lodash" "~8.2.3"
+ "@abp/luxon" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/moment" "~8.2.3"
+ "@abp/select2" "~8.2.3"
+ "@abp/sweetalert2" "~8.2.3"
+ "@abp/timeago" "~8.2.3"
+ "@abp/toastr" "~8.2.3"
+
+"@abp/aspnetcore.mvc.ui@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.3.tgz#02e20c42b198bf6bb13e313b4a4b435f17dc9ddd"
+ integrity sha512-414cAonBhJDZmlEat4gY1Qaf1npgJjYj/re9O0Rk/FdW2vO8Qt56LozGIsbvVY4RjMsQwpwkkgH4RWlIKm3q8w==
dependencies:
ansi-colors "^4.1.1"
-"@abp/bootstrap-datepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.1.tgz#a7549394a9c863286959144dd9a7b8664d84282b"
- integrity sha512-tzQUt5eLm63xdFvmxavYarQEXFWQ7QRYgbi8kNP4U7oZbiyw72s8pSuYyGPt9yiaYUeSgk7HQZJPl2w5pUHpMg==
+"@abp/bootstrap-datepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.3.tgz#ceec259251a692d25daae9263b54a3142b007f23"
+ integrity sha512-o3uZtuw/NKJTCKf5tK5U7Qii+9PgJGWIjLkqb7mXGftIMdqOaJ+QHZe+J9XaO4of8l2HtGkXp+fuQGVJBTlFAg==
dependencies:
bootstrap-datepicker "^1.9.0"
-"@abp/bootstrap-daterangepicker@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.1.tgz#9b1f9d6677023cd57be5db1ebc2cdf6dab43c3a8"
- integrity sha512-/0WKJ1uaHJvBnOXcl+7KaiOazUE7f24qTVrL5PjsXjb+R2NIaf5TOYlcAj9QneZzpN1Bi+gMA1DXzTIkvNOmoA==
+"@abp/bootstrap-daterangepicker@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.3.tgz#b33117eb5dfcdbea9cb5212acfecd4e040ce7c2d"
+ integrity sha512-UR1TXFStbvD54wb6vEVK3FVHYtgugLBdDg4Xyh+aNe2sUTm+kfXh4+1Xm+3R1SV3cWvRT57Sy1bc306c6CQ7Zg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.1.tgz#56f480d6298a34408c5ebe6fe0cea85d1229edbb"
- integrity sha512-Z4QYUkOyau4NpzpY4EW4t7aLArKP/9g/56+12niBVBn66qAkbNRYwrLS7Hfbt8bblHN0LDFcIyQMS4UyDL0NzQ==
+"@abp/bootstrap@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.3.tgz#462c4a5712d6d0baee345dc318fc5463527cbc21"
+ integrity sha512-jThgI5nlP5A/cKLUoNgRA5ldHz5xNoGkD+V0Z/gScbeAE8Q8eu7Q5P82PLF8B8cgKjOqJXb2L5kbdNYFdqIOwg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
bootstrap "^5.1.3"
-"@abp/clipboard@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.1.tgz#6c2c14fecbac60d29680e8a0b6d304e5f8baf30d"
- integrity sha512-9hIb9aQyEoe5955cV5M81u7RUL/IObN55PQEKhzQsQcoQb+evLG9V43Epwtkg/2t6w02d+W5HjysBEc6t8o1IA==
+"@abp/clipboard@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.3.tgz#9e0c0b750114ddaca0beba1051dd7fc1fe77f543"
+ integrity sha512-RS1pVeeN1/5LlDNBBRDFUqR+xpfWteCZfIByh8xAbec1xuxHmxxxvb3kv1Wp7n4c1ec3V0yLRyvaj0SfYmnWNA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
clipboard "^2.0.8"
-"@abp/core@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.1.tgz#a081527fb2871fc932809e1572f958de1287bae0"
- integrity sha512-UxGuwOK11arzj/G3UDdwOoEOdqrNZaCfSuBTdcXDTQrvPv8M0AxMpCXSgFy16aAXcDHZNzQ4oFDuyabdjorNzQ==
+"@abp/core@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.3.tgz#1474f8e24cc8707bd909e1cd49230cdaa54c447e"
+ integrity sha512-mluL7NHWRxvjwHHGd3kOWQg0Tnmt4o2ih/KfdDJl7z4lpy386yL+UutkE3NNhgbEGWDt1hnS5rKFZabhaahwWg==
dependencies:
- "@abp/utils" "~8.2.1"
+ "@abp/utils" "~8.2.3"
-"@abp/datatables.net-bs5@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.1.tgz#222f9ff87f06ec41c594c3a6303faa78b39b5a40"
- integrity sha512-u7/DYPvO60QOdwk0w2aUvv2jxFgSeqhUiYY7pSoedtkKOc1yM0/L2XVHzsFbInKAiFUaDGcC6/KTYHwnL2bKdQ==
+"@abp/datatables.net-bs5@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.3.tgz#8e80767d7677ebf69a56248039ef5604499bbc30"
+ integrity sha512-XTjo15yM/nJiFfRtTMnfOJNh6FX+Vmmf5Kq5aG5XjUcp1IepEAgiNNOSmh+zRhUt4BDZ4RWcfSSGNbh0icUIOg==
dependencies:
- "@abp/datatables.net" "~8.2.1"
+ "@abp/datatables.net" "~8.2.3"
datatables.net-bs5 "^1.11.4"
-"@abp/datatables.net@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.1.tgz#403c952c6d3acb048377268fb0c1c4f03e508649"
- integrity sha512-j7FigX5ucxWAS3AaaJw2cF9ShWTWpie5gwutyxLiLsdBUnEb+OpFGf+rPOFQojEWT91iA+YrxylqyVdx8Q3Xjg==
+"@abp/datatables.net@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.3.tgz#e38567679720546d42b895d9a464728ea3730292"
+ integrity sha512-CT18SqBuY25UmjNbiSbI9eqvbPNZZm+yYsZoasSUv3JOpO1oPfclgtZV5FKeBQQvM5Vc0BhRs7KMKF2F0pwszA==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
datatables.net "^1.11.4"
-"@abp/docs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.2.1.tgz#e6eee36a815ffea318780c0fe2fb6bc697ec9b6d"
- integrity sha512-3EMqDSmb9S1VQWR8/cFZINb3fpt2uXxijHns7kfHOVy8DtZUZaEQaSsAtje+8O8JOUrRW37yBVae8HWQGpa7pg==
+"@abp/docs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.2.3.tgz#1928c5340eaf81f7a3054749ccf483d7b029eb42"
+ integrity sha512-BKvOTISXSGJ24Pl/pnFiV0Az85kCcp1K/y+o1LaHmUa7L53RkNfTRSzerY0q/eg0Mjnnv9Qyl+1Uv4TLWaFLYg==
dependencies:
- "@abp/anchor-js" "~8.2.1"
- "@abp/clipboard" "~8.2.1"
- "@abp/malihu-custom-scrollbar-plugin" "~8.2.1"
- "@abp/popper.js" "~8.2.1"
- "@abp/prismjs" "~8.2.1"
+ "@abp/anchor-js" "~8.2.3"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/malihu-custom-scrollbar-plugin" "~8.2.3"
+ "@abp/popper.js" "~8.2.3"
+ "@abp/prismjs" "~8.2.3"
-"@abp/font-awesome@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.1.tgz#90e75b4f96b41f77d326a86f9ed883e44488b54a"
- integrity sha512-6XkeFcMKSxZR1kbHYfD8abWKg+PshrGHLq/oCRGic/MbAceKDaqvjEqttHo20g4v5nIfM8W40Afx4RHkJObQjw==
+"@abp/font-awesome@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.3.tgz#92d7645c94cda07becb8e2ea23e7769ec55c43b1"
+ integrity sha512-OLQRBuPHtPyM5IHhIJwsbkE8idmu/DDAIm92kOa97p0r0Hx7epnKx+Yrwz23FuRH2wYlmYJqDmwj1VTK90gxYA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@fortawesome/fontawesome-free" "^6.5.1"
-"@abp/jquery-form@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.1.tgz#0343c03acaed538ca9c616d189e31409226ce0e4"
- integrity sha512-DX3UtKRSNmsBnLEBZ+t4+93WBK2F21WwClpNWAl6g5jkKnuh9C/uYVegInQpwDtPKTQaGDaeoMdpmcxcHi4QkA==
+"@abp/jquery-form@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.3.tgz#a8c593e6afbbcff5250657f052fc9912cdf352ac"
+ integrity sha512-AhkNUdyXE/q7hsra+1xj8W/g7lkIgR9YXrr0RgddPW+dqYqVvbYdFcPliHaSsl+kzPHSRx7eez8AjQSZlReIjg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.1.tgz#ecd27b212befd5fe478bf49922cde08644a65329"
- integrity sha512-iQONdMHY+djfSO8TLtlcqL48oV8Oe3VvEwUFSM0mbkaJZRMdWCTQ76A5Qr4GgLzShALozT0ILWjH9LhaPSOuBw==
+"@abp/jquery-validation-unobtrusive@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.3.tgz#d21cbc1694b68f6377134e4e535d19e2cda0fb8d"
+ integrity sha512-2Ilrveqsj5jorZ2N75zLlHO8+NGRmLecRWIDZZmuyCXVF/LyyceaNBhkdiV+Ofcts387TVkQkjkoArV10Uu+Jg==
dependencies:
- "@abp/jquery-validation" "~8.2.1"
+ "@abp/jquery-validation" "~8.2.3"
jquery-validation-unobtrusive "^3.2.12"
-"@abp/jquery-validation@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.1.tgz#c89ca677c05593e78339eba6fa21e9005dd779eb"
- integrity sha512-8IdbM1JtcWLcf7woqUPJLLm+0Q0BEQ65NxgtJvljkKJceSTFnoqK9w4rQpwyoRtgmx39qKZEjnD8QZmb24jpBg==
+"@abp/jquery-validation@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.3.tgz#642b7f56c1da5469443f864f04eb09cb0bf75bb4"
+ integrity sha512-qbML5oyoq9ltq212qD8C7jVOqNwTdvyRzTu3SsN15AXecapZxO/BPjhCgLb99OK4zT7hZaC8R+H0CDBa3O5pvg==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
jquery-validation "^1.19.3"
-"@abp/jquery@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.1.tgz#89ae680a5700684853475a7f5e47513d908edc4d"
- integrity sha512-xdubgEg75ws7iFwNc2P7qJgQ1uEcj74IRv/VX/9bqceXRjjeeiwsYr1hCEw/QvAfy8NntVtCdaqn/uAIGcnMMQ==
+"@abp/jquery@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.3.tgz#e73d1df860276ae2a081c6f945f586720a71781d"
+ integrity sha512-SDOnVUJo0g3tuA40Z2Nme8yI1nTCwp0Mh2aAf3L3W+F8lzV3OQS8mUmpektxhPsFen0DufSvilOC+aI6/Jx5lQ==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
jquery "~3.6.0"
-"@abp/lodash@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.1.tgz#70d31fd5eb5c01e155fd1ee7cf7b8ba1e7bc6ef2"
- integrity sha512-MXToqAZVaEnFRt5oG4Fo25yli3j7CBEwnM47fLIvt7SBaXUb4pWQWk/u2ywmTl8pL0LVwkIK4yywXbmWQew92Q==
+"@abp/lodash@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.3.tgz#e78ef9e681369af51b6c36a0a450884c4ee5677a"
+ integrity sha512-47YoHS0CrH+PiQ8eF/ASYodGH+foBRBJVkDmRgZ1vegs10CJukBYgAutPlNMC2onlEF1jLYJ40ZKsHd6TrFQkA==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
lodash "^4.17.21"
-"@abp/luxon@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.1.tgz#dc297641521de9eb57703562d9232b6b9ebdf785"
- integrity sha512-5XeneFCn74+NTkcWvb5zRZvQq1i03qA/4xzfk8SiDZiOGzvuRX6PViJfG0/De6fj2UmumPE8lHYeajTIKrYjzA==
+"@abp/luxon@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.3.tgz#445d763360b29a7591ab31898ce522e61be9d97e"
+ integrity sha512-pT+oO4znadhSleuH3x6n1nEgOzfVl0aHurt4F+wnJHyP7SdC2+RjZOYJUkuRIaZzflG4699Qq0UgAW6GfpuUgg==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
luxon "^2.3.0"
-"@abp/malihu-custom-scrollbar-plugin@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.1.tgz#b067b2e34f1477694cd3b5d71bb532f4d1620702"
- integrity sha512-oUQqp9felTrsC4Ovstbz3h1PzBql7aTR2mAn4LXuhsuugRxg48USpbaYFYXJWU8fqJU2GSQS4SjEjYKsuxn1+A==
+"@abp/malihu-custom-scrollbar-plugin@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.3.tgz#7018c4ab65b78512bf5ea8f542fb0c7119a39e0b"
+ integrity sha512-CCc0iOaulmssuUL7RsAApRzYD+SXAPbqz5iod6yuyx3Y5Vaz4ik+2/cG7XZgwcgsmctJYZl3IxZ/ijnZXLgHUw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.1.tgz#4b43d58169b2c9bcbebcc0a8ea8b6088d5083ff5"
- integrity sha512-Fx5iXcCJP9iBriycWzR7fny0cMYMqWgmsHRC+83GbZaTl3iE1wkHvdyqoZ7ILSUzxMSg6eV7RzHYzeNV0sPaUg==
+"@abp/moment@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.3.tgz#126039218e6068eca4279eae1eb5375207780931"
+ integrity sha512-nV11P1KqX8xPmb/bs3yYbFPz7ZOXWnZPKd4Z2k0JYaFTS2C07twgS0uQQHwW6iP8DrS1QBBAyLYBuM3ctgB0dg==
dependencies:
moment "^2.9.0"
-"@abp/popper.js@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.2.1.tgz#10a540d2c8489e160462054c57ab143429d0d851"
- integrity sha512-m+dGWY1MlXIMb1mKzIba0V6oh6gk0VJM3/ZDk25fTcuJTv8fGOjj/HDtsRq03HZ2V860z+ZjNCkE3Kz19nDGOA==
+"@abp/popper.js@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.2.3.tgz#ac3a1072575bb8f22d8073bc39ba6e914aff478f"
+ integrity sha512-RCSTZMhhueS7I5O7nTD7EiRHILIHe3IyiaC1xIY4T8FQYcR1TAPNNhO4hr8SuJhDTwhM9NwnnqFOMpQPnHRY8w==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
"@popperjs/core" "^2.11.2"
-"@abp/prismjs@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.1.tgz#d72808d2569154b4db3f2960d90d46f0de6ddc07"
- integrity sha512-JUla9NORFW8Mti/WnNQ8WnhQGBUJAh7OQDJNSbRuaUhbnu2Jm4WUtvPknpfQSenE+RBT1VWrWd6X9pOvYCxxiA==
+"@abp/prismjs@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.3.tgz#8927f1660815f4e3de11085ea5f3a73b127a858a"
+ integrity sha512-JJ/wlLlWShGYj0FMFjxriCIA4v1Fe+oHTgo1Kt9JpYkYG+Zq+rHsj1tvNthh2GU7Y69Kt2w1r1LpEDKZZHu58A==
dependencies:
- "@abp/clipboard" "~8.2.1"
- "@abp/core" "~8.2.1"
+ "@abp/clipboard" "~8.2.3"
+ "@abp/core" "~8.2.3"
prismjs "^1.26.0"
-"@abp/select2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.1.tgz#6055b318e34d1f9ee3efbaeb15193dfeb194bd17"
- integrity sha512-z0UW7i0im+AdnFJnqf2xaUyzXnXZXVxb8RVHxvMwtaK3XBPa1XD9u0PyD01cq0ZIkbL/R/XMAqpUNQVN9pDf0g==
+"@abp/select2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.3.tgz#fc92d19ba22cbef5df9b8b2f85b4d21d3139883f"
+ integrity sha512-/MEJkSuM5+N5OIBLbrQUARUV++NpH9pVq4+btYhghDQDtHYrMHKU41QsginTFKfqBZ4f+OYV/HPnOuj7DJxOBw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
select2 "^4.0.13"
-"@abp/sweetalert2@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.1.tgz#d5e46858de35d8aa33f95186ca67ac568b2f90d8"
- integrity sha512-Nhj99KeqC2zNKOoTG549un1vjvU8u7SFyHkdIfQKGLrVhHtoagCMUyMcPBud4FP69VcOhpXbvy+DLdEg3ctnHQ==
+"@abp/sweetalert2@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.3.tgz#a82d674e262e9db89bc219ac350cae8ef17d7669"
+ integrity sha512-ap8vOgkKbmhAmDfVmEJPyVbIzA3V3mi9SvP/OLaNYEaMG0AppYf3iiSvC+6TA+qAFQuF5fI1oKUcsiE68uQGjw==
dependencies:
- "@abp/core" "~8.2.1"
+ "@abp/core" "~8.2.3"
sweetalert2 "^11.3.6"
-"@abp/timeago@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.1.tgz#aceee504977ecabe939610efd1237366ac67caa1"
- integrity sha512-GRgziW0E9T64pHfqbCyvyfWLtp8JXlufTEnJJ6XMBWVHq+6Zkt2xmOqBPna13nWpsYATL3PQwazkzbqVdSrQfg==
+"@abp/timeago@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.3.tgz#dede68da0b5e252a573b0a1c5a9e4c831bc3c820"
+ integrity sha512-AbYf35a5M4QMAFK3aV6JE7QHR3GzpOX1zsun39i+97ZrNZf6do/eIgDx6dolTlSb0AsHf8qCrf7T6o1kIaXQ2w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
timeago "^1.6.7"
-"@abp/toastr@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.1.tgz#ecb0df1412bb9bd81d733d8575eaed4fe2f2c063"
- integrity sha512-7/nox+supVdil0EUFRmBpl3PGdygCaLg2XjMQqc+UpsE/5+6KyS+QhIt+ntS22NYxWdmdjmyBuG/3SnvkjY4Zw==
+"@abp/toastr@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.3.tgz#77767666d578c05f039e84178c428370f6f10802"
+ integrity sha512-V1H0Efik/kGsRuTNPl//FsoH/8VU58S1K4GQ9k2V1bi8INaC/kU//I9frwOJsXd55imvsbmzh4XzrJ574eU84w==
dependencies:
- "@abp/jquery" "~8.2.1"
+ "@abp/jquery" "~8.2.3"
toastr "^2.1.4"
-"@abp/utils@~8.2.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.1.tgz#d96139a5c0f616c285886f24efa5de0c35ac8cf1"
- integrity sha512-/xZqOyH8LJ8xPZ2+F24iI4calcgMD8QPGf3iIOhlnv85jkXKXbCDyBYElyPhJ6baaEAkx0rrAMn2ud8J5dzeiQ==
+"@abp/utils@~8.2.3":
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.3.tgz#05e3d419ee9a6228f7ed4f86e8fd03f3ce57ed27"
+ integrity sha512-WMs/okBxGitkGRdsikByyJLFXRSD/DPfBWZdDhU4+TvcQmnTqog9S75kZ8CUpUe/wwDHYsY51ef6N6jOfkGTFQ==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json
index 15df3ae702..e46f6f929a 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Admin.Application.Contracts",
- "hash": "100fbf697289f27c22d70a1f4eb45b5a",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.Admin",
diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json
index 2ceac5605f..777b36a3d0 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Admin.Application",
- "hash": "9f9f4df9fb9f426b7c115abc968b99d1",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.Admin",
@@ -146,6 +146,7 @@
"methods": [
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -162,6 +163,7 @@
},
{
"returnType": "ProjectDto",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -178,6 +180,7 @@
},
{
"returnType": "ProjectDto",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -194,6 +197,7 @@
},
{
"returnType": "ProjectDto",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -215,6 +219,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -231,6 +236,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "ReindexAsync",
"summary": null,
"isAsync": true,
@@ -247,6 +253,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "ReindexAllAsync",
"summary": null,
"isAsync": true,
@@ -257,6 +264,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Admin.Projects",
"name": "GetListWithoutDetailsAsync",
"summary": null,
"isAsync": true,
@@ -337,6 +345,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "ClearCacheAsync",
"summary": null,
"isAsync": true,
@@ -353,6 +362,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "PullAllAsync",
"summary": null,
"isAsync": true,
@@ -369,6 +379,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "PullAsync",
"summary": null,
"isAsync": true,
@@ -385,6 +396,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "GetAllAsync",
"summary": null,
"isAsync": true,
@@ -401,6 +413,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "RemoveFromCacheAsync",
"summary": null,
"isAsync": true,
@@ -417,6 +430,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "ReindexAsync",
"summary": null,
"isAsync": true,
@@ -433,6 +447,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Admin.Documents",
"name": "GetFilterItemsAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json
index a516cd090d..0a847b9638 100644
--- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Admin.HttpApi.Client",
- "hash": "76183fefaf0abfaa267c1d6e05a08b82",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.Admin",
diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json
index a8db7612a7..9e75458cb8 100644
--- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Admin.HttpApi",
- "hash": "6661b70996cefd1caa9f3072d98aeab3",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.Admin",
@@ -63,6 +63,269 @@
"contentType": "abpModule",
"name": "DocsAdminHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/docs/admin/documents/ClearCache",
+ "method": "POST",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "ClearCacheInput"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/PullAll",
+ "method": "POST",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "PullAllDocumentInput"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/Pull",
+ "method": "POST",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "PullDocumentInput"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/GetAll",
+ "method": "GET",
+ "groupName": "DocumentsAdmin",
+ "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Documents.DocumentDto]",
+ "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"projectName\": \"string\",\r\n \"name\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"fileName\": \"string\",\r\n \"format\": \"string\",\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"lastUpdatedTime\": \"0001-01-01T00:00:00\",\r\n \"lastSignificantUpdateTime\": null,\r\n \"lastCachedTime\": \"0001-01-01T00:00:00\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Nullable"
+ },
+ {
+ "name": "Name",
+ "type": "String"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ },
+ {
+ "name": "FileName",
+ "type": "String"
+ },
+ {
+ "name": "Format",
+ "type": "String"
+ },
+ {
+ "name": "CreationTimeMin",
+ "type": "Nullable"
+ },
+ {
+ "name": "CreationTimeMax",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastUpdatedTimeMin",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastUpdatedTimeMax",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastSignificantUpdateTimeMin",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastSignificantUpdateTimeMax",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastCachedTimeMin",
+ "type": "Nullable"
+ },
+ {
+ "name": "LastCachedTimeMax",
+ "type": "Nullable"
+ },
+ {
+ "name": "Sorting",
+ "type": "String"
+ },
+ {
+ "name": "SkipCount",
+ "type": "Int32"
+ },
+ {
+ "name": "MaxResultCount",
+ "type": "Int32"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/RemoveDocumentFromCache",
+ "method": "PUT",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "documentId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/ReindexDocument",
+ "method": "PUT",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "documentId",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/documents/GetFilterItems",
+ "method": "GET",
+ "groupName": "DocumentsAdmin",
+ "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Documents.DocumentInfoDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"version\": \"string\",\r\n \"format\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/docs/admin/projects",
+ "method": "GET",
+ "groupName": "ProjectsAdmin",
+ "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Projects.ProjectDto]",
+ "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"parametersDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "Sorting",
+ "type": "String"
+ },
+ {
+ "name": "SkipCount",
+ "type": "Int32"
+ },
+ {
+ "name": "MaxResultCount",
+ "type": "Int32"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/projects/{id}",
+ "method": "GET",
+ "groupName": "ProjectsAdmin",
+ "responseType": "Volo.Docs.Admin.Projects.ProjectDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"parametersDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/projects",
+ "method": "POST",
+ "groupName": "ProjectsAdmin",
+ "responseType": "Volo.Docs.Admin.Projects.ProjectDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"parametersDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "CreateProjectDto"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/projects/{id}",
+ "method": "PUT",
+ "groupName": "ProjectsAdmin",
+ "responseType": "Volo.Docs.Admin.Projects.ProjectDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"parametersDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ },
+ {
+ "name": "input",
+ "type": "UpdateProjectDto"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/projects",
+ "method": "DELETE",
+ "groupName": "ProjectsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "id",
+ "type": "Guid"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/admin/projects/ReindexAll",
+ "method": "POST",
+ "groupName": "ProjectsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/docs/admin/projects/GetListProjectWithoutDetailsAsync",
+ "method": "GET",
+ "groupName": "ProjectsAdmin",
+ "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Projects.ProjectWithoutDetailsDto]",
+ "responseTypeAsJson": "[\r\n {\r\n \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n \"name\": \"string\"\r\n }\r\n]",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/docs/admin/projects/Reindex",
+ "method": "POST",
+ "groupName": "ProjectsAdmin",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "ReindexInput"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json
index 0cd4f5a31e..d186a8cb22 100644
--- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Admin.Web",
- "hash": "46beda5e0ea0eec3abd53bd83b1ab711",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.Admin",
@@ -63,6 +63,36 @@
"contentType": "abpModule",
"name": "DocsAdminWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects",
+ "contentType": "webPage",
+ "name": "CreateModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects",
+ "contentType": "webPage",
+ "name": "EditModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects",
+ "contentType": "webPage",
+ "name": "PullModel",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Documents",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json
index 913486993a..72118d01a8 100644
--- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Application.Contracts",
- "hash": "77681b4bcac4f8661cfb9320e5a88586",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
diff --git a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json
index 62d9f908e0..86f06c124b 100644
--- a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Application",
- "hash": "3ceeb88026645c5e1f479c66635735e1",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
@@ -146,6 +146,7 @@
"methods": [
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Docs.Projects",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -156,6 +157,7 @@
},
{
"returnType": "ProjectDto",
+ "namespace": "Volo.Docs.Projects",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -172,6 +174,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Docs.Projects",
"name": "GetVersionsAsync",
"summary": null,
"isAsync": true,
@@ -188,6 +191,7 @@
},
{
"returnType": "LanguageConfig",
+ "namespace": "Volo.Docs.Projects",
"name": "GetLanguageListAsync",
"summary": null,
"isAsync": true,
@@ -209,6 +213,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Docs.Projects",
"name": "GetDefaultLanguageCodeAsync",
"summary": null,
"isAsync": true,
@@ -300,6 +305,7 @@
"methods": [
{
"returnType": "DocumentWithDetailsDto",
+ "namespace": "Volo.Docs.Documents",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -316,6 +322,7 @@
},
{
"returnType": "DocumentWithDetailsDto",
+ "namespace": "Volo.Docs.Documents",
"name": "GetDefaultAsync",
"summary": null,
"isAsync": true,
@@ -332,6 +339,7 @@
},
{
"returnType": "NavigationNode",
+ "namespace": "Volo.Docs.Documents",
"name": "GetNavigationAsync",
"summary": null,
"isAsync": true,
@@ -348,6 +356,7 @@
},
{
"returnType": "DocumentResourceDto",
+ "namespace": "Volo.Docs.Documents",
"name": "GetResourceAsync",
"summary": null,
"isAsync": true,
@@ -363,7 +372,8 @@
]
},
{
- "returnType": "List",
+ "returnType": "PagedResultDto",
+ "namespace": "Volo.Docs.Documents",
"name": "SearchAsync",
"summary": null,
"isAsync": true,
@@ -380,6 +390,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Docs.Documents",
"name": "FullSearchEnabledAsync",
"summary": null,
"isAsync": true,
@@ -390,6 +401,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetUrlsAsync",
"summary": null,
"isAsync": true,
@@ -406,6 +418,7 @@
},
{
"returnType": "DocumentParametersDto",
+ "namespace": "Volo.Docs.Documents",
"name": "GetParametersAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json
index 99859ba391..f25d8b5f85 100644
--- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Domain.Shared",
- "hash": "cde21886d0014f55d0917549fc979627",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json
index 27b92c495b..8056222fb4 100644
--- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Domain",
- "hash": "5b3b84e3cbb3954883258e6ceb4c6f98",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
@@ -157,6 +157,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Projects",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -173,6 +174,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Projects",
"name": "SetFormat",
"summary": null,
"isAsync": false,
@@ -189,6 +191,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Projects",
"name": "SetNavigationDocumentName",
"summary": null,
"isAsync": false,
@@ -205,6 +208,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Projects",
"name": "SetParametersDocumentName",
"summary": null,
"isAsync": false,
@@ -221,6 +225,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Projects",
"name": "SetDefaultDocumentName",
"summary": null,
"isAsync": false,
@@ -350,6 +355,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents",
"name": "AddContributor",
"summary": null,
"isAsync": false,
@@ -381,6 +387,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents",
"name": "RemoveAllContributors",
"summary": null,
"isAsync": false,
@@ -391,6 +398,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents",
"name": "RemoveContributor",
"summary": null,
"isAsync": false,
@@ -417,6 +425,7 @@
},
{
"returnType": "DocumentContributor",
+ "namespace": "Volo.Docs.Documents",
"name": "FindContributor",
"summary": null,
"isAsync": false,
@@ -550,6 +559,7 @@
"methods": [
{
"returnType": "Document",
+ "namespace": "Volo.Docs.GitHub.Documents",
"name": "GetDocumentAsync",
"summary": null,
"isAsync": true,
@@ -586,6 +596,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.GitHub.Documents",
"name": "GetVersionsAsync",
"summary": null,
"isAsync": true,
@@ -602,6 +613,7 @@
},
{
"returnType": "DocumentResource",
+ "namespace": "Volo.Docs.GitHub.Documents",
"name": "GetResource",
"summary": null,
"isAsync": true,
@@ -633,6 +645,7 @@
},
{
"returnType": "LanguageConfig",
+ "namespace": "Volo.Docs.GitHub.Documents",
"name": "GetLanguageListAsync",
"summary": null,
"isAsync": true,
@@ -688,6 +701,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.Docs.GitHub.Documents",
"name": "HasPatchSignificantChanges",
"summary": null,
"isAsync": false,
@@ -738,6 +752,7 @@
"methods": [
{
"returnType": "Document",
+ "namespace": "Volo.Docs.FileSystem.Documents",
"name": "GetDocumentAsync",
"summary": null,
"isAsync": true,
@@ -774,6 +789,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.FileSystem.Documents",
"name": "GetVersionsAsync",
"summary": null,
"isAsync": true,
@@ -790,6 +806,7 @@
},
{
"returnType": "LanguageConfig",
+ "namespace": "Volo.Docs.FileSystem.Documents",
"name": "GetLanguageListAsync",
"summary": null,
"isAsync": true,
@@ -811,6 +828,7 @@
},
{
"returnType": "DocumentResource",
+ "namespace": "Volo.Docs.FileSystem.Documents",
"name": "GetResource",
"summary": null,
"isAsync": true,
@@ -876,6 +894,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "CreateIndexIfNeededAsync",
"summary": null,
"isAsync": true,
@@ -892,6 +911,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "AddOrUpdateAsync",
"summary": null,
"isAsync": true,
@@ -913,6 +933,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "AddOrUpdateManyAsync",
"summary": null,
"isAsync": true,
@@ -934,6 +955,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -955,6 +977,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "DeleteAllAsync",
"summary": null,
"isAsync": true,
@@ -971,6 +994,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "DeleteAllByProjectIdAsync",
"summary": null,
"isAsync": true,
@@ -991,7 +1015,8 @@
]
},
{
- "returnType": "List",
+ "returnType": "EsDocumentResult",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "SearchAsync",
"summary": null,
"isAsync": true,
@@ -1038,6 +1063,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents.FullSearch.Elastic",
"name": "ValidateElasticSearchEnabled",
"summary": null,
"isAsync": false,
@@ -1116,6 +1142,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Docs.Projects",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1147,6 +1174,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Projects",
"name": "GetListWithoutDetailsAsync",
"summary": null,
"isAsync": true,
@@ -1163,6 +1191,7 @@
},
{
"returnType": "Project",
+ "namespace": "Volo.Docs.Projects",
"name": "GetByShortNameAsync",
"summary": null,
"isAsync": true,
@@ -1184,6 +1213,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Docs.Projects",
"name": "ShortNameExistsAsync",
"summary": null,
"isAsync": true,
@@ -1241,6 +1271,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetListWithoutDetailsByProjectId",
"summary": null,
"isAsync": true,
@@ -1262,6 +1293,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetUniqueListDocumentInfoAsync",
"summary": null,
"isAsync": true,
@@ -1278,6 +1310,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetListByProjectId",
"summary": null,
"isAsync": true,
@@ -1297,8 +1330,36 @@
}
]
},
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Docs.Documents",
+ "name": "UpdateProjectLastCachedTimeAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "projectId",
+ "isOptional": false
+ },
+ {
+ "type": "DateTime",
+ "name": "cachedTime",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ },
{
"returnType": "Document",
+ "namespace": "Volo.Docs.Documents",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -1340,6 +1401,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Docs.Documents",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -1381,6 +1443,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -1412,6 +1475,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Docs.Documents",
"name": "GetAllAsync",
"summary": null,
"isAsync": true,
@@ -1513,6 +1577,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Docs.Documents",
"name": "GetAllCountAsync",
"summary": null,
"isAsync": true,
@@ -1614,6 +1679,7 @@
},
{
"returnType": "Document",
+ "namespace": "Volo.Docs.Documents",
"name": "GetAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json
index 1ee0fd3a6e..0f74f96d32 100644
--- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.EntityFrameworkCore",
- "hash": "cda98b30d45c0f9999f98a05e8368841",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.EntityFrameworkCore",
@@ -67,27 +67,27 @@
{
"namespace": "Volo.Docs.EntityFrameworkCore",
"connectionStringName": "Docs",
- "databaseTables": [
- {
- "entityFullName": "Volo.Docs.Documents.Document",
- "contentType": "databaseTable",
- "name": "DocsDocuments",
- "summary": null
- },
- {
- "entityFullName": "Volo.Docs.Documents.DocumentContributor",
- "contentType": "databaseTable",
- "name": "DocsDocumentContributors",
- "summary": null
- },
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
{
- "entityFullName": "Volo.Docs.Projects.Project",
- "contentType": "databaseTable",
- "name": "DocsProjects",
- "summary": null
+ "returnType": "Void",
+ "namespace": "Volo.Docs.EntityFrameworkCore",
+ "name": "ConfigureDocs",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
}
],
- "replacedDbContexts": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json
index 7f356ba232..8f97c28e30 100644
--- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.HttpApi.Client",
- "hash": "551e49e8d7abd9c47376edaae70ab7f8",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json
index c9a125a359..468436f828 100644
--- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.HttpApi",
- "hash": "26ffc9a7630f4d5dddf4eea1ac4c51cc",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
@@ -63,6 +63,228 @@
"contentType": "abpModule",
"name": "DocsHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/docs/projects",
+ "method": "GET",
+ "groupName": "DocsProject",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.ProjectDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/docs/projects/{shortName}",
+ "method": "GET",
+ "groupName": "DocsProject",
+ "responseType": "Volo.Docs.Projects.ProjectDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "shortName",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/projects/{shortName}/defaultLanguage",
+ "method": "GET",
+ "groupName": "DocsProject",
+ "responseType": "System.String",
+ "responseTypeAsJson": "\"string\"",
+ "parameterDescriptions": [
+ {
+ "name": "shortName",
+ "type": "String"
+ },
+ {
+ "name": "version",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/projects/{shortName}/versions",
+ "method": "GET",
+ "groupName": "DocsProject",
+ "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.VersionInfoDto]",
+ "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"name\": \"string\"\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "shortName",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/projects/{shortName}/{version}/languageList",
+ "method": "GET",
+ "groupName": "DocsProject",
+ "responseType": "Volo.Docs.Documents.LanguageConfig",
+ "responseTypeAsJson": "{\r\n \"languages\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"code\": \"string\",\r\n \"isDefault\": false\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "shortName",
+ "type": "String"
+ },
+ {
+ "name": "version",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"fileName\": \"string\",\r\n \"content\": \"string\",\r\n \"format\": \"string\",\r\n \"editLink\": \"string\",\r\n \"rootUrl\": \"string\",\r\n \"rawRootUrl\": \"string\",\r\n \"localDirectory\": \"string\",\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"lastUpdatedTime\": \"0001-01-01T00:00:00\",\r\n \"lastCachedTime\": \"0001-01-01T00:00:00\",\r\n \"project\": {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"contributors\": [\r\n {\r\n \"username\": \"string\",\r\n \"userProfileUrl\": \"string\",\r\n \"avatarUrl\": \"string\",\r\n \"commitCount\": 0\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Name",
+ "type": "String"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/default",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto",
+ "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"fileName\": \"string\",\r\n \"content\": \"string\",\r\n \"format\": \"string\",\r\n \"editLink\": \"string\",\r\n \"rootUrl\": \"string\",\r\n \"rawRootUrl\": \"string\",\r\n \"localDirectory\": \"string\",\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"lastUpdatedTime\": \"0001-01-01T00:00:00\",\r\n \"lastCachedTime\": \"0001-01-01T00:00:00\",\r\n \"project\": {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"format\": \"string\",\r\n \"defaultDocumentName\": \"string\",\r\n \"navigationDocumentName\": \"string\",\r\n \"minimumVersion\": \"string\",\r\n \"mainWebsiteUrl\": \"string\",\r\n \"latestVersionBranchName\": \"string\",\r\n \"documentStoreType\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"contributors\": [\r\n {\r\n \"username\": \"string\",\r\n \"userProfileUrl\": \"string\",\r\n \"avatarUrl\": \"string\",\r\n \"commitCount\": 0\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/navigation",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Docs.Documents.NavigationNode",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/resource",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Docs.Documents.DocumentResourceDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Name",
+ "type": "String"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/search",
+ "method": "POST",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Documents.DocumentSearchOutput]",
+ "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"fileName\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"highlight\": [\r\n \"string\"\r\n ]\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "input",
+ "type": "DocumentSearchInput"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/full-search-enabled",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "System.Boolean",
+ "responseTypeAsJson": "true",
+ "parameterDescriptions": []
+ },
+ {
+ "path": "api/docs/documents/links",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "System.Collections.Generic.List`1[System.String]",
+ "responseTypeAsJson": "[\r\n \"string\"\r\n]",
+ "parameterDescriptions": [
+ {
+ "name": "prefix",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/docs/documents/parameters",
+ "method": "GET",
+ "groupName": "DocsDocument",
+ "responseType": "Volo.Docs.Documents.DocumentParametersDto",
+ "responseTypeAsJson": "{\r\n \"parameters\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"values\": {\r\n \"string\": \"string\"\r\n }\r\n }\r\n ]\r\n}",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json
index 287cbacf5b..e6dde9a37b 100644
--- a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.MongoDB",
- "hash": "010d09056500caecfaeb5cbb7f049f0a",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs.MongoDB",
@@ -69,15 +69,15 @@
"connectionStringName": "Docs",
"databaseCollections": [
{
- "entityFullName": "Volo.Docs.Documents.Document",
+ "entityFullName": "Volo.Docs.Projects.Project",
"contentType": "databaseCollection",
- "name": "DocsDocumentS",
+ "name": "Projects",
"summary": null
},
{
- "entityFullName": "Volo.Docs.Projects.Project",
+ "entityFullName": "Volo.Docs.Documents.Document",
"contentType": "databaseCollection",
- "name": "DocsProjects",
+ "name": "Documents",
"summary": null
}
],
diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json
index 8577f013a9..e05caa0b3c 100644
--- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json
+++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Docs.Web",
- "hash": "6de1a5d8b7e07b55bd1fc1f98dad11d0",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Docs",
@@ -83,6 +83,44 @@
"contentType": "abpModule",
"name": "DocsWebModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "document-resources",
+ "method": "GET",
+ "groupName": "DocumentResource",
+ "responseType": "Volo.Abp.Http.RemoteServiceErrorResponse",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "ProjectId",
+ "type": "Guid"
+ },
+ {
+ "name": "Name",
+ "type": "String"
+ },
+ {
+ "name": "Version",
+ "type": "String"
+ },
+ {
+ "name": "LanguageCode",
+ "type": "String"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Docs.Pages.Documents.Project",
+ "contentType": "webPage",
+ "name": "IndexModel",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json
index 16b9522c12..fe7a26b081 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.Application.Contracts",
- "hash": "a098bfbfeedbc75302632b819fbdd62c",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
@@ -75,7 +75,7 @@
"summary": null
},
{
- "displayName": "Manage Host features",
+ "displayName": "Manage host features",
"isEnabled": true,
"contentType": "permission",
"name": "FeatureManagement.ManageHostFeatures",
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json
index af78f2dc02..96e583a191 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.Application",
- "hash": "a9ca2b4f663694fa5d258984dc689f56",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
@@ -136,6 +136,7 @@
"methods": [
{
"returnType": "GetFeatureListResultDto",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -157,6 +158,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -183,6 +185,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json
new file mode 100644
index 0000000000..1b85033b80
--- /dev/null
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json
@@ -0,0 +1,68 @@
+{
+ "name": "Volo.Abp.FeatureManagement.Blazor.Server",
+ "hash": "",
+ "contents": [
+ {
+ "namespace": "Volo.Abp.FeatureManagement.Blazor.Server",
+ "dependsOnModules": [
+ {
+ "declaringAssemblyName": "Volo.Abp.FeatureManagement.Blazor",
+ "namespace": "Volo.Abp.FeatureManagement.Blazor",
+ "name": "AbpFeatureManagementBlazorModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Server.Theming",
+ "namespace": "Volo.Abp.AspNetCore.Components.Server.Theming",
+ "name": "AbpAspNetCoreComponentsServerThemingModule"
+ }
+ ],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
+ "contentType": "abpModule",
+ "name": "AbpFeatureManagementBlazorServerModule",
+ "summary": null
+ }
+ ]
+}
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json
new file mode 100644
index 0000000000..1332348464
--- /dev/null
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json
@@ -0,0 +1,90 @@
+{
+ "name": "Volo.Abp.FeatureManagement.Blazor",
+ "hash": "",
+ "contents": [
+ {
+ "namespace": "Volo.Abp.FeatureManagement.Blazor",
+ "dependsOnModules": [
+ {
+ "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming",
+ "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming",
+ "name": "AbpAspNetCoreComponentsWebThemingModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application.Contracts",
+ "namespace": "Volo.Abp.FeatureManagement",
+ "name": "AbpFeatureManagementApplicationContractsModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.Features",
+ "namespace": "Volo.Abp.Features",
+ "name": "AbpFeaturesModule"
+ },
+ {
+ "declaringAssemblyName": "Volo.Abp.SettingManagement.Blazor",
+ "namespace": "Volo.Abp.SettingManagement.Blazor",
+ "name": "AbpSettingManagementBlazorModule"
+ }
+ ],
+ "implementingInterfaces": [
+ {
+ "name": "IAbpModule",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IAbpModule"
+ },
+ {
+ "name": "IOnPreApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationInitialization",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationInitialization"
+ },
+ {
+ "name": "IOnPostApplicationInitialization",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization"
+ },
+ {
+ "name": "IOnApplicationShutdown",
+ "namespace": "Volo.Abp",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.IOnApplicationShutdown"
+ },
+ {
+ "name": "IPreConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPreConfigureServices"
+ },
+ {
+ "name": "IPostConfigureServices",
+ "namespace": "Volo.Abp.Modularity",
+ "declaringAssemblyName": "Volo.Abp.Core",
+ "fullName": "Volo.Abp.Modularity.IPostConfigureServices"
+ }
+ ],
+ "contentType": "abpModule",
+ "name": "AbpFeatureManagementBlazorModule",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.FeatureManagement.Blazor.Components",
+ "contentType": "webPage",
+ "name": "FeatureManagementModal",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.FeatureManagement.Blazor.Components.FeatureSettingGroup",
+ "contentType": "webPage",
+ "name": "FeatureSettingManagementComponent",
+ "summary": null
+ }
+ ]
+}
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json
index a383a8f2d2..441f9df896 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.Domain.Shared",
- "hash": "7cf1adab77763451880c93c2ce5de54d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json
index e45b038fb4..3c2abaac23 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.Domain",
- "hash": "7dc58fbace956cd5b28d943e0568d553",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
@@ -117,6 +117,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "HasSameData",
"summary": null,
"isAsync": false,
@@ -133,6 +134,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "Patch",
"summary": null,
"isAsync": false,
@@ -153,11 +155,6 @@
"namespace": "Volo.Abp.FeatureManagement",
"primaryKeyType": "Guid",
"properties": [
- {
- "type": "System.Guid",
- "name": "Id",
- "summary": null
- },
{
"type": "System.String",
"name": "GroupName",
@@ -266,6 +263,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "HasSameData",
"summary": null,
"isAsync": false,
@@ -282,6 +280,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "Patch",
"summary": null,
"isAsync": false,
@@ -302,11 +301,6 @@
"namespace": "Volo.Abp.FeatureManagement",
"primaryKeyType": "Guid",
"properties": [
- {
- "type": "System.Guid",
- "name": "Id",
- "summary": null
- },
{
"type": "System.String",
"name": "Name",
@@ -436,6 +430,7 @@
"methods": [
{
"returnType": "FeatureDefinitionRecord",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "FindByNameAsync",
"summary": null,
"isAsync": true,
@@ -552,6 +547,7 @@
"methods": [
{
"returnType": "FeatureValue",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -583,6 +579,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "FindAllAsync",
"summary": null,
"isAsync": true,
@@ -614,6 +611,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -640,6 +638,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json
index 5374e87d7b..3626acafcb 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.EntityFrameworkCore",
- "hash": "d23d13b3c72c26ef41eb0070ab00ac34",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore",
@@ -67,27 +67,27 @@
{
"namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore",
"connectionStringName": "AbpFeatureManagement",
- "databaseTables": [
- {
- "entityFullName": "Volo.Abp.FeatureManagement.FeatureDefinitionRecord",
- "contentType": "databaseTable",
- "name": "AbpFeatures",
- "summary": null
- },
- {
- "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord",
- "contentType": "databaseTable",
- "name": "AbpFeatureGroups",
- "summary": null
- },
+ "databaseTables": [],
+ "replacedDbContexts": [],
+ "modelBuilderExtensionMethods": [
{
- "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue",
- "contentType": "databaseTable",
- "name": "AbpFeatureValues",
- "summary": null
+ "returnType": "Void",
+ "namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore",
+ "name": "ConfigureFeatureManagement",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": true,
+ "parameters": [
+ {
+ "type": "ModelBuilder",
+ "name": "builder",
+ "isOptional": false
+ }
+ ]
}
],
- "replacedDbContexts": [],
"implementingInterfaces": [
{
"name": "IInfrastructure",
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json
index cdacabfb3a..ce50d5b83a 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.HttpApi.Client",
- "hash": "f2c557d60cc7414ca67a85fd5295870d",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json
index 12fa8fd972..5f25516d3b 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.HttpApi",
- "hash": "eaa44cd23162ceaf3ec1f00798ef4dd5",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
@@ -63,6 +63,68 @@
"contentType": "abpModule",
"name": "AbpFeatureManagementHttpApiModule",
"summary": null
+ },
+ {
+ "apis": [
+ {
+ "path": "api/feature-management/features",
+ "method": "GET",
+ "groupName": "Features",
+ "responseType": "Volo.Abp.FeatureManagement.GetFeatureListResultDto",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "providerName",
+ "type": "String"
+ },
+ {
+ "name": "providerKey",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "path": "api/feature-management/features",
+ "method": "PUT",
+ "groupName": "Features",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "providerName",
+ "type": "String"
+ },
+ {
+ "name": "providerKey",
+ "type": "String"
+ },
+ {
+ "name": "input",
+ "type": "UpdateFeaturesDto"
+ }
+ ]
+ },
+ {
+ "path": "api/feature-management/features",
+ "method": "DELETE",
+ "groupName": "Features",
+ "responseType": "System.Void",
+ "responseTypeAsJson": "",
+ "parameterDescriptions": [
+ {
+ "name": "providerName",
+ "type": "String"
+ },
+ {
+ "name": "providerKey",
+ "type": "String"
+ }
+ ]
+ }
+ ],
+ "contentType": "httpApi",
+ "name": "Defined Http Apis",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json
index cec46992d3..db589c9c51 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.MongoDB",
- "hash": "1287dca2b75f3753abc23921cc0263b4",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement.MongoDB",
@@ -69,21 +69,21 @@
"connectionStringName": "AbpFeatureManagement",
"databaseCollections": [
{
- "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue",
+ "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord",
"contentType": "databaseCollection",
- "name": "AbpFeatureValues",
+ "name": "FeatureGroups",
"summary": null
},
{
"entityFullName": "Volo.Abp.FeatureManagement.FeatureDefinitionRecord",
"contentType": "databaseCollection",
- "name": "AbpFeatures",
+ "name": "Features",
"summary": null
},
{
- "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord",
+ "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue",
"contentType": "databaseCollection",
- "name": "AbpFeatureGroups",
+ "name": "FeatureValues",
"summary": null
}
],
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json
index 53d44b8f79..905cfe0387 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json
@@ -1,6 +1,6 @@
{
"name": "Volo.Abp.FeatureManagement.Web",
- "hash": "448e16aaf1a76101ee1902adbe650fb1",
+ "hash": "",
"contents": [
{
"namespace": "Volo.Abp.FeatureManagement",
@@ -68,6 +68,12 @@
"contentType": "abpModule",
"name": "AbpFeatureManagementWebModule",
"summary": null
+ },
+ {
+ "namespace": "Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement",
+ "contentType": "webPage",
+ "name": "FeatureManagementModal",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json
index 6f323d4671..ed9bd2c045 100644
--- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json
+++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json
@@ -130,6 +130,13 @@
"name": "AbpIdentity.Users.Update",
"summary": null
},
+ {
+ "displayName": "Manage roles",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.Update.ManageRoles",
+ "summary": null
+ },
{
"displayName": "Delete",
"isEnabled": true,
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json
index 603d2d9faf..51d711b151 100644
--- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json
+++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json
@@ -183,6 +183,7 @@
"methods": [
{
"returnType": "IdentityRoleDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -199,6 +200,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetAllListAsync",
"summary": null,
"isAsync": true,
@@ -209,6 +211,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -225,6 +228,7 @@
},
{
"returnType": "IdentityRoleDto",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -241,6 +245,7 @@
},
{
"returnType": "IdentityRoleDto",
+ "namespace": "Volo.Abp.Identity",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -262,6 +267,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -390,6 +396,7 @@
"methods": [
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetAsync",
"summary": null,
"isAsync": true,
@@ -406,6 +413,7 @@
},
{
"returnType": "PagedResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -422,6 +430,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetRolesAsync",
"summary": null,
"isAsync": true,
@@ -438,6 +447,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "GetAssignableRolesAsync",
"summary": null,
"isAsync": true,
@@ -448,6 +458,7 @@
},
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -464,6 +475,7 @@
},
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Identity",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -485,6 +497,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -501,6 +514,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "UpdateRolesAsync",
"summary": null,
"isAsync": true,
@@ -522,6 +536,7 @@
},
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Identity",
"name": "FindByUsernameAsync",
"summary": null,
"isAsync": true,
@@ -538,6 +553,7 @@
},
{
"returnType": "IdentityUserDto",
+ "namespace": "Volo.Abp.Identity",
"name": "FindByEmailAsync",
"summary": null,
"isAsync": true,
@@ -624,6 +640,7 @@
"methods": [
{
"returnType": "UserData",
+ "namespace": "Volo.Abp.Identity",
"name": "FindByIdAsync",
"summary": null,
"isAsync": true,
@@ -640,6 +657,7 @@
},
{
"returnType": "UserData",
+ "namespace": "Volo.Abp.Identity",
"name": "FindByUserNameAsync",
"summary": null,
"isAsync": true,
@@ -656,6 +674,7 @@
},
{
"returnType": "ListResultDto",
+ "namespace": "Volo.Abp.Identity",
"name": "SearchAsync",
"summary": null,
"isAsync": true,
@@ -672,6 +691,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Abp.Identity",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -758,6 +778,7 @@
"methods": [
{
"returnType": "String[]",
+ "namespace": "Volo.Abp.Identity.Integration",
"name": "GetRoleNamesAsync",
"summary": null,
"isAsync": true,
@@ -771,6 +792,74 @@
"isOptional": false
}
]
+ },
+ {
+ "returnType": "UserData",
+ "namespace": "Volo.Abp.Identity.Integration",
+ "name": "FindByIdAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "id",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "UserData",
+ "namespace": "Volo.Abp.Identity.Integration",
+ "name": "FindByUserNameAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "userName",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "ListResultDto",
+ "namespace": "Volo.Abp.Identity.Integration",
+ "name": "SearchAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "UserLookupSearchInputDto",
+ "name": "input",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Int64",
+ "namespace": "Volo.Abp.Identity.Integration",
+ "name": "GetCountAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "UserLookupCountInputDto",
+ "name": "input",
+ "isOptional": false
+ }
+ ]
}
],
"contentType": "applicationService",
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs
index 13c79029fa..e6563727bc 100644
--- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs
@@ -77,7 +77,10 @@ public class IdentityRoleAppService : IdentityAppServiceBase, IIdentityRoleAppSe
role.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
- (await RoleManager.SetRoleNameAsync(role, input.Name)).CheckErrors();
+ if (role.Name != input.Name)
+ {
+ (await RoleManager.SetRoleNameAsync(role, input.Name)).CheckErrors();
+ }
role.IsDefault = input.IsDefault;
role.IsPublic = input.IsPublic;
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json
index 9873e72b5f..1304d00eed 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json
@@ -296,6 +296,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetName",
"summary": null,
"isAsync": false,
@@ -492,6 +493,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddClaim",
"summary": null,
"isAsync": false,
@@ -513,6 +515,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddClaims",
"summary": null,
"isAsync": false,
@@ -534,6 +537,7 @@
},
{
"returnType": "IdentityRoleClaim",
+ "namespace": "Volo.Abp.Identity",
"name": "FindClaim",
"summary": null,
"isAsync": false,
@@ -550,6 +554,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveClaim",
"summary": null,
"isAsync": false,
@@ -566,6 +571,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "ChangeName",
"summary": null,
"isAsync": false,
@@ -582,6 +588,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "ToString",
"summary": null,
"isAsync": false,
@@ -776,6 +783,170 @@
"name": "IdentitySecurityLog",
"summary": null
},
+ {
+ "baseClass": {
+ "name": "BasicAggregateRoot",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot"
+ },
+ "implementingInterfaces": [
+ {
+ "name": "IEntity",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
+ },
+ {
+ "name": "IEntity",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IEntity"
+ },
+ {
+ "name": "IAggregateRoot",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
+ },
+ {
+ "name": "IAggregateRoot",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot"
+ },
+ {
+ "name": "IGeneratesDomainEvents",
+ "namespace": "Volo.Abp.Domain.Entities",
+ "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
+ "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents"
+ },
+ {
+ "name": "IMultiTenant",
+ "namespace": "Volo.Abp.MultiTenancy",
+ "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions",
+ "fullName": "Volo.Abp.MultiTenancy.IMultiTenant"
+ }
+ ],
+ "methods": [
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "SetSignedInTime",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "DateTime",
+ "name": "signedIn",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "UpdateLastAccessedTime",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Nullable",
+ "name": "lastAccessed",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "SetIpAddresses",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "IEnumerable",
+ "name": "ipAddresses",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "IEnumerable",
+ "namespace": "Volo.Abp.Identity",
+ "name": "GetIpAddresses",
+ "summary": null,
+ "isAsync": false,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": []
+ }
+ ],
+ "collectionProperties": {},
+ "navigationProperties": {},
+ "namespace": "Volo.Abp.Identity",
+ "primaryKeyType": "Guid",
+ "properties": [
+ {
+ "type": "System.String",
+ "name": "SessionId",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "Device",
+ "summary": "Web, Mobile ..."
+ },
+ {
+ "type": "System.String",
+ "name": "DeviceInfo",
+ "summary": null
+ },
+ {
+ "type": "System.Nullable`1[System.Guid]",
+ "name": "TenantId",
+ "summary": null
+ },
+ {
+ "type": "System.Guid",
+ "name": "UserId",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "ClientId",
+ "summary": null
+ },
+ {
+ "type": "System.String",
+ "name": "IpAddresses",
+ "summary": null
+ },
+ {
+ "type": "System.DateTime",
+ "name": "SignedIn",
+ "summary": null
+ },
+ {
+ "type": "System.Nullable`1[System.DateTime]",
+ "name": "LastAccessed",
+ "summary": null
+ }
+ ],
+ "contentType": "aggregateRoot",
+ "name": "IdentitySession",
+ "summary": null
+ },
{
"baseClass": {
"name": "FullAuditedAggregateRoot",
@@ -908,6 +1079,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddRole",
"summary": null,
"isAsync": false,
@@ -924,6 +1096,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveRole",
"summary": null,
"isAsync": false,
@@ -940,6 +1113,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInRole",
"summary": null,
"isAsync": false,
@@ -956,6 +1130,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddClaim",
"summary": null,
"isAsync": false,
@@ -977,6 +1152,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddClaims",
"summary": null,
"isAsync": false,
@@ -998,6 +1174,7 @@
},
{
"returnType": "IdentityUserClaim",
+ "namespace": "Volo.Abp.Identity",
"name": "FindClaim",
"summary": null,
"isAsync": false,
@@ -1014,6 +1191,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "ReplaceClaim",
"summary": null,
"isAsync": false,
@@ -1035,6 +1213,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveClaims",
"summary": null,
"isAsync": false,
@@ -1051,6 +1230,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveClaim",
"summary": null,
"isAsync": false,
@@ -1067,6 +1247,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddLogin",
"summary": null,
"isAsync": false,
@@ -1083,6 +1264,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveLogin",
"summary": null,
"isAsync": false,
@@ -1104,6 +1286,7 @@
},
{
"returnType": "IdentityUserToken",
+ "namespace": "Volo.Abp.Identity",
"name": "FindToken",
"summary": null,
"isAsync": false,
@@ -1125,6 +1308,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetToken",
"summary": null,
"isAsync": false,
@@ -1151,6 +1335,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveToken",
"summary": null,
"isAsync": false,
@@ -1172,6 +1357,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddOrganizationUnit",
"summary": null,
"isAsync": false,
@@ -1188,6 +1374,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveOrganizationUnit",
"summary": null,
"isAsync": false,
@@ -1204,6 +1391,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInOrganizationUnit",
"summary": null,
"isAsync": false,
@@ -1220,6 +1408,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetEmailConfirmed",
"summary": null,
"isAsync": false,
@@ -1236,6 +1425,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetPhoneNumberConfirmed",
"summary": null,
"isAsync": false,
@@ -1252,6 +1442,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetPhoneNumber",
"summary": null,
"isAsync": false,
@@ -1273,6 +1464,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetIsActive",
"summary": null,
"isAsync": false,
@@ -1289,6 +1481,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetShouldChangePasswordOnNextLogin",
"summary": null,
"isAsync": false,
@@ -1305,6 +1498,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetLastPasswordChangeTime",
"summary": null,
"isAsync": false,
@@ -1321,6 +1515,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "ToString",
"summary": null,
"isAsync": false,
@@ -1708,6 +1903,7 @@
"methods": [
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateCode",
"summary": null,
"isAsync": false,
@@ -1724,6 +1920,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "AppendCode",
"summary": null,
"isAsync": false,
@@ -1745,6 +1942,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GetRelativeCode",
"summary": null,
"isAsync": false,
@@ -1766,6 +1964,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "CalculateNextCode",
"summary": null,
"isAsync": false,
@@ -1782,6 +1981,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GetLastUnitCode",
"summary": null,
"isAsync": false,
@@ -1798,6 +1998,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GetParentCode",
"summary": null,
"isAsync": false,
@@ -1814,6 +2015,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddRole",
"summary": null,
"isAsync": false,
@@ -1830,6 +2032,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveRole",
"summary": null,
"isAsync": false,
@@ -1846,6 +2049,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInRole",
"summary": null,
"isAsync": false,
@@ -1919,6 +2123,7 @@
"methods": [
{
"returnType": "IdentityClaimType",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -1935,6 +2140,7 @@
},
{
"returnType": "IdentityClaimType",
+ "namespace": "Volo.Abp.Identity",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -1948,6 +2154,23 @@
"isOptional": false
}
]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "DeleteAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "id",
+ "isOptional": false
+ }
+ ]
}
],
"implementingInterfaces": [
@@ -1979,6 +2202,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -2005,6 +2229,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "LinkAsync",
"summary": null,
"isAsync": true,
@@ -2031,6 +2256,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsLinkedAsync",
"summary": null,
"isAsync": true,
@@ -2062,6 +2288,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "UnlinkAsync",
"summary": null,
"isAsync": true,
@@ -2088,6 +2315,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GenerateLinkTokenAsync",
"summary": null,
"isAsync": true,
@@ -2114,6 +2342,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "VerifyLinkTokenAsync",
"summary": null,
"isAsync": true,
@@ -2173,6 +2402,7 @@
"methods": [
{
"returnType": "IdentityRole",
+ "namespace": "Volo.Abp.Identity",
"name": "GetByIdAsync",
"summary": null,
"isAsync": true,
@@ -2189,6 +2419,7 @@
},
{
"returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
"name": "SetRoleNameAsync",
"summary": null,
"isAsync": true,
@@ -2210,6 +2441,7 @@
},
{
"returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -2260,6 +2492,7 @@
"methods": [
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -2286,6 +2519,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetActiveDelegationsAsync",
"summary": null,
"isAsync": true,
@@ -2307,6 +2541,7 @@
},
{
"returnType": "IdentityUserDelegation",
+ "namespace": "Volo.Abp.Identity",
"name": "FindActiveDelegationByIdAsync",
"summary": null,
"isAsync": true,
@@ -2328,6 +2563,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DelegateNewUserAsync",
"summary": null,
"isAsync": true,
@@ -2364,6 +2600,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteDelegationAsync",
"summary": null,
"isAsync": true,
@@ -2418,6 +2655,7 @@
"methods": [
{
"returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2442,8 +2680,26 @@
}
]
},
+ {
+ "returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
+ "name": "DeleteAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "IdentityUser",
+ "name": "user",
+ "isOptional": false
+ }
+ ]
+ },
{
"returnType": "IdentityUser",
+ "namespace": "Volo.Abp.Identity",
"name": "GetByIdAsync",
"summary": null,
"isAsync": true,
@@ -2460,6 +2716,7 @@
},
{
"returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
"name": "SetRolesAsync",
"summary": null,
"isAsync": true,
@@ -2481,6 +2738,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2502,6 +2760,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2523,6 +2782,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddToOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2544,6 +2804,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddToOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2565,6 +2826,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveFromOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2586,6 +2848,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveFromOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2607,6 +2870,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetOrganizationUnitsAsync",
"summary": null,
"isAsync": true,
@@ -2628,6 +2892,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "SetOrganizationUnitsAsync",
"summary": null,
"isAsync": true,
@@ -2649,6 +2914,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetOrganizationUnitsAsync",
"summary": null,
"isAsync": true,
@@ -2670,6 +2936,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetUsersInOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2691,6 +2958,7 @@
},
{
"returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
"name": "AddDefaultRolesAsync",
"summary": null,
"isAsync": true,
@@ -2707,6 +2975,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "ShouldPeriodicallyChangePasswordAsync",
"summary": null,
"isAsync": true,
@@ -2723,6 +2992,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "ResetRecoveryCodesAsync",
"summary": null,
"isAsync": true,
@@ -2736,9 +3006,153 @@
"isOptional": false
}
]
- }
- ],
- "implementingInterfaces": [
+ },
+ {
+ "returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
+ "name": "SetEmailAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "IdentityUser",
+ "name": "user",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "email",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "IdentityResult",
+ "namespace": "Volo.Abp.Identity",
+ "name": "SetUserNameAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "IdentityUser",
+ "name": "user",
+ "isOptional": false
+ },
+ {
+ "type": "String",
+ "name": "userName",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "UpdateRoleAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "sourceRoleId",
+ "isOptional": false
+ },
+ {
+ "type": "Nullable",
+ "name": "targetRoleId",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "UpdateOrganizationAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Guid",
+ "name": "sourceOrganizationId",
+ "isOptional": false
+ },
+ {
+ "type": "Nullable",
+ "name": "targetOrganizationId",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
+ "name": "ValidateUserNameAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "userName",
+ "isOptional": false
+ },
+ {
+ "type": "Nullable",
+ "name": "userId",
+ "isOptional": true
+ }
+ ]
+ },
+ {
+ "returnType": "String",
+ "namespace": "Volo.Abp.Identity",
+ "name": "GetRandomUserNameAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "Int32",
+ "name": "length",
+ "isOptional": false
+ }
+ ]
+ },
+ {
+ "returnType": "String",
+ "namespace": "Volo.Abp.Identity",
+ "name": "GetUserNameFromEmailAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "email",
+ "isOptional": false
+ }
+ ]
+ }
+ ],
+ "implementingInterfaces": [
{
"name": "IDisposable",
"namespace": "System",
@@ -2773,6 +3187,7 @@
"methods": [
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "CreateAsync",
"summary": null,
"isAsync": true,
@@ -2789,6 +3204,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "UpdateAsync",
"summary": null,
"isAsync": true,
@@ -2805,6 +3221,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GetNextChildCodeAsync",
"summary": null,
"isAsync": true,
@@ -2821,6 +3238,7 @@
},
{
"returnType": "OrganizationUnit",
+ "namespace": "Volo.Abp.Identity",
"name": "GetLastChildOrNullAsync",
"summary": null,
"isAsync": true,
@@ -2837,6 +3255,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -2853,6 +3272,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "MoveAsync",
"summary": null,
"isAsync": true,
@@ -2874,6 +3294,7 @@
},
{
"returnType": "String",
+ "namespace": "Volo.Abp.Identity",
"name": "GetCodeOrDefaultAsync",
"summary": null,
"isAsync": true,
@@ -2890,6 +3311,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "FindChildrenAsync",
"summary": null,
"isAsync": true,
@@ -2911,6 +3333,7 @@
},
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "IsInOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2932,6 +3355,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddRoleToOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2953,6 +3377,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "AddRoleToOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2974,6 +3399,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveRoleFromOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -2995,6 +3421,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "RemoveRoleFromOrganizationUnitAsync",
"summary": null,
"isAsync": true,
@@ -3013,6 +3440,23 @@
"isOptional": false
}
]
+ },
+ {
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "RemoveDynamicClaimCacheAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "OrganizationUnit",
+ "name": "organizationUnit",
+ "isOptional": false
+ }
+ ]
}
],
"implementingInterfaces": [
@@ -3078,6 +3522,7 @@
"methods": [
{
"returnType": "Boolean",
+ "namespace": "Volo.Abp.Identity",
"name": "AnyAsync",
"summary": null,
"isAsync": true,
@@ -3104,6 +3549,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3140,6 +3586,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Abp.Identity",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -3158,6 +3605,28 @@
"isOptional": true
}
]
+ },
+ {
+ "returnType": "List",
+ "namespace": "Volo.Abp.Identity",
+ "name": "GetListByNamesAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "IEnumerable",
+ "name": "names",
+ "isOptional": false
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
}
],
"contentType": "repositoryInterface",
@@ -3209,6 +3678,7 @@
"methods": [
{
"returnType": "IdentityLinkUser",
+ "namespace": "Volo.Abp.Identity",
"name": "FindAsync",
"summary": null,
"isAsync": true,
@@ -3235,6 +3705,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3261,6 +3732,7 @@
},
{
"returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
"name": "DeleteAsync",
"summary": null,
"isAsync": true,
@@ -3330,6 +3802,7 @@
"methods": [
{
"returnType": "IdentityRole",
+ "namespace": "Volo.Abp.Identity",
"name": "FindByNormalizedNameAsync",
"summary": null,
"isAsync": true,
@@ -3354,8 +3827,51 @@
}
]
},
+ {
+ "returnType": "List",
+ "namespace": "Volo.Abp.Identity",
+ "name": "GetListWithUserCountAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "sorting",
+ "isOptional": true
+ },
+ {
+ "type": "Int32",
+ "name": "maxResultCount",
+ "isOptional": true
+ },
+ {
+ "type": "Int32",
+ "name": "skipCount",
+ "isOptional": true
+ },
+ {
+ "type": "String",
+ "name": "filter",
+ "isOptional": true
+ },
+ {
+ "type": "Boolean",
+ "name": "includeDetails",
+ "isOptional": true
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ },
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3397,6 +3913,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetListAsync",
"summary": null,
"isAsync": true,
@@ -3418,6 +3935,7 @@
},
{
"returnType": "List",
+ "namespace": "Volo.Abp.Identity",
"name": "GetDefaultOnesAsync",
"summary": null,
"isAsync": true,
@@ -3439,6 +3957,7 @@
},
{
"returnType": "Int64",
+ "namespace": "Volo.Abp.Identity",
"name": "GetCountAsync",
"summary": null,
"isAsync": true,
@@ -3457,31 +3976,58 @@
"isOptional": true
}
]
- }
- ],
- "contentType": "repositoryInterface",
- "name": "IIdentityRoleRepository",
- "summary": null
- },
- {
- "namespace": "Volo.Abp.Identity",
- "entityAnalyzeModel": {
- "namespace": "Volo.Abp.Identity",
- "primaryKeyType": "Guid",
- "properties": [],
- "contentType": "entity",
- "name": "IdentitySecurityLog",
- "summary": null
- },
- "implementingInterfaces": [
- {
- "name": "IBasicRepository",
- "namespace": "Volo.Abp.Domain.Repositories",
- "declaringAssemblyName": "Volo.Abp.Ddd.Domain",
- "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository"
},
{
- "name": "IBasicRepository",
+ "returnType": "Void",
+ "namespace": "Volo.Abp.Identity",
+ "name": "RemoveClaimFromAllRolesAsync",
+ "summary": null,
+ "isAsync": true,
+ "isPublic": true,
+ "isPrivate": false,
+ "isStatic": false,
+ "parameters": [
+ {
+ "type": "String",
+ "name": "claimType",
+ "isOptional": false
+ },
+ {
+ "type": "Boolean",
+ "name": "autoSave",
+ "isOptional": true
+ },
+ {
+ "type": "CancellationToken",
+ "name": "cancellationToken",
+ "isOptional": true
+ }
+ ]
+ }
+ ],
+ "contentType": "repositoryInterface",
+ "name": "IIdentityRoleRepository",
+ "summary": null
+ },
+ {
+ "namespace": "Volo.Abp.Identity",
+ "entityAnalyzeModel": {
+ "namespace": "Volo.Abp.Identity",
+ "primaryKeyType": "Guid",
+ "properties": [],
+ "contentType": "entity",
+ "name": "IdentitySecurityLog",
+ "summary": null
+ },
+ "implementingInterfaces": [
+ {
+ "name": "IBasicRepository