public int PostponeQueueItem(Guid queueItemId) { var userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection; int updateCount = 0; string message = string.Empty; try { if (userConnection == null) { throw new ArgumentNullException("UserConnection"); } var update = new Update(userConnection, "QueueItem") .Set("PostponesCount", new QueryColumnExpression(ArithmeticOperation.Addition, new QueryColumnExpression("PostponesCount"), new QueryColumnExpression(Column.Const(1)))) .Set("OperatorId", Column.Parameter(null, "Guid")) .Set("NextProcessingDate", Column.Const(null)) .Where("Id").IsEqual(new QueryParameter("QueueItemId", queueItemId)); updateCount = update.Execute(); message = string.Format(GetResourceValue(userConnection, "QueueItemPostponeUpdatedMessage"), queueItemId); QueuesUtilities.LogDebug(message); } catch (Exception e) { message = string.Format(GetResourceValue(userConnection, "InvokeMethodErrorMessage"), "PostponeQueueItem", e.Message); QueuesUtilities.LogError(message, e); throw; } return(updateCount); }
public void ChangeQueueItemDate(string processUId, long nextProcessingDateMilliseconds) { DateTime nextProcessingDate = new DateTime(1970, 01, 01).AddMilliseconds(nextProcessingDateMilliseconds); nextProcessingDate = DateTime.SpecifyKind(nextProcessingDate, DateTimeKind.Utc); var userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection; string message = string.Empty; try { if (userConnection == null) { throw new ArgumentNullException("UserConnection"); } Guid queueItemId = GetProcessQueueItemId(userConnection, processUId); var update = new Update(userConnection, "QueueItem") .Set("NextProcessingDate", new QueryParameter("NextProcessingDate", nextProcessingDate)) .Where("Id").IsEqual(new QueryParameter("QueueItemId", queueItemId)); update.Execute(); message = string.Format(GetResourceValue(userConnection, "QueueItemDateUpdatedMessage"), queueItemId, nextProcessingDate.ToString()); QueuesUtilities.LogDebug(message); } catch (Exception e) { message = string.Format(GetResourceValue(userConnection, "InvokeMethodErrorMessage"), "ChangeQueueItemDate", e.Message); QueuesUtilities.LogError(message, e); throw; } }
public void UpdateQueuesTrigger() { var appConnection = HttpContext.Current.Application["AppConnection"] as AppConnection; if (appConnection == null) { throw new ArgumentNullException("AppConnection"); } QueuesUtilities.UpdateQueuesTrigger(appConnection.SystemUserConnection); }
public void SubscribeForQueuesNotifications() { var userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection; if (userConnection == null) { throw new ArgumentNullException("UserConnection"); } var userId = userConnection.CurrentUser.Id; if (!QueuesUtilities.QueuesNotificationsSubscribers.Contains(userId)) { string message = string.Format( GetResourceValue(userConnection, "AddingUserToQueuesNotificationsSubscribersMessage"), userId); QueuesUtilities.LogDebug(message); QueuesUtilities.QueuesNotificationsSubscribers.Add(userId); } }
/// <summary> /// ######### ######## ####### ## ###### #######. /// </summary> /// <param name="userConnection">################ ###########.</param> /// <param name="folderEntity">###### #######.</param> /// <param name="entitySchemaName">######## ##### ####### #######.</param> /// <param name="queueId">############# #######.</param> /// <returns></returns> private int AddFolderEntityQueueItems(UserConnection userConnection, Entity folderEntity, string entitySchemaName, Guid queueId) { try { EntitySchemaManager entitySchemaManager = userConnection.EntitySchemaManager; var esq = new EntitySchemaQuery(entitySchemaManager, entitySchemaName); esq.PrimaryQueryColumn.IsVisible = true; Guid folderTypeId = folderEntity.GetTypedColumnValue <Guid>("FolderTypeId"); Guid folderId = folderEntity.PrimaryColumnValue; if (folderTypeId == SearchFolderTypeId) { byte[] searchData = folderEntity.GetBytesValue("SearchData"); string serializedFilter = Encoding.UTF8.GetString(searchData, 0, searchData.Length); if (serializedFilter.IsNullOrEmpty()) { return(0); } // TODO #CC-678 ########### # ######### ############## ######## ServiceStackTextHelper. Filters filters = Json.Deserialize <Filters>(serializedFilter); IEntitySchemaQueryFilterItem esqFilters = filters.BuildEsqFilter(entitySchemaName, userConnection); var queryFilterCollection = esqFilters as EntitySchemaQueryFilterCollection; if (queryFilterCollection.Count == 0) { return(0); } if (queryFilterCollection != null) { esq.Filters.LogicalOperation = queryFilterCollection.LogicalOperation; esq.Filters.IsNot = queryFilterCollection.IsNot; foreach (IEntitySchemaQueryFilterItem filter in queryFilterCollection) { esq.Filters.Add(filter); } } else { esq.Filters.Add(esqFilters); } } else if (folderTypeId == GeneralFolderTypeId) { esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, string.Format("[{0}InFolder:{0}:Id].Folder", entitySchemaName), folderId)); } Select select = esq.GetSelectQuery(userConnection); select = select .Column(new QueryParameter("QueueId", queueId)) .Column(new QueryParameter("StatusId", NewQueueItemStatusId)) .And().Not().Exists(new Select(userConnection) .Column("Id") .From("QueueItem") .Where(entitySchemaName, "Id").IsEqual("QueueItem", "EntityRecordId") .And("QueueItem", "QueueId").IsEqual(Column.Parameter(queueId))) as Select; var insertSelect = new InsertSelect(userConnection) .Into("QueueItem") .Set("EntityRecordId", "QueueId", "StatusId") .FromSelect(select); return(insertSelect.Execute()); } catch (Exception e) { QueuesUtilities.LogError(string.Format(GetResourceValue(userConnection, "InvokeMethodErrorMessage"), "AddFolderEntityQueueItems", e.Message), e); throw; } }