Beispiel #1
0
        public Folder CreateFolder(string folderName, string parentId = null)
        {
            string             folderTypeName = this._entityFactory.GetEntityTypeStringName(typeof(Folder));
            var                folder         = this._entityFactory.CreateEntityForType(folderTypeName) as Folder;
            CloudBlobContainer container;

            if (string.IsNullOrWhiteSpace(parentId))
            {
                container = CurrentCloudBlobClient.GetContainerReference(folderName.ToLower());
                container.CreateIfNotExists();
                MapCloudBlobContainer2Folder(container, folder);
            }
            else
            {
                var    path          = Combine(parentId, folderName);
                string containerName = GetContainer(path);
                string prefix        = GetPrefix(path);

                container = CurrentCloudBlobClient.GetContainerReference(containerName);

                if (!container.ListBlobs(prefix).Any())
                {
                    container.GetBlockBlobReference(Combine(prefix, DirectoryPlaceHolder)).UploadText(string.Empty);
                }
                var directory = container.GetDirectoryReference(prefix);

                MapCloudBlobDirectory2Folder(directory, folder);
            }

            ChangeTracker.Attach(folder);
            return(folder);
        }
 void DSCatalogClient_ReadingEntity(object sender, ReadingWritingEntityEventArgs e)
 {
     if (MergeOption != MergeOption.NoTracking)
     {
         ChangeTracker.Attach(e.Entity);
     }
 }
 public void Update <T>(T item) where T : class
 {
     if (!ChangeTracker.IsAttached(item))             // consistent implementation with a repository class
     {
         ChangeTracker.Attach(item);
     }
     ChangeTracker.Update(item);
 }
        public void Attach <T>(T item) where T : class
        {
            if (ChangeTracker.IsAttached(item))
            {
#if DEBUG
                Debug.WriteLine("Object {0} already attached", item.ToString());
#endif
                return;
            }
            ChangeTracker.Attach(item);
        }
 public void Attach <T>(T item) where T : class
 {
     ChangeTracker.Attach(item);
 }