/// <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(); }
/// <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; }