/// <summary> /// 更新数据实体 /// 实现方式是删除旧节点后重新添加,避免在这里再次操作XML具体内容 /// </summary> /// <param name="dataEntity"></param> public void Update(DataEntityDev dataEntity) { Debug.Assert(dataEntity != null, "dataEntity 为 null"); if (dataEntity == null) { return; } //更新索引信息 XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectDataEntity, dataEntity.Id)); Debug.Assert(element != null, "更新数据实体索引时未找到指定数据实体的索引记录"); if (element != null) { element.ReplaceWith(ArchiveHelper.GetEntityArchiveIndex(dataEntity)); SaveIndexFile(); string xml = dataEntity.ToXml(); XElement xElement = XElement.Parse(xml); //更新数据实体文件 _packageService.Current.AddFileContent(xml, Path.Combine(Constant.PACKAGE_DATAENTITY_FOLDER, dataEntity.Id)); _cachingService.Add(dataEntity.Id, xElement); //发布事件 DataEntityEventArgs args = new DataEntityEventArgs(dataEntity); _eventAggregator.GetEvent <DataEntityUpdatedEvent>().Publish(args); } }
/// <summary> /// 添加一个数据实体 /// </summary> /// <param name="dataEntity"></param> public void Add(DataEntityDev dataEntity) { Debug.Assert(dataEntity != null, "dataEntity 为 null"); if (dataEntity == null) { return; } //添加索引信息 _indexXml.XPathSelectElement(XPATH_Index_DataEntity).Add(ArchiveHelper.GetEntityArchiveIndex(dataEntity)); SaveIndexFile(); string xml = dataEntity.ToXml(); XElement xElement = XElement.Parse(xml); //添加数据实体文件 _packageService.Current.AddFileContent(xml, Path.Combine(Constant.PACKAGE_DATAENTITY_FOLDER, dataEntity.Id)); _cachingService.Add(dataEntity.Id, xElement); //发布事件 DataEntityEventArgs args = new DataEntityEventArgs(dataEntity); _eventAggregator.GetEvent <DataEntityAddedEvent>().Publish(args); }