private bool IsBelongToObjectNonRecursive( string sAttachmentFileName, object oObj) { // Cast to ISupportsAttachments ISupportsAttachments oSupportsAttachments = oObj as ISupportsAttachments; // Cast succeeded if (oSupportsAttachments != null) { // Get attachment type string sAttType = AttachmentsUtil.GetAttachmentType( sAttachmentFileName); // Get file name for attachment type that can belong to object string sSupportedAttachmentFileName = oSupportsAttachments.GetAttachmentFileName(sAttType); // Get attachment name (without path) string sAttachmentName = AttachmentsUtil.GetAttachmentName(sAttachmentFileName); // Get supported attachment name (without path) string sSupportedAttachmentName = AttachmentsUtil.GetAttachmentName(sSupportedAttachmentFileName); // Check if object supports the specified attachment // By comparing names if (StringUtil.CompareIgnoreCase( sSupportedAttachmentName, sAttachmentName)) { // Passed the filter return(true); } } return(false); }
public static void CopyAttachments( ISupportsAttachments oSource, ISupportsAttachments oTarget) { IList <string> Attachments = oSource.LocalAttachments; foreach (string sAttachment in Attachments) { // Get attachment type string sAttType = AttachmentsUtil.GetAttachmentType(sAttachment); // Create target file name string sTargetAttFileName = oTarget.GetAttachmentFileName(sAttType); // Copy file System.IO.File.Copy( sAttachment, sTargetAttFileName, true // Overwrite ); } }
// // Private // #region Import support private void CopyNodeAttachments( ITisDataLayerTreeNode oSrcTreeNode, ITisDataLayerTreeNode oDstTreeNode) { ISupportsAttachments oSrc = oSrcTreeNode as ISupportsAttachments; ISupportsAttachments oDst = oDstTreeNode as ISupportsAttachments; EntityBase oSrcEntity = oSrcTreeNode as EntityBase; EntityBase oDstEntity = oDstTreeNode as EntityBase; if (oSrc == null || oDst == null || oSrcEntity == null || oDstEntity == null) { return; } IList <string> oLocalAttachments = oSrc.LocalAttachments; ITisAttachedFileManager oSrcAttachedFileManager = (ITisAttachedFileManager)oSrcEntity.GetContextService( TisServicesSchema.SetupAttachmentsFileManager.ServiceName); ITisAttachedFileManager oDstAttachedFileManager = (ITisAttachedFileManager)oDstEntity.GetContextService( TisServicesSchema.SetupAttachmentsFileManager.ServiceName); foreach (string sAttachment in oLocalAttachments) { string sAttType = AttachmentsUtil.GetAttachmentType(sAttachment); string sDstAttName = oDst.GetAttachmentFileName(sAttType) ?? oDst.GetAttachmentNameByFileName(sAttachment); try { if (!StringUtil.CompareIgnoreCase(sAttachment, sDstAttName)) { if (!File.Exists(sAttachment)) { oSrcAttachedFileManager.GetAttachment(sAttachment); } if (StringUtil.CompareIgnoreCase(sAttType, "EFI")) { // Special handling for EFIs int nRetVal = FoLearn.CopyToNewEfi( sAttachment, sDstAttName); if (nRetVal != 0) { throw new TisException("FoLearn.CopyToNewEfi failed, Code={0}", nRetVal); } } else { // Copy local (cached) File.Copy( sAttachment, sDstAttName, true // Overwrite ); } } } catch (Exception oExc) { Log.WriteException(oExc); throw; } // Save to server oDstAttachedFileManager.SaveAttachment( sDstAttName, TIS_ATTACHMENT_EXISTS_ACTION.TIS_EXISTING_OVERRIDE); } }