Ejemplo n.º 1
0
        protected virtual void AddLog(IncomeQueue queueItem, QueueStatus logStatus, Exception e = null)
        {
            PublishingLog log = new PublishingLog()
            {
                UUID             = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(20),
                QueueType        = QueueType.Incoming,
                QueueUUID        = queueItem.UUID,
                ObjectTitle      = queueItem.ObjectTitle,
                SiteName         = queueItem.SiteName,
                PublishingObject = queueItem.PublishingObject,
                ObjectUUID       = queueItem.ObjectUUID,
                //PublishingType = PublishingType.Remote,
                RemoteEndpoint    = null,
                TextFolderMapping = null,
                UserId            = queueItem.Vendor,
                Status            = logStatus,
                Vendor            = queueItem.Vendor,
                UtcProcessedTime  = queueItem.UtcProcessedTime,
                Message           = e == null ? queueItem.Message : e.Message,
                StackTrace        = e == null ? "" : e.StackTrace,
                PublishingAction  = queueItem.Action,
                QueueObject       = queueItem
            };

            _publishingLogProvider.Add(log);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
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);
            }
        }
Ejemplo n.º 4
0
        public string UpdateTextContent(Site site, TextFolder textFolder, string uuid, System.Collections.Specialized.NameValueCollection values, [System.Runtime.InteropServices.OptionalAttribute][System.Runtime.InteropServices.DefaultParameterValueAttribute("")] string userid, string vendor)
        {
            var schema      = textFolder.GetSchema();
            var textContent = new TextContent(textFolder.Repository.Name, textFolder.SchemaName, textFolder.FullName);

            textContent = _textContentBinder.Bind(schema, textContent, values);

            IncomeQueue incomeQueue = new IncomeQueue()
            {
                Message          = null,
                Object           = new Dictionary <string, object>(textContent),
                ObjectUUID       = textContent.IntegrateId,
                ObjectTitle      = textContent.GetSummary(),
                Vendor           = vendor,
                PublishingObject = PublishingObject.TextContent,
                Action           = PublishingAction.Publish,
                SiteName         = site.FullName,
                Status           = QueueStatus.Pending,
                UtcCreationDate  = DateTime.UtcNow,
                UtcProcessedTime = null,
                UUID             = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10)
            };

            _incomeQueueProvider.Add(incomeQueue);

            return(textContent.IntegrateId);
        }
Ejemplo n.º 5
0
 public virtual void Delete(string[] uuids)
 {
     foreach (string uuid in uuids)
     {
         var model = new IncomeQueue(uuid).AsActual();
         this._incomeQueueProvider.Remove(model);
     }
 }
Ejemplo n.º 6
0
        public virtual void ProcessQueueItem(IncomeQueue queueItem)
        {
            Exception   exception = null;
            QueueStatus logStatus = QueueStatus.OK;

            try
            {
                queueItem.UtcProcessedTime = DateTime.UtcNow;

                switch (queueItem.PublishingObject)
                {
                case PublishingObject.Page:
                    PublishPage(ref queueItem);
                    break;

                case PublishingObject.TextContent:
                    PublishTextContent(ref queueItem);
                    break;

                default:
                    break;
                }
                queueItem.Status = QueueStatus.Processed;

                if (queueItem.Status == QueueStatus.Warning)
                {
                    logStatus = QueueStatus.Warning;
                }
                else
                {
                    logStatus = QueueStatus.OK;
                }
            }
            catch (Exception e)
            {
                Kooboo.HealthMonitoring.Log.LogException(e);
                queueItem.Status  = QueueStatus.Warning;
                exception         = e;
                queueItem.Message = e.Message;
            }

            if (queueItem.Status == QueueStatus.Processed)
            {
                _incomeQueueProvider.Remove(queueItem);
            }
            else
            {
                _incomeQueueProvider.Update(queueItem, queueItem);
            }

            AddLog(queueItem, logStatus, exception);
        }
Ejemplo n.º 7
0
        public void DeletePage(Site site, string pageId, string vendor)
        {
            IncomeQueue incomeQueue = new IncomeQueue()
            {
                Message          = null,
                Object           = null,
                ObjectUUID       = pageId,
                ObjectTitle      = pageId,
                Vendor           = vendor,
                PublishingObject = PublishingObject.Page,
                Action           = PublishingAction.Unbpulish,
                SiteName         = site.FullName,
                Status           = QueueStatus.Pending,
                UtcCreationDate  = DateTime.UtcNow,
                UtcProcessedTime = null,
                UUID             = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10)
            };

            _incomeQueueProvider.Add(incomeQueue);
        }
Ejemplo n.º 8
0
        protected virtual void PublishPage(ref IncomeQueue queueItem)
        {
            var  site = new Site(queueItem.SiteName).AsActual();
            Page page;

            if (site != null)
            {
                switch (queueItem.Action)
                {
                case PublishingAction.Publish:
                    var pageProperties = (Page)queueItem.Object;

                    page = new Page(site, queueItem.ObjectUUID);

                    MapProperties(pageProperties, page);

                    if (page.Exists())
                    {
                        _pageManager.Remove(site, page);
                    }
                    _pageManager.Add(site, page);
                    break;

                case PublishingAction.Unbpulish:
                    var pageId = queueItem.ObjectUUID;
                    page = new Page(site, pageId);
                    _pageManager.Remove(site, page);
                    break;

                case PublishingAction.None:
                    break;

                default:
                    break;
                }
            }
            else
            {
                NoSuchSiteMessage(ref queueItem);
            }
        }
Ejemplo n.º 9
0
 private void NoSuchSiteMessage(ref IncomeQueue queueItem)
 {
     queueItem.Status  = QueueStatus.Warning;
     queueItem.Message = string.Format("No such site:{0}".Localize(), queueItem.ObjectUUID);
 }