示例#1
0
        private ICmisObject AddCmisObject(IFileSystemInfo localFile, string parentId, ISession session)
        {
            string name = localFile.Name;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            properties.Add(PropertyIds.Name, name);
            if (this.ServerCanModifyDateTimes)
            {
                properties.Add(PropertyIds.CreationDate, localFile.CreationTimeUtc);
                properties.Add(PropertyIds.LastModificationDate, localFile.LastWriteTimeUtc);
            }

            Stopwatch   watch = new Stopwatch();
            ICmisObject result;

            if (localFile is IDirectoryInfo)
            {
                properties.Add(PropertyIds.ObjectTypeId, BaseTypeId.CmisFolder.GetCmisValue());
                watch.Start();
                var objId = session.CreateFolder(properties, new ObjectId(parentId));
                watch.Stop();
                Logger.Debug(string.Format("CreatedFolder in [{0} msec]", watch.ElapsedMilliseconds));
                watch.Restart();
                var operationContext = OperationContextFactory.CreateContext(session, true, false, PropertyIds.Name, PropertyIds.LastModificationDate, PropertyIds.ChangeToken);
                result = session.GetObject(objId, operationContext);
                watch.Stop();
                Logger.Debug(string.Format("GetFolder in [{0} msec]", watch.ElapsedMilliseconds));
            }
            else
            {
                bool emptyFile = (localFile as IFileInfo).Length == 0;
                properties.Add(PropertyIds.ObjectTypeId, BaseTypeId.CmisDocument.GetCmisValue());
                watch.Start();
                using (var emptyStream = new MemoryStream(new byte[0])) {
                    var objId = session.CreateDocument(
                        properties,
                        new ObjectId(parentId),
                        emptyFile ? this.CreateEmptyStream(name, emptyStream) : null,
                        null,
                        null,
                        null,
                        null);
                    watch.Stop();
                    Logger.Debug(string.Format("CreatedDocument in [{0} msec]", watch.ElapsedMilliseconds));
                    watch.Restart();
                    var operationContext = OperationContextFactory.CreateContext(session, true, false, PropertyIds.Name, PropertyIds.LastModificationDate, PropertyIds.ChangeToken, PropertyIds.ContentStreamLength);
                    result = session.GetObject(objId, operationContext);
                    watch.Stop();
                    Logger.Debug(string.Format("GetDocument in [{0} msec]", watch.ElapsedMilliseconds));
                }
            }

            return(result);
        }
示例#2
0
        public void IgnoreRemoteFolder()
        {
            this.session.EnsureSelectiveIgnoreSupportIsAvailable();
            var folder = this.remoteRootDir.CreateFolder("ignored");

            folder.IgnoreAllChildren();

            var context   = OperationContextFactory.CreateContext(this.session, false, true);
            var underTest = this.session.GetObject(folder.Id, context) as IFolder;

            Assert.That(folder.AreAllChildrenIgnored(), Is.True);
            Assert.That(underTest.AreAllChildrenIgnored(), Is.True);
        }