コード例 #1
0
ファイル: JDFQueue.cs プロジェクト: cip4/JDFLibNet
        ///
        ///	 <summary> * if the outgoing device processor is accepting new entries
        ///	 *  </summary>
        ///	 * <returns> true, if new entries are accepted </returns>
        ///
        public virtual bool canExecute()
        {
            EnumQueueStatus status = getQueueStatus();

            if (EnumQueueStatus.Blocked.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Held.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Full.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Running.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Waiting.Equals(status))
            {
                return(true);
            }
            // if(EnumQueueStatus.Blocked.equals(status))
            // blocked or null(illegal)
            return(numEntries(EnumQueueEntryStatus.Running) < maxRunningEntries);
        }
コード例 #2
0
ファイル: JDFQueue.cs プロジェクト: cip4/JDFLibNet
        public virtual EnumQueueStatus setStatusFromEntries()
        {
            // EnumQueueStatus queueStatus = getQueueStatus();
            EnumQueueStatus newStatus = null;

            if (bAccepting)
            {
                if (bProcessing)
                {
                    bool maxRunning_ = maxRunning();
                    bool maxWaiting_ = maxWaiting();
                    if (!maxRunning_)
                    {
                        if (!maxWaiting_)
                        {
                            newStatus = EnumQueueStatus.Waiting;
                        }
                        else
                        {
                            newStatus = EnumQueueStatus.Closed;
                        }
                    }
                    else if (!maxWaiting_)
                    {
                        newStatus = EnumQueueStatus.Running;
                    }
                    else
                    {
                        newStatus = EnumQueueStatus.Full;
                    }
                }
                else
                // accepting but not processing
                {
                    newStatus = EnumQueueStatus.Held;
                }
            }
            else
            // queue is closed
            {
                if (bProcessing)
                {
                    newStatus = EnumQueueStatus.Closed;
                }
                else
                // accepting but not processing
                {
                    newStatus = EnumQueueStatus.Blocked;
                }
            }

            if (newStatus != null)
            {
                setQueueStatus(newStatus);
            }

            return(newStatus);
        }
コード例 #3
0
ファイル: JDFQueue.cs プロジェクト: cip4/JDFLibNet
        ///
        ///	 <summary> * if the incoming queue processor is accepting new entries
        ///	 *  </summary>
        ///	 * <returns> true, if new entries are accepted </returns>
        ///
        public virtual bool canAccept()
        {
            EnumQueueStatus status = getQueueStatus();

            if (EnumQueueStatus.Blocked.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Closed.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Full.Equals(status))
            {
                return(false);
            }
            if (EnumQueueStatus.Waiting.Equals(status))
            {
                return(true);
            }
            // if(EnumQueueStatus.Blocked.equals(status))
            // blocked or null(illegal)
            return(hasAttribute(AttributeName.QUEUESIZE) ? numEntries(null) < getQueueSize() : !maxWaiting());
        }
コード例 #4
0
        public SrirachaEmailMessage AddReceipientResult(string emailMessageId, EnumQueueStatus status, string emailAddress, Exception err = null)
		{
            if (string.IsNullOrEmpty(emailAddress))
            {
                throw new ArgumentNullException("emailAddress");
            }
            var message = _documentSession.LoadEnsure<SrirachaEmailMessage>(emailMessageId);
            if(message.EmailAddressList == null || !message.EmailAddressList.Contains(emailAddress))
            {
                throw new RecordNotFoundException(typeof(SrirachaEmailMessage), "EmailAddress", emailAddress);
            }
			var data = new SrirachaEmailMessage.SrirachaEmailMessageRecipientResult
			{
				Id = Guid.NewGuid().ToString(),
				SrirachaEmailMessageId = emailMessageId,
				EmailAddress = emailAddress,
				Status = status,
				StatusDateTimeUtc = DateTime.UtcNow,
                CreatedByUserName = _userIdentity.UserName,
                CreatedDateTimeUtc = DateTime.UtcNow,
                UpdatedByUserName = _userIdentity.UserName,
                UpdatedDateTimeUtc = DateTime.UtcNow
			};
			if(err != null)
			{
				data.Details = err.ToString();
			}
			message.RecipientResultList.Add(data);
            message.UpdatedByUserName = _userIdentity.UserName;
            message.UpdatedDateTimeUtc = DateTime.UtcNow;
			return _documentSession.SaveEvict(message);
		}
コード例 #5
0
		public SrirachaEmailMessage UpdateMessageStatus(string emailMessageId, EnumQueueStatus status)
		{
			var item = _documentSession.Load<SrirachaEmailMessage>(emailMessageId);
			if(item == null)
			{
				throw new RecordNotFoundException(typeof(SrirachaEmailMessage), "Id", emailMessageId);
			}
			item.Status = status;
            item.UpdatedByUserName = _userIdentity.UserName;
            item.UpdatedDateTimeUtc = DateTime.UtcNow;
			return _documentSession.SaveEvict(item);
		}
コード例 #6
0
 static JDFAutoQueue()
 {
     atrInfoTable[0]  = new AtrInfoTable(AttributeName.STATUS, 0x22222222, AttributeInfo.EnumAttributeType.enumeration, EnumQueueStatus.getEnum(0), null);
     atrInfoTable[1]  = new AtrInfoTable(AttributeName.DEVICEID, 0x22222222, AttributeInfo.EnumAttributeType.shortString, null, null);
     atrInfoTable[2]  = new AtrInfoTable(AttributeName.QUEUESIZE, 0x33333311, AttributeInfo.EnumAttributeType.integer, null, null);
     elemInfoTable[0] = new ElemInfoTable(ElementName.DEVICE, 0x33333333);
     elemInfoTable[1] = new ElemInfoTable(ElementName.QUEUEENTRY, 0x33333333);
 }
コード例 #7
0
 ///
 ///          <summary> * (9) get attribute Status </summary>
 ///          * <returns> the value of the attribute </returns>
 ///
 public virtual EnumQueueStatus getQueueStatus()
 {
     return(EnumQueueStatus.getEnum(getAttribute(AttributeName.STATUS, null, null)));
 }
コード例 #8
0
        // ************************************************************************
        // * Attribute getter / setter
        // * ************************************************************************
        //

        //         ---------------------------------------------------------------------
        //        Methods for Attribute Status
        //        ---------------------------------------------------------------------
        ///
        ///          <summary> * (5) set attribute Status </summary>
        ///          * <param name="enumVar">: the enumVar to set the attribute to </param>
        ///
        public virtual void setQueueStatus(EnumQueueStatus enumVar)
        {
            setAttribute(AttributeName.STATUS, enumVar == null ? null : enumVar.getName(), null);
        }