我应该把 "business logic" 放在哪里?
Where do I put "business logic"?
我在书店 demo/documentation 之后构建了一个 abp.io 应用程序。
我有一个“位置”实体 (?),它有多个地址字段(地址、城市、州、邮编等)。
它还有纬度和经度字段。为了确定纬度和经度,我必须在创建或更新位置后点击外部 API。
在哪里以及如何创建此逻辑?
据我所知,我必须在创建或更新时执行以下操作:
- 将地址数据保存到数据库
- 将地址数据传递到我的业务逻辑
- 使用该数据进行外部 API 调用以获取纬度和经度
- 使用返回的纬度和经度来更新数据库中位置的那些字段
我的代码可以让我获取纬度和经度。我只是不知道如何调用它以及如何用它更新数据库条目。
注意,这是将 abp.io 与 Angular 和 EFC (MS SQL) 一起使用。
我认为您可以利用 abp 使这个过程更稳健、更容易。
例如,在创建、更新或删除位置后,您可以发布一个事件,然后订阅。
https://docs.abp.io/en/abp/latest/Local-Event-Bus#inside-entity-aggregate-root-classes
此外,在您的情况下,如果 location 的 isRequired 为真,您可以在资产更改成功保存到数据库时发出事件。
https://docs.abp.io/en/abp/latest/Local-Event-Bus#events-with-past-tense
Pub/Sub 在 ABP 仓库中的许多地方使用。例如其中之一=> https://github.com/abpframework/abp/blob/dev/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocumentChangedEventHandler.cs
我在书店 demo/documentation 之后构建了一个 abp.io 应用程序。
我有一个“位置”实体 (?),它有多个地址字段(地址、城市、州、邮编等)。
它还有纬度和经度字段。为了确定纬度和经度,我必须在创建或更新位置后点击外部 API。
在哪里以及如何创建此逻辑?
据我所知,我必须在创建或更新时执行以下操作:
- 将地址数据保存到数据库
- 将地址数据传递到我的业务逻辑
- 使用该数据进行外部 API 调用以获取纬度和经度
- 使用返回的纬度和经度来更新数据库中位置的那些字段
我的代码可以让我获取纬度和经度。我只是不知道如何调用它以及如何用它更新数据库条目。
注意,这是将 abp.io 与 Angular 和 EFC (MS SQL) 一起使用。
我认为您可以利用 abp 使这个过程更稳健、更容易。 例如,在创建、更新或删除位置后,您可以发布一个事件,然后订阅。 https://docs.abp.io/en/abp/latest/Local-Event-Bus#inside-entity-aggregate-root-classes
此外,在您的情况下,如果 location 的 isRequired 为真,您可以在资产更改成功保存到数据库时发出事件。 https://docs.abp.io/en/abp/latest/Local-Event-Bus#events-with-past-tense
Pub/Sub 在 ABP 仓库中的许多地方使用。例如其中之一=> https://github.com/abpframework/abp/blob/dev/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocumentChangedEventHandler.cs