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); }
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); }
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); } }
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); }
public virtual void Delete(string[] uuids) { foreach (string uuid in uuids) { var model = new IncomeQueue(uuid).AsActual(); this._incomeQueueProvider.Remove(model); } }
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); }
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); }
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); } }
private void NoSuchSiteMessage(ref IncomeQueue queueItem) { queueItem.Status = QueueStatus.Warning; queueItem.Message = string.Format("No such site:{0}".Localize(), queueItem.ObjectUUID); }