private void Validate(Item item, EbayEntry entry) { if (entry.GetFormat().Equals(EbayMarketplace.FORMAT_AUCTION)) { if (entry.Q > 1) { entry.Message = "auction max qty is 1"; entry.Status = StatusCode.Error; } } if (string.IsNullOrWhiteSpace(entry.Code)) { if (entry.StartDate != null && entry.StartDate < DateTime.UtcNow) { entry.Message = "cannot schedule in the past"; entry.Status = StatusCode.Error; } 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 <EbayEntry> group) { var active = item.EbayListingItems.Where(p => p.Listing.Marketplace.Code.Equals(_marketplaceCode) && p.Listing.Status.Equals(EbayMarketplace.STATUS_ACTIVE)); var entries = group.ToList(); foreach (var listingItem in active) { string format = listingItem.Listing.Format.Equals(EbayMarketplace.FORMAT_STOREFIXEDPRICE) ? EbayMarketplace.FORMAT_FIXEDPRICE : listingItem.Listing.Format; EbayEntry entry = entries.FirstOrDefault(p => p.IsValid() && p.GetFormat().Equals(format)); if (entry != null) { entry.Code = listingItem.Listing.Code; entry.SetFormat(listingItem.Listing.Format, listingItem.Listing.Duration, (bool)listingItem.Listing.IsVariation); 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}|{2})", listingItem.FormatCode, listingItem.Quantity, Math.Round(listingItem.Price, 2)); } entries.Remove(entry); } else { entry = entries.FirstOrDefault(p => p.IsValid() == false); if (entry != null) { entry.Message = "modified by program"; entries.Remove(entry); } else { entry = new EbayEntry(); entry.Brand = item.SubDescription1; entry.ClassName = item.ClassName; entry.Sku = item.ItemLookupCode; entry.Message = "added by program"; entry.ParentRowIndex = group.First().RowIndex; _addedEntries.Add(entry); } entry.Code = listingItem.Listing.Code; entry.SetFormat(listingItem.Listing.Format, listingItem.Listing.Duration, (bool)listingItem.Listing.IsVariation); entry.P = listingItem.Price; entry.Q = listingItem.Quantity; entry.Title = listingItem.Listing.Title; entry.FullDescription = listingItem.Listing.FullDescription; entry.Status = StatusCode.Completed; } } foreach (var entry in entries) { EbayListing listing = _dataContext.EbayListings.SingleOrDefault(p => p.Sku.Equals(item.ClassName) && p.Status.Equals(EbayMarketplace.STATUS_ACTIVE) && p.Marketplace.Code.Equals(_marketplaceCode)); if (listing != null) { if (!entry.IsValid()) { entry.Code = listing.Code; entry.Title = listing.Title; entry.FullDescription = listing.FullDescription; entry.SetFormat(listing.Format, listing.Duration, (bool)listing.IsVariation); entry.Message = "modified by program"; } else if (entry.GetFormat().Equals(EbayMarketplace.FORMAT_FIXEDPRICE)) { entry.Code = listing.Code; entry.SetFormat(listing.Format, listing.Duration, (bool)listing.IsVariation); entry.Message = "modified by program"; } } } }