public ContentFolderViewModel(ContentFolder model, ContentFolderViewModel parent, IMessenger messenger)
            : base(messenger)
        {
            this.model = model;

            Parent = parent;
            Children = new ObservableCollection<ContentFolderViewModel>();
            Children.Add(dummyChild);

            CreateSubFolderCommand = new RelayCommand(CreateSubFolder, () => IsSelected);
            DeleteCommand = new RelayCommand(Delete, () => IsSelected);
        }
Example #2
0
        /// <summary>
        /// 资讯操作日志事件处理
        /// </summary>
        private void ContentFolderOperationLogEventModule_After(ContentFolder sender, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Create()
                || eventArgs.EventOperationType == EventOperationType.Instance().Update()
                || eventArgs.EventOperationType == EventOperationType.Instance().Delete()
                )
            {
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId = CmsConfig.Instance().ApplicationId;
                entry.Source = CmsConfig.Instance().ApplicationName;
                entry.OperationType = eventArgs.EventOperationType;
                entry.OperationObjectName = sender.FolderName;
                entry.OperationObjectId = sender.ContentFolderId;
                entry.Description = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType, entry.ApplicationId), "资讯栏目", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve<OperationLogService>();
                logService.Create(entry);
            }
        }
        private IEnumerable<ImageData> GetImageFiles(ContentFolder contentFolder)
        {
            var contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>();

            var queue = new Queue<ContentFolder>();
            queue.Enqueue(contentFolder);
            while (queue.Count > 0)
            {
                contentFolder = queue.Dequeue();
                try
                {
                    foreach (ContentFolder subDir in contentLoader.GetChildren<ContentFolder>(contentFolder.ContentLink))
                    {
                        queue.Enqueue(subDir);
                    }
                }
                catch
                {
                }
                IEnumerable<ImageData> files = null;
                try
                {
                    files = contentLoader.GetChildren<ImageData>(contentFolder.ContentLink);
                }
                catch
                {
                }
                if (files != null)
                {
                    foreach (var imageData in files)
                    {
                        yield return imageData;
                    }
                }
            }
        }
Example #4
0
        /// <summary>
        /// 指定されたプロジェクト ファイルを開きます。
        /// </summary>
        /// <param name="path">プロジェクト ファイルのパス。</param>
        public void OpenProject(string path)
        {
            if (path == null) throw new ArgumentNullException("path");

            // プロジェクトが既に開かれているならば、それを閉じます。
            // 同一プロジェクトを選択した場合にはロード状態の衝突が発生するため、
            // 選択したプロジェクトを開く前に既存のプロジェクトを閉じます。
            CloseProject();

            // プロジェクトを開きます。
            Project = ContentProject.Load(path, buildLogger);
            Project.OutputPath = AppDomain.CurrentDomain.BaseDirectory;
            // 出力先の変更により IsDirty=true となるため、再評価します。
            Project.ReevaluateIfNecessary();

            // このプロジェクトのコンテンツをロードする AdhocContentManager を生成します。
            ContentManager = new AdhocContentManager(Services, Project.RuntimeContentPath);

            // ルート ディレクトリを設定します。
            RootFolder = new ContentFolder(new DirectoryInfo(Project.DirectoryPath));
        }
Example #5
0
        public void NewProject(string path)
        {
            if (path == null) throw new ArgumentNullException("path");

            // プロジェクトが既に開かれているならば、それを閉じます。
            CloseProject();

            // プロジェクトを作成します。
            Project = ContentProject.Create(path, buildLogger);
            Project.OutputPath = AppDomain.CurrentDomain.BaseDirectory;

            // このプロジェクトのコンテンツをロードする AdhocContentManager を生成します。
            ContentManager = new AdhocContentManager(Services, Project.RuntimeContentPath);

            // ルート ディレクトリを設定します。
            RootFolder = new ContentFolder(new DirectoryInfo(Project.DirectoryPath));
        }
        public IHttpActionResult CreateContentFolder(string contentType, string storeId, ContentFolder folder)
        {
            var storageProvider = _contentStorageProviderFactory(GetContentBasePath(contentType, storeId));

            storageProvider.CreateFolder(folder.ToBlobModel());
            return StatusCode(HttpStatusCode.NoContent);
        }
 public static ContentFolder ToContentModel(this BlobFolder blobFolder)
 {
     var retVal = new ContentFolder();
     retVal.InjectFrom(blobFolder);
     return retVal;
 }