/// <summary> /// 恢复逻辑删除Opc Ua 业务数据 /// </summary> /// <param name="inputDtos"></param> /// <returns></returns> public async Task <OperationResult> RestoreCommOpcUaBusinesss(params CommOpcUaBusiness[] commOpcUaBusiness) { commOpcUaBusiness.CheckNotNull("commOpcUaBusiness"); int count = 0; try { CommOpcUaBusinessRepository.UnitOfWork.BeginTransaction(); count = await CommOpcUaBusinessRepository.RestoreAsync(commOpcUaBusiness); CommOpcUaBusinessRepository.UnitOfWork.Commit(); } catch (DataException dataException) { return(new OperationResult(OperationResultType.Error, dataException.Message)); } catch (OSharpException osharpException) { return(new OperationResult(OperationResultType.Error, osharpException.Message)); } List <string> names = new List <string>(); foreach (var data in commOpcUaBusiness) { names.Add(data.BusinessName); } return(count > 0 ? new OperationResult(OperationResultType.Success, names.Count > 0 ? "信息“{0}”逻辑还原成功".FormatWith(names.ExpandAndToString()) : "{0}个信息逻辑还原成功".FormatWith(count)) : new OperationResult(OperationResultType.NoChanged)); }
/// <summary> /// 删除Opc Ua 业务数据 /// </summary> /// <param name="ids">要删除的Opc Ua 业务数据编号</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> DeleteCommOpcUaBusinesss(params Guid[] ids) { ids.CheckNotNull("ids"); CommOpcUaBusinessRepository.UnitOfWork.BeginTransaction(); List <Guid> mapIds = new List <Guid>(); foreach (var id in ids) { var subList = CommOpcUaBusinessNodeMapRepository.Entities.Where(x => x.OpcUaBusiness.Id.Equals(id)).Select(x => x.Id).ToList(); mapIds.AddRange(subList.ToArray()); } if (mapIds.Any()) { var recycleMapResult = await CommOpcUaBusinessNodeMapRepository.DeleteAsync(mapIds.ToArray()); if (!recycleMapResult.Successed) { return(new OperationResult(OperationResultType.Error, "删除通讯业务与通讯点关联数据失败,取消通讯业务数据物理删除!")); } } var result = await CommOpcUaBusinessRepository.DeleteAsync(ids); CommOpcUaBusinessRepository.UnitOfWork.Commit(); return(result); }
/// <summary> /// 添加Opc Ua 业务数据 /// </summary> /// <param name="inputDtos">要添加的Opc Ua 业务数据DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> AddCommOpcUaBusinesss(params CommOpcUaBusinessInputDto[] inputDtos) { inputDtos.CheckNotNull("inputDtos"); foreach (var dtoData in inputDtos) { if (CommOpcUaBusinessRepository.CheckExists(x => x.BusinessName.Equals(dtoData.BusinessName))) { return(new OperationResult(OperationResultType.Error, $"业务名称为{dtoData.BusinessName}的信息已存在,数据不合法,改组数据不被存储")); } } CommOpcUaBusinessRepository.UnitOfWork.BeginTransaction(); CommOpcUaBusinessNodeMapInputDto commOpcUaBusinessNodeMapInputDto = new CommOpcUaBusinessNodeMapInputDto(); foreach (var dtoData in inputDtos) { DeviceNode commOpcUaNode = CommOpcUaNodeRepository.TrackEntities.Where(x => x.Id.Equals(dtoData.NodeId)).FirstOrDefault(); if (commOpcUaNode != null) { //var result = await CommOpcUaBusinessContract.AddCommOpcUaBusinesss(dtoData); var result = await CommOpcUaBusinessRepository.InsertAsync(dtoData.MapTo <CommOpcUaBusiness>()); if (result > 0) { CommOpcUaBusiness commOpcUaBusiness = CommOpcUaBusinessRepository.TrackEntities.Where(x => x.BusinessName.Equals(dtoData.BusinessName)).FirstOrDefault(); commOpcUaBusinessNodeMapInputDto.OpcUaNode = commOpcUaNode; commOpcUaBusinessNodeMapInputDto.OpcUaBusiness = commOpcUaBusiness; commOpcUaBusinessNodeMapInputDto.Id = CombHelper.NewComb(); commOpcUaBusinessNodeMapInputDto.CreatorUserId = dtoData.CreatorUserId; commOpcUaBusinessNodeMapInputDto.CreatedTime = DateTime.Now; commOpcUaBusinessNodeMapInputDto.LastUpdatedTime = commOpcUaBusinessNodeMapInputDto.CreatedTime; commOpcUaBusinessNodeMapInputDto.LastUpdatorUserId = commOpcUaBusinessNodeMapInputDto.CreatorUserId; var saveResult = await CommOpcUaBusinessNodeMapContract.AddCommOpcUaBusinessNodeMaps(commOpcUaBusinessNodeMapInputDto); if (saveResult.ResultType == OperationResultType.Error) { return(new OperationResult(OperationResultType.Error, $"存储通讯业务点表与通讯点表关联数据失败,取消数据点\"{dtoData.BusinessName}\"存储!")); } } else { return(new OperationResult(OperationResultType.Error, "存储通讯业务点表数据失败!")); } } else { return(new OperationResult(OperationResultType.Error, "查询通讯点表数据失败!")); } } CommOpcUaBusinessRepository.UnitOfWork.Commit(); return(new OperationResult(OperationResultType.Success, "存储业务点数据成功!")); }
/// <summary> /// 更新Opc Ua 业务数据信息 /// </summary> /// <param name="inputDtos">包含更新信息的Opc Ua 业务数据DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> EditCommOpcUaBusinesss(params CommOpcUaBusinessInputDto[] inputDto) { inputDto.CheckNotNull("data"); CommOpcUaBusinessRepository.UnitOfWork.BeginTransaction(); var result = await CommOpcUaBusinessRepository.UpdateAsync(inputDto); if (result.Successed) { foreach (var data in inputDto) { CommOpcUaBusiness commOpcUaBusiness = CommOpcUaBusinessRepository.TrackEntities.Where(x => x.Id.Equals(data.Id)).FirstOrDefault(); DeviceNode commOpcUaNode = CommOpcUaNodeRepository.TrackEntities.Where(x => x.Id.Equals(data.NodeId)).FirstOrDefault(); CommOpcUaBusinessNodeMap entity = CommOpcUaBusinessNodeMapContract.CommOpcUaBusinessNodeMapInfos.Where(x => x.OpcUaBusiness.Id.Equals(data.Id)).FirstOrDefault(); if (entity != null) { CommOpcUaBusinessNodeMapInputDto dto = new CommOpcUaBusinessNodeMapInputDto(); dto.Id = entity.Id; dto.CreatedTime = entity.CreatedTime; dto.CreatorUserId = entity.CreatorUserId; dto.OpcUaBusiness = commOpcUaBusiness; dto.OpcUaNode = commOpcUaNode; dto.LastUpdatedTime = data.LastUpdatedTime; dto.LastUpdatorUserId = data.LastUpdatorUserId; try { var EditResult = await CommOpcUaBusinessNodeMapContract.EditCommOpcUaBusinessNodeMaps(dto); if (EditResult.ResultType == OperationResultType.Error) { return(EditResult); } } catch (Exception ex) { string sss = ex.ToString(); } } } } else { return(result); } CommOpcUaBusinessRepository.UnitOfWork.Commit(); return(new OperationResult(OperationResultType.Success, "修改业务数据成功!")); }
/// <summary> /// 更新业务信息 /// </summary> /// <param name="inputDtos"></param> /// <returns></returns> public async Task <OperationResult> Update(params CommOpcUaBusinessInputDto[] inputDtos) { inputDtos.CheckNotNull("inputDtos"); foreach (CommOpcUaBusinessInputDto dtoData in inputDtos) { if (string.IsNullOrEmpty(dtoData.BusinessName)) { return(new OperationResult(OperationResultType.Error, "请正确填写业务名称,该组数据不被存储。")); } if (CommOpcUaBusinessRepository.CheckExists(x => x.BusinessName == dtoData.BusinessName && x.Id != dtoData.Id)) { return(new OperationResult(OperationResultType.Error, $"业务名称 {dtoData.BusinessName} 的数据已存在,该组数据不被存储。")); } } CommOpcUaBusinessRepository.UnitOfWork.BeginTransaction(); var result = await CommOpcUaBusinessRepository.UpdateAsync(inputDtos); CommOpcUaBusinessRepository.UnitOfWork.Commit(); return(result); }
/// <summary> /// 检查组Opc Ua 业务数据信息是否存在 /// </summary> /// <param name="predicate">检查谓语表达式</param> /// <param name="id">更新的Opc Ua 业务数据编号</param> /// <returns>Opc Ua 业务数据是否存在</returns> public bool CheckCommOpcUaBusinessExists(Expression <Func <CommOpcUaBusiness, bool> > predicate, Guid id) => CommOpcUaBusinessRepository.CheckExists(predicate, id);