コード例 #1
0
ファイル: IncomeQueueManager.cs プロジェクト: bootmarket/CMS
        protected virtual void PublishTextContent(ref IncomeQueue queueItem)
        {
            var site = new Site(queueItem.SiteName).AsActual();

            if (site != null)
            {
                var repository = site.GetRepository();
                if (repository != null)
                {
                    switch (queueItem.Action)
                    {
                    case PublishingAction.Publish:
                        var textContent = new TextContent((Dictionary <string, object>)queueItem.Object);
                        _textContentProvider.Delete(textContent);
                        _textContentProvider.Add(textContent);
                        return;

                    case PublishingAction.Unbpulish:
                        var integrateId = new ContentIntegrateId(queueItem.ObjectUUID);
                        var textFolder  = new TextFolder(repository, integrateId.FolderName).AsActual();
                        if (textFolder != null)
                        {
                            _textContentManager.Delete(repository, textFolder, integrateId.ContentUUID);
                            return;
                        }
                        break;

                    case PublishingAction.None:
                    default:
                        return;
                    }
                }
            }
            NoSuchSiteMessage(ref queueItem);
        }
コード例 #2
0
        public void DeleteTextContent(Site site, TextFolder textFolder, string uuid, string vendor)
        {
            var integrateId = new ContentIntegrateId(uuid);
            var content     = textFolder.CreateQuery().WhereEquals("UUID", integrateId.ContentUUID).FirstOrDefault();

            if (content != null)
            {
                IncomeQueue incomeQueue = new IncomeQueue()
                {
                    Message          = null,
                    Object           = null,
                    ObjectUUID       = uuid,
                    ObjectTitle      = content.GetSummary(),
                    Vendor           = vendor,
                    PublishingObject = PublishingObject.TextContent,
                    Action           = PublishingAction.Unbpulish,
                    SiteName         = site.FullName,
                    Status           = QueueStatus.Pending,
                    UtcCreationDate  = DateTime.UtcNow,
                    UtcProcessedTime = null,
                    UUID             = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10)
                };
                _incomeQueueProvider.Add(incomeQueue);
            }
        }
コード例 #3
0
ファイル: IIncomeDataManager.cs プロジェクト: bootmarket/CMS
        public string UpdateTextContent(Site site, TextFolder textFolder, string integrateId, NameValueCollection values, string userid, string vendor)
        {
            var integrate   = new ContentIntegrateId(integrateId);
            var textContent = _textContentManager.Update(textFolder.Repository, textFolder, integrate.ContentUUID, values, "");

            return(textContent.IntegrateId);
        }
コード例 #4
0
        public string UpdateTextContent(Site site, TextFolder textFolder, string integrateId, NameValueCollection values, string userid, string vendor)
        {
            var integrate   = new ContentIntegrateId(integrateId);
            var files       = values.GetFilesFromValues();
            var textContent = _textContentManager.Update(textFolder.Repository, textFolder, integrate.ContentUUID, values, files, DateTime.UtcNow, null, null, userid, true);

            return(textContent.IntegrateId);
        }
