diff --git a/.github/workflows/vale.yml b/.github/workflows/vale.yml
new file mode 100644
index 0000000..fc11f81
--- /dev/null
+++ b/.github/workflows/vale.yml
@@ -0,0 +1,30 @@
+name: vale-validation
+on:
+ pull_request:
+ paths:
+ - README.md
+ - readme.md
+ - Readme.md
+
+jobs:
+ vale:
+ name: runner / vale
+ runs-on: ubuntu-latest
+ steps:
+ - name: clone repo
+ uses: actions/checkout@v4
+ - name: clone vale-styles repo
+ uses: actions/checkout@v4
+ with:
+ repository: DevExpress/vale-styles
+ path: vale-styles
+ ssh-key: ${{ secrets.VALE_STYLES_ACCESS_KEY }}
+ - name: copy vale rules to the root repo
+ run: shopt -s dotglob && cp -r ./vale-styles/vale/* .
+ - name: vale linter check
+ uses: DevExpress/vale-action@reviewdog
+ with:
+ files: '["README.md", "readme.md", "Readme.md"]'
+ fail_on_error: true
+ filter_mode: nofilter
+ reporter: github-check
diff --git a/Readme.md b/Readme.md
index 682eef1..2709a7e 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,29 +1,27 @@
-
-
-[](https://supportcenter.devexpress.com/ticket/details/E305)
-[](https://docs.devexpress.com/GeneralInformation/403183)
-[](#does-this-example-address-your-development-requirementsobjectives)
-
-
-*Files to look at*:
-
-* [Order.cs](CS/EFCore/MasterPropertiesEF/MasterPropertiesEF.Module/BusinessObjects/Order.cs)
-* [Product.cs](CS/EFCore/MasterPropertiesEF/MasterPropertiesEF.Module/BusinessObjects/Product.cs)
-
-# How to calculate a master property based on values from a details collection
-
-
-
See the How to: Calculate a Property Value Based on Values from a Detail Collection help topic for more information.
See Also:
-XPO Best Practices
-How to display details collections with descendant classes filtered by object type in a DetailView
-
-
-
-
-
+
+[](https://supportcenter.devexpress.com/ticket/details/E305)
+[](https://docs.devexpress.com/GeneralInformation/403183)
+[](#does-this-example-address-your-development-requirementsobjectives)
+
+
+# XAF - How to calculate a master property based on values from a detail collection
+
+This example implements a business class that calculates one of its properties based on properties of objects contained in the child object collection. See the following help topics for more information:
+
+* [Calculate a Property Value Based on Values from a Detail Collection in EF Core](http://docs.devexpress.devx/eXpressAppFramework/405280/business-model-design-orm/business-model-design-with-entity-framework-core/ef-core-calculate-a-property-value-based-on-values-from-a-detail-collection#lookuppropertyeditor)
+* [Calculate a Property Value Based on Values from a Detail Collection in XPO](https://docs.devexpress.com/eXpressAppFramework/113179/business-model-design-orm/business-model-design-with-xpo/calculate-a-property-value-based-on-values-from-a-detail-collection)
+
+
+
+## Files to Review
+
+- [Order.cs](CS/EFCore/MasterPropertiesEF/MasterPropertiesEF.Module/BusinessObjects/Order.cs)
+- [Product.cs](CS/EFCore/MasterPropertiesEF/MasterPropertiesEF.Module/BusinessObjects/Product.cs)
+
+
## Does this example address your development requirements/objectives?
[
](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=XAF_how-to-calculate-a-master-property-based-on-values-from-a-detail-collection&~~~was_helpful=yes) [
](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=XAF_how-to-calculate-a-master-property-based-on-values-from-a-detail-collection&~~~was_helpful=no)
-(you will be redirected to DevExpress.com to submit your response)
-
+(you will be redirected to DevExpress.com to submit your response)
+