背景
目前我正在使用一个文档和记录管理系统(DRMS)。由于一些技术限制,我需要存储一个“视图”文件和一个“源”文件(DOCX或XLSX)。视图文件是用户日常使用时打印、下载和查看的PDF文件,而源文件则是可编辑的文件。当用户需要更新文件时,他们将下载源文件进行更新,并上传新的视图文件和相应的源文件。
目前我无法实现XLSX查看器/编辑器,并且由于文件数量的原因,我无法迁移到ODFs以使用可用的开源查看器。
现在我有两个模型如下:
public class Document {
//Other fields
public virtual List<DigitalFile> Files { get; set; }
}
public class DigitalFile {
//Other fields
public virtual Document FileOf { get; set; }
}
Document
模型包含所有“业务”数据,而DigitalFile
模型包含有关文件本身的数据(路径、URL、类型等)。
每次创建文档时,它将具有1个查看文件(必需),并且可能具有1个源文件(某些文档可能无法编辑)。从这里可以知道,当创建/更新文档时,至少还会创建/更新1个数字文件。
问题/疑问
我将拥有一个DocumentAppService
来处理所有CRUD操作,但这里是我的疑惑所在,我是否应该从另一个AppService中调用AppService?我的意思是,当创建文档时,Create方法是否应该调用DigitalFileAppService
中的另一个Create方法?还是说如果DocumentAppService
自行处理所有内容会更好?
现在,DigitalFile上的所有CRUD操作都与Document上的操作相关联,这就是我对实现文件的AppService感到疑惑的原因。