コード例 #5
0
        protected virtual void PublishTextContent(ref RemotePublishingQueue queueItem, PublishingAction action, out RemoteEndpointSetting remoteEndpoint)
        {
            remoteEndpoint = null;
            var mapping = new RemoteTextFolderMapping(queueItem.Site, queueItem.TextFolderMapping).AsActual();

            if (mapping == null)
            {
                NoSuchPublishingMapping(ref queueItem);
                return;
            }
            remoteEndpoint = new RemoteEndpointSetting(queueItem.Site, mapping.RemoteEndpoint).AsActual();

            if (remoteEndpoint == null)
            {
                NoSuchEndpoint(ref queueItem, mapping.RemoteEndpoint);
                return;
            }
            var contentIntegrateId = new ContentIntegrateId(queueItem.ObjectUUID);
            var repository         = new Repository(contentIntegrateId.Repository).AsActual();

            if (repository != null)
            {
                var textFolder = new TextFolder(repository, contentIntegrateId.FolderName).AsActual();
                if (textFolder != null)
                {
                    var contentUUID = contentIntegrateId.ContentUUID;

                    var content = textFolder.CreateQuery().WhereEquals("UUID", contentUUID).FirstOrDefault();
                    if (content != null)
                    {
                        var cmisService = _cmisSession.OpenSession(remoteEndpoint.CmisService, remoteEndpoint.CmisUserName, remoteEndpoint.CmisPassword);

                        switch (action)
                        {
                        case PublishingAction.Publish:
                            content.Published = true;
                            var categories = _textContentProvider.QueryCategories(content);
                            cmisService.AddTextContent(remoteEndpoint.RemoteRepositoryId, mapping.RemoteFolderId, content, categories);
                            queueItem.UtcProcessedPublishTime = DateTime.UtcNow;
                            break;

                        case PublishingAction.Unbpulish:
                            cmisService.DeleteTextContent(remoteEndpoint.RemoteRepositoryId, mapping.RemoteFolderId, content.UUID);
                            queueItem.UtcProcessedUnpublishTime = DateTime.UtcNow;
                            break;

                        case PublishingAction.None:
                        default:
                            break;
                        }
                        return;
                    }
                }
            }

            NoSuchObjectMessage(ref queueItem);
        }
コード例 #6
0
ファイル: CmisWcfClient.cs プロジェクト: nguyenhuy2911/CMS
        public void DeleteTextContent(string repositoryId, string folderId, string contentUUID)
        {
            var contentIntegrateId = new ContentIntegrateId(repositoryId, folderId, contentUUID);

            var service = GetService();

            var deleteObjectRequest = new deleteObjectRequest(repositoryId, contentIntegrateId.Id, true, GetcmisExtensionType());

            service.DeleteObject(deleteObjectRequest);
        }
コード例 #7
0
ファイル: CmisWcfClient.cs プロジェクト: nguyenhuy2911/CMS
        public string UpdateTextContent(string repositoryId, string folderId, TextContent textContent, IEnumerable <Category> categories)
        {
            return(HandleFault(() =>
            {
                var cmisProperties = Kooboo.CMS.Modules.CMIS.Services.Implementation.ModelHelper.ToCmisPropertiesType(textContent, categories);

                var service = GetService();

                var contentIntegrateId = new ContentIntegrateId(repositoryId, folderId, textContent.UUID);


                var updatePropertiesRequest = new updatePropertiesRequest(repositoryId, contentIntegrateId.Id, null, cmisProperties, GetcmisExtensionType());

                return service.UpdateProperties(updatePropertiesRequest).objectId;
            }));
        }
コード例 #8
0
        public getObjectResponse GetObject(getObjectRequest request)
        {
            var response    = new getObjectResponse();
            var integrateId = new ContentIntegrateId(request.objectId);

            var repository = ModelHelper.GetRepository(request.repositoryId);
            var folder     = ModelHelper.GetTextFolder(request.repositoryId, integrateId.FolderName);
            var uuid       = integrateId.ContentUUID;

            var content = folder.CreateQuery().WhereEquals("UUID", uuid).FirstOrDefault();


            if (content != null)
            {
                response.@object = ModelHelper.TocmisObjectType(content);
            }
            return(response);
        }
コード例 #9
0
        protected virtual void PublishTextContent(ref OutgoingQueue queueItem, RemoteEndpointSetting remoteEndpoint)
        {
            var contentIntegrateId = new ContentIntegrateId(queueItem.ObjectUUID);
            var repository         = new Repository(contentIntegrateId.Repository).AsActual();

            if (repository != null)
            {
                var textFolder = new TextFolder(repository, contentIntegrateId.FolderName).AsActual();
                if (textFolder != null)
                {
                    var contentUUID = contentIntegrateId.ContentUUID;

                    var content = textFolder.CreateQuery().WhereEquals("UUID", contentUUID).FirstOrDefault();
                    if (content != null)
                    {
                        var cmisService = _cmisSession.OpenSession(remoteEndpoint.CmisService, remoteEndpoint.CmisUserName, remoteEndpoint.CmisPassword);

                        switch (queueItem.Action)
                        {
                        case PublishingAction.Publish:
                            content.Published = true;
                            var categories = _textContentProvider.QueryCategories(content);
                            cmisService.AddTextContent(remoteEndpoint.RemoteRepositoryId, queueItem.RemoteFolderId, content, categories);
                            break;

                        case PublishingAction.Unbpulish:
                            cmisService.DeleteTextContent(remoteEndpoint.RemoteRepositoryId, queueItem.RemoteFolderId, content.UUID);
                            break;

                        case PublishingAction.None:
                        default:
                            queueItem.Status = QueueStatus.Processed;
                            break;
                        }
                        return;
                    }
                }
            }
            NoSuchObjectMessage(ref queueItem);
        }
コード例 #10
0
        private void PublicTextContent(ref LocalPublishingQueue queueItem, PublishingAction action)
        {
            var site = queueItem.Site;

            if (site != null)
            {
                var contentIntegrateId = new ContentIntegrateId(queueItem.ObjectUUID);
                var repository         = new Repository(contentIntegrateId.Repository).AsActual();;
                if (repository != null)
                {
                    var textFolder = new TextFolder(repository, contentIntegrateId.FolderName).AsActual();
                    if (textFolder != null)
                    {
                        var contentUUID = contentIntegrateId.ContentUUID;
                        if (action == PublishingAction.Publish)
                        {
                            _textContentManager.Publish(textFolder, contentUUID, queueItem.UserId);
                            queueItem.UtcProcessedPublishTime = DateTime.UtcNow;
                        }
                        else if (action == PublishingAction.Unbpulish)
                        {
                            _textContentManager.Unpublish(textFolder, contentUUID, queueItem.UserId);
                            queueItem.UtcProcessedUnpublishTime = DateTime.UtcNow;
                        }
                    }
                    else
                    {
                        NoSuchObjectMessage(ref queueItem);
                    }
                }
                else
                {
                    NoSuchObjectMessage(ref queueItem);
                }
            }
        }
コード例 #11
0
        public void DeleteTextContent(Site site, TextFolder textFolder, string integrateId, string vendor)
        {
            var integrate = new ContentIntegrateId(integrateId);

            _textContentManager.Delete(textFolder.Repository, textFolder, integrate.ContentUUID);
        }
コード例 #12
0
        private void RemotePublish(ref PublishingQueue queueItem, PublishingAction action)
        {
            var site = queueItem.Site;

            if (site != null)
            {
                switch (queueItem.PublishingObject)
                {
                case PublishingObject.Page:
                    if (queueItem.RemoteEndpoints != null)
                    {
                        var page = new Page(site, queueItem.ObjectUUID).AsActual();
                        if (page != null)
                        {
                            foreach (var remote in queueItem.RemoteEndpoints)
                            {
                                var outgoingQueue = new OutgoingQueue(queueItem.Site, Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10));
                                outgoingQueue.PublishingObject = queueItem.PublishingObject;
                                outgoingQueue.ObjectUUID       = queueItem.ObjectUUID;
                                outgoingQueue.RemoteEndpoint   = remote;
                                outgoingQueue.UtcCreationDate  = DateTime.UtcNow;
                                outgoingQueue.Status           = QueueStatus.Pending;
                                outgoingQueue.RetryTimes       = 0;
                                outgoingQueue.Action           = action;
                                outgoingQueue.PublishDraft     = queueItem.PublishDraft;
                                _outgoingQueueProvider.Add(outgoingQueue);
                            }
                        }
                        else
                        {
                            NoSuchObjectMessage(ref queueItem);
                        }
                    }
                    NoAnyEndPoint(ref queueItem);
                    break;

                case PublishingObject.TextContent:
                    if (queueItem.PublishingMappings != null)
                    {
                        var contentIntegrateId = new ContentIntegrateId(queueItem.ObjectUUID);
                        var repository         = new Repository(contentIntegrateId.Repository).AsActual();;
                        if (repository != null)
                        {
                            var textFolder = new TextFolder(repository, contentIntegrateId.FolderName).AsActual();
                            if (textFolder != null)
                            {
                                var contentUUID = contentIntegrateId.ContentUUID;

                                foreach (var mappingName in queueItem.PublishingMappings)
                                {
                                    var mapping = new RemoteTextFolderMapping();    //todo:AsActual
                                    if (mapping != null)
                                    {
                                        var outgoingQueue = new OutgoingQueue(queueItem.Site, Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10));
                                        outgoingQueue.PublishingObject = queueItem.PublishingObject;
                                        outgoingQueue.ObjectUUID       = queueItem.ObjectUUID;
                                        outgoingQueue.RemoteEndpoint   = mapping.RemoteEndpoint;
                                        outgoingQueue.RemoteFolderId   = mapping.RemoteFolderId;
                                        outgoingQueue.UtcCreationDate  = DateTime.UtcNow;
                                        outgoingQueue.Status           = QueueStatus.Pending;
                                        outgoingQueue.RetryTimes       = 0;
                                        outgoingQueue.Action           = action;
                                        outgoingQueue.PublishDraft     = queueItem.PublishDraft;
                                        _outgoingQueueProvider.Add(outgoingQueue);
                                    }
                                }
                            }
                            else
                            {
                                NoSuchObjectMessage(ref queueItem);
                            }
                        }
                        else
                        {
                            NoSuchObjectMessage(ref queueItem);
                        }
                    }
                    NoAnyEndPoint(ref queueItem);
                    break;

                default:
                    NoSuchPublishingObject(ref queueItem);
                    break;
                }
            }
        }
コード例 #13
0
        protected virtual void LocalPublish(ref PublishingQueue queueItem, PublishingAction action)
        {
            var site = queueItem.Site;

            if (site != null)
            {
                switch (queueItem.PublishingObject)
                {
                case PublishingObject.Page:
                    var page = new Page(site, queueItem.ObjectUUID).AsActual();
                    if (page != null)
                    {
                        if (action == PublishingAction.Publish)
                        {
                            _pageManager.Publish(page, queueItem.PublishDraft, queueItem.UserId);
                        }
                        else if (action == PublishingAction.Unbpulish)
                        {
                            _pageManager.Unpublish(page, queueItem.UserId);
                        }
                    }
                    else
                    {
                        NoSuchObjectMessage(ref queueItem);
                    }
                    break;

                case PublishingObject.TextContent:
                    var contentIntegrateId = new ContentIntegrateId(queueItem.ObjectUUID);
                    var repository         = new Repository(contentIntegrateId.Repository).AsActual();;
                    if (repository != null)
                    {
                        var textFolder = new TextFolder(repository, contentIntegrateId.FolderName).AsActual();
                        if (textFolder != null)
                        {
                            var contentUUID = contentIntegrateId.ContentUUID;
                            if (action == PublishingAction.Publish)
                            {
                                _textContentManager.Publish(textFolder, contentUUID, queueItem.UserId);
                            }
                            else if (action == PublishingAction.Unbpulish)
                            {
                                _textContentManager.Unpublish(textFolder, contentUUID, queueItem.UserId);
                            }
                        }
                        else
                        {
                            NoSuchObjectMessage(ref queueItem);
                        }
                    }
                    else
                    {
                        NoSuchObjectMessage(ref queueItem);
                    }
                    break;

                default:
                    NoSuchPublishingObject(ref queueItem);
                    break;
                }
            }

            queueItem.UtcProcessedTime = DateTime.UtcNow;
        }