/// <summary>
        /// Rows the quota for item number.
        /// </summary>
        /// <param name="itemNumber">The item number.</param>
        /// <returns></returns>
        public UPSERowQuota RowQuotaForItemNumber(string itemNumber)
        {
            UPSERowQuota rowQuota = this.rowQuotaDictionary.ValueOrDefault(itemNumber);

            if (rowQuota == null)
            {
                UPSEQuota quota = this.quotaDictionary.ValueOrDefault(itemNumber);
                if (quota == null)
                {
                    quota = new UPSEQuota(itemNumber, this);
                    this.quotaDictionary.SetObjectForKey(quota, itemNumber);
                }

                rowQuota = new UPSERowQuota(itemNumber, this.articleConfigurationDictionary[itemNumber], quota, this);
                if (this.rowQuotaDictionary != null)
                {
                    this.rowQuotaDictionary.SetObjectForKey(rowQuota, itemNumber);
                }
                else
                {
                    this.rowQuotaDictionary = new Dictionary <string, UPSERowQuota> {
                        { itemNumber, rowQuota }
                    };
                }
            }

            return(rowQuota);
        }
        private void ApplyQuotaResult(UPCRMResult result)
        {
            int count = result.RowCount;

            this.quotaDictionary = new Dictionary <string, UPSEQuota>();
            for (int i = 0; i < count; i++)
            {
                UPCRMResultRow row = (UPCRMResultRow)result.ResultRowAtIndex(i);
                Dictionary <string, object> dict = row.ValuesWithFunctions();
                string itemNumber = dict.ValueOrDefault(this.ItemNumberFunctionName) as string;
                if (string.IsNullOrEmpty(itemNumber))
                {
                    continue;
                }

                UPSEQuota quota = this.quotaDictionary.ValueOrDefault(itemNumber);
                if (quota == null)
                {
                    quota = new UPSEQuota(itemNumber, this);
                    this.quotaDictionary.SetObjectForKey(quota, itemNumber);
                }

                quota.ApplyRecordIdentificationValues(row.RootRecordIdentification, dict);
            }

            this.Finished();
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPSERowQuota"/> class.
 /// </summary>
 /// <param name="itemNumber">The item number.</param>
 /// <param name="articleConfiguration">The article configuration.</param>
 /// <param name="quota">The quota.</param>
 /// <param name="quotaHandler">The quota handler.</param>
 public UPSERowQuota(string itemNumber, UPSEArticleQuotaConfiguration articleConfiguration, UPSEQuota quota, UPSEQuotaHandler quotaHandler)
 {
     this.ArticleConfiguration = articleConfiguration;
     this.Quota        = quota;
     this.QuotaHandler = quotaHandler;
     this.ItemNumber   = itemNumber;
     this.InitialCount = 0;
     this.CurrentCount = 0;
 }