/// <summary> /// Fires the event BeforeCheckin /// </summary> /// <param name="e">Event arguments</param> protected virtual void OnBeforeCheckin(CheckinEventArgs e) { if (BeforeCheckin != null) { BeforeCheckin(e); } }
/// <summary> /// Fires the event AfterCheckin /// </summary> /// <param name="e">Event arguments</param> protected virtual void OnAfterCheckin(CheckinEventArgs e) { if (AfterCheckin != null) { AfterCheckin(e); } }
/// <summary> /// Checkin one document /// </summary> /// <param name="parentId">Parent ID</param> /// <param name="fname">File path</param> /// <param name="index">Index-th. document</param> /// <param name="count">Number of documents</param> /// <returns></returns> protected virtual bool checkinNewDocument(string parentId, string fname, int index, int count) { FWDocument doc = Conn.Content.CreateDocument(parentId, MaskId); doc.Version.File = fname; CheckinEventArgs e = new CheckinEventArgs(); e.Cancel = false; e.CancelAll = false; e.Sord = doc; e.Index = index; e.Count = count; e.ParentId = parentId; e.File = fname; OnBeforeCheckin(e); if (!e.Cancel && !e.CancelAll) { doc.Checkin(); OnAfterCheckin(e); } return(e.CancelAll); }
/// <summary> /// Checkin all documents contained in the given DataObject /// </summary> /// <param name="parentId">Parent ID</param> /// <param name="dataObjectCOM">COM DataObject</param> protected virtual void checkinDataObject(String parentId, IDataObject dataObjectCOM) { if (dataObjectCOM != null) { CheckinEventArgs e = new CheckinEventArgs(); e.ParentId = parentId; if (dataObjectCOM.GetDataPresent("FileGroupDescriptorW")) { //wrap standard IDataObject in OutlookDataObject OutlookDataObject dataObject = new OutlookDataObject(dataObjectCOM); //get the names and data streams of the files dropped string[] filenames = (string[])dataObject.GetData("FileGroupDescriptorW"); MemoryStream[] filestreams = (MemoryStream[])dataObject.GetData("FileContents"); for (int fileIndex = 0; fileIndex < filenames.Length; fileIndex++) { //use the fileindex to get the name and data stream string fname = Conn.Content.TempDir + "\\" + filenames[fileIndex]; MemoryStream filestream = filestreams[fileIndex]; //save the file stream using its name FileStream outputStream = File.Create(fname); filestream.WriteTo(outputStream); outputStream.Close(); File.SetAttributes(fname, FileAttributes.ReadOnly); // checkin if (checkinNewDocument(parentId, fname, fileIndex, filenames.Length)) { break; } } } else if (dataObjectCOM.GetDataPresent(DataFormats.FileDrop)) { string[] filePaths = (string[])dataObjectCOM.GetData(DataFormats.FileDrop, false); for (int fileIndex = 0; fileIndex < filePaths.Length; fileIndex++) { string fname = filePaths[fileIndex]; if (checkinNewDocument(parentId, fname, fileIndex, filePaths.Length)) { break; } } } } }