private void Validate(Item item, BonanzaEntry entry) { if (string.IsNullOrWhiteSpace(entry.Code)) { if (string.IsNullOrWhiteSpace(entry.FullDescription)) { entry.Message = "full description required"; entry.Status = StatusCode.Error; } if (entry.Q < 1) { entry.Message = "quantity must be greater than zero"; entry.Status = StatusCode.Error; } if (string.IsNullOrWhiteSpace(entry.Title)) { entry.Message = "title required"; entry.Status = StatusCode.Error; } } if (entry.Q > item.QtyAvailable) { entry.Message = "out of stock"; entry.Status = StatusCode.Error; } if (item.Department == null) { entry.Message = "department required"; entry.Status = StatusCode.Error; } if (entry.Title != null && entry.Title.Count() > 80) { entry.Message = "title max characters is 80"; entry.Status = StatusCode.Error; } }
private void UpdateGroup(Item item, IEnumerable <BonanzaEntry> group) { var active = item.BonanzaListingItems.Where(p => p.Listing.Marketplace.Code.Equals(_marketplaceCode) && !p.Listing.Status.Equals(BonanzaMarketplace.STATUS_ENDED)); var existingEntries = group.ToList(); foreach (var listingItem in active) { BonanzaEntry entry = existingEntries.FirstOrDefault(p => p.IsValid()); if (entry != null) { entry.Code = listingItem.Listing.Code; if (entry.Q.Value == listingItem.Quantity && decimal.Compare(entry.P.Value, listingItem.Price) == 0 && entry.GetUpdateFlags().Count == 0) { entry.Status = StatusCode.Completed; } else { entry.Message = string.Format("({0}|{1})", listingItem.Quantity, Math.Round(listingItem.Price, 2)); } existingEntries.Remove(entry); } else { entry = existingEntries.FirstOrDefault(p => !p.IsValid()); if (entry != null) { entry.Message = "modified by program"; existingEntries.Remove(entry); } else { entry = new BonanzaEntry(); entry.Sku = item.ItemLookupCode; entry.Brand = item.SubDescription1; entry.ClassName = item.ClassName; entry.Message = "added by program"; _addedEntries.Add(entry); } entry.Format = "GTC"; entry.Code = listingItem.Listing.Code; entry.P = listingItem.Price; entry.Q = listingItem.Quantity; entry.FullDescription = listingItem.Listing.FullDescription; entry.Title = listingItem.Listing.Title; entry.Status = StatusCode.Completed; } } foreach (var entry in existingEntries) { BonanzaListing listing = _dataContext.BonanzaListings.SingleOrDefault(p => p.Sku.Equals(item.ClassName) && !p.Status.Equals(BonanzaMarketplace.STATUS_ENDED)); if (listing != null) { if (!entry.IsValid()) { entry.Code = listing.Code; entry.Title = listing.Title; entry.FullDescription = listing.FullDescription; entry.Format = "GTC"; entry.Message = "modified by program"; } else if (entry.Format.Equals("GTC")) { entry.Code = listing.Code; entry.Message = "modified by program"; } } } }