public ActionResult Create() { var model = new RemoteEndpointSetting(); model.Enabled = true; return(View(model)); }
public virtual void ProcessQueueItem(OutgoingQueue queueItem) { Exception exception = null; queueItem.RetryTimes = queueItem.RetryTimes + 1; queueItem.UtcLastExecutedTime = DateTime.UtcNow; var remoteEndpoint = new RemoteEndpointSetting(queueItem.Site, queueItem.RemoteEndpoint).AsActual(); if (remoteEndpoint != null) { try { switch (queueItem.PublishingObject) { case PublishingObject.Page: PublishPage(ref queueItem, remoteEndpoint); break; case PublishingObject.TextContent: PublishTextContent(ref queueItem, remoteEndpoint); break; default: break; } queueItem.Status = QueueStatus.Processed; } catch (Exception e) { Kooboo.HealthMonitoring.Log.LogException(e); exception = e; var maxRetryTimes = remoteEndpoint.MaxRetryTimes > 0 ? remoteEndpoint.MaxRetryTimes : 5; if (queueItem.RetryTimes < maxRetryTimes) { queueItem.Status = QueueStatus.Pending; } else { queueItem.Status = QueueStatus.Susppended; } } } else { NoAnyEndPoint(ref queueItem, queueItem.RemoteEndpoint); } if (queueItem.Status == QueueStatus.Processed) { _outgoingQueueProvider.Remove(queueItem); } else { _outgoingQueueProvider.Update(queueItem, queueItem); } AddLog(queueItem, exception); }
public virtual void Delete(string[] uuids) { foreach (string uuid in uuids) { var model = new RemoteEndpointSetting(uuid).AsActual(); this._remoteSettingProvider.Remove(model); } }
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); }
protected virtual void PublishPage(ref RemotePublishingQueue queueItem, PublishingAction action, out RemoteEndpointSetting remoteEndpoint) { remoteEndpoint = new RemoteEndpointSetting() { SiteName = queueItem.SiteName, Name = queueItem.RemoteEndpoint }.AsActual(); if (remoteEndpoint == null) { NoSuchEndpoint(ref queueItem, queueItem.RemoteEndpoint); } var site = new Site(queueItem.SiteName).AsActual(); if (site != null) { var page = new Page(site, queueItem.ObjectUUID).AsActual(); if (page != null) { var cmisService = _cmisSession.OpenSession(remoteEndpoint.CmisService, remoteEndpoint.CmisUserName, remoteEndpoint.CmisPassword); switch (action) { case PublishingAction.Publish: if (queueItem.PublishDraft) { page = ((IPageProvider)_pageManager.Provider).GetDraft(page); } page.Published = true; cmisService.AddPage(remoteEndpoint.RemoteRepositoryId, page); queueItem.UtcProcessedPublishTime = DateTime.UtcNow; break; case PublishingAction.Unbpulish: page.Published = false; cmisService.DeletePage(remoteEndpoint.RemoteRepositoryId, page.FullName); queueItem.UtcProcessedUnpublishTime = DateTime.UtcNow; break; case PublishingAction.None: default: queueItem.Status = QueueStatus.Processed; break; } } else { NoSuchObjectMessage(ref queueItem); } } else { NoSuchObjectMessage(ref queueItem); } }
public virtual IEnumerable <RelationModel> Relations(RemoteEndpointSetting remoteEndpointSetting) { var allTextFolderMappings = _textFolderMappingProvider.All(remoteEndpointSetting.Site); return(allTextFolderMappings.Select(it => it.AsActual()).Where(it => it.RemoteEndpoint.EqualsOrNullEmpty(remoteEndpointSetting.UUID, StringComparison.OrdinalIgnoreCase)) .Select(it => new RelationModel() { ObjectUUID = it.UUID, RelationObject = it.RemoteEndpoint, RelationType = "Text folder mapping" })); }
public ActionResult Create(RemoteEndpointSetting setting, string @return) { var resultEntry = new JsonResultData(ModelState); if (ModelState.IsValid) { resultEntry.RunWithTry((data) => { _manager.Add(setting); data.RedirectUrl = @return; }); } return(Json(resultEntry)); }
public virtual void Delete(Site site, string[] uuids) { foreach (string uuid in uuids) { var model = new RemoteEndpointSetting(site, uuid).AsActual(); if (model != null) { if (Relations(model).Count() > 0) { throw new Exception(string.Format("'{0}' is being used".Localize(), uuid)); } this._remoteSettingProvider.Remove(model); } } }
public ActionResult Edit(RemoteEndpointSetting setting, string @return) { var resultEntry = new JsonResultData(ModelState); if (ModelState.IsValid) { resultEntry.RunWithTry((data) => { var oldModel = _manager.Get(setting.UUID); _manager.Update(setting, oldModel); resultEntry.RedirectUrl = @return; }); } return(Json(resultEntry)); }
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); }
public virtual void ProcessQueueItem(RemotePublishingQueue queueItem, DateTime executeTime) { Exception exception = null; //bool hasMoreAction; QueueStatus logStatus = QueueStatus.OK; var goingActionInfo = queueItem.GoingActionInfo; RemoteEndpointSetting remoteEndpoint = null; if (goingActionInfo.TimeSpanToProcess > TimeSpan.Zero) { return; } try { queueItem.RetryTimes = queueItem.RetryTimes + 1; queueItem.Message = null; if (goingActionInfo.TimeSpanToProcess == null && goingActionInfo.HasNextAction == false) { queueItem.Status = QueueStatus.Processed; } else { if (goingActionInfo.HasNextAction) { queueItem.Status = QueueStatus.Pending; } else { queueItem.Status = QueueStatus.Processed; } if (goingActionInfo.PublishingAction != PublishingAction.None) { switch (queueItem.PublishingObject) { case PublishingObject.Page: PublishPage(ref queueItem, goingActionInfo.PublishingAction, out remoteEndpoint); break; case PublishingObject.TextContent: PublishTextContent(ref queueItem, goingActionInfo.PublishingAction, out remoteEndpoint); break; default: break; } } } if (queueItem.Status == QueueStatus.Warning) { logStatus = QueueStatus.Warning; } else { logStatus = QueueStatus.OK; } if (goingActionInfo.HasNextAction) { queueItem.RetryTimes = 0; } } catch (Exception e) { Kooboo.HealthMonitoring.Log.LogException(e); queueItem.Status = QueueStatus.Warning; queueItem.Message = e.Message; exception = e; logStatus = QueueStatus.Warning; if (remoteEndpoint != null) { var maxRetryTimes = remoteEndpoint.MaxRetryTimes > 0 ? remoteEndpoint.MaxRetryTimes : 5; if (queueItem.RetryTimes < maxRetryTimes) { queueItem.Status = QueueStatus.Pending; } else { queueItem.Status = QueueStatus.Susppended; } } else { queueItem.Status = QueueStatus.Susppended; } } if (queueItem.Status == QueueStatus.Processed) { _remotePublishingQueueProvider.Remove(queueItem); } else { _remotePublishingQueueProvider.Update(queueItem, queueItem); } if (goingActionInfo.PublishingAction != PublishingAction.None) { AddLog(queueItem, logStatus, goingActionInfo.PublishingAction, exception); } }