public RedirectToRouteResult RemoveFromCart(Cart cart, string EbayListingId, string returnUrl) { Guid guidID = Guid.Parse(EbayListingId); EbayListing listing = _repository.GetEbayListings().FirstOrDefault(x => x.EbayListingId == guidID); if (listing != null) { cart.RemoveLine(listing); } return(RedirectToAction("Index", new { returnUrl })); }
public void AddItem(EbayListing item, int quantity) { var listing = _lineCollection.FirstOrDefault(x => x.EbayListing.EbayListingId == item.EbayListingId); if (listing == null) { _lineCollection.Add(new CartLine { EbayListing = item, Quantity = quantity }); } else { listing.Quantity += quantity; } }
private EbayOrderItem CreateOrderItem(EbayOrder order, TransactionType orderItemDto) { EbayOrderItem orderItem = new EbayOrderItem(); string sku = orderItemDto.Variation == null ? orderItemDto.Item.SKU : orderItemDto.Variation.SKU; string listingID = orderItemDto.Item.ItemID; EbayListing listing = _marketplace.Listings.Single(p => p.Code.Equals(listingID)); orderItem.ListingItem = listing.ListingItems.Single(p => p.Sku.Equals(sku)); orderItem.Order = order; orderItem.CreatedDate = orderItemDto.CreatedDate; orderItem.Code = orderItemDto.OrderLineItemID; return(orderItem); }
private void PublishEntries(IEnumerable <EbayEntry> entries) { var pendingEntries = entries.Cast <EbayEntry>(); using (_dataContext = new berkeleyEntities()) { _marketplace = _dataContext.EbayMarketplaces.Single(p => p.Code.Equals(_marketplaceCode)); var update = entries.Where(p => !string.IsNullOrWhiteSpace(p.Code)).GroupBy(p => p.Code); foreach (var entryGroup in update) { EbayListing listing = _marketplace.Listings.Single(p => p.Code.Equals(entryGroup.Key)); TryUpdateListing(listing, entryGroup); } var pendingCreate = entries.Where(p => string.IsNullOrWhiteSpace(p.Code)); var individuals = pendingCreate.Where(p => !p.IsVariation()); var variations = pendingCreate.Where(p => p.IsVariation()).GroupBy(p => p.ClassName); foreach (var entryGroup in variations) { TryCreateListing(entryGroup, true); } foreach (var entry in individuals) { TryCreateListing(new List <EbayEntry>() { entry }, false); } } }
private void TryUpdateListing(EbayListing listing, IEnumerable <EbayEntry> entries) { try { entries.ToList().ForEach(p => p.Status = StatusCode.Processing); UpdateListing(listing, entries); foreach (var entry in entries) { entry.Command = string.Empty; entry.Status = StatusCode.Completed; } } catch (Exception e) { foreach (var entry in entries) { entry.Message = e.Message; entry.Status = StatusCode.Error; } } }
private void UpdateListing(EbayListing listing, IEnumerable <EbayEntry> entries) { ListingDto listingDto = new ListingDto(); listingDto.Code = listing.Code; listingDto.Format = entries.First(p => !string.IsNullOrWhiteSpace(p.Format)).GetFormat(); listingDto.Brand = entries.First(p => !string.IsNullOrWhiteSpace(p.Brand)).Brand; listingDto.IsVariation = (bool)listing.IsVariation; if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Template))) { listingDto.Template = entries.First(p => !string.IsNullOrWhiteSpace(p.Template)).Template; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Design))) { listingDto.Design = entries.First(p => !string.IsNullOrWhiteSpace(p.Design)).Design; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.FullDescription))) { listingDto.FullDescription = entries.First(p => !string.IsNullOrWhiteSpace(p.FullDescription)).FullDescription; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Title))) { if ((bool)listing.IsVariation) { listingDto.Title = GetParentTitle(entries.First(p => !string.IsNullOrWhiteSpace(p.Title))); } else { listingDto.Title = entries.First(p => !string.IsNullOrWhiteSpace(p.Title)).Title; } } foreach (EbayEntry entry in entries) { ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Sku = entry.Sku; listingItemDto.Qty = entry.Q; listingItemDto.Price = entry.P; listingDto.Items.Add(listingItemDto); } var activeListingItems = listing.ListingItems.Where(p => p.Quantity != 0); foreach (EbayListingItem listingItem in activeListingItems) { if (!listingDto.Items.Any(p => p.Sku.Equals(listingItem.Sku))) { ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Sku = listingItem.Sku; listingItemDto.Qty = listingItem.Quantity; listingItemDto.Price = listingItem.Price; listingDto.Items.Add(listingItemDto); } } var activeSkus = activeListingItems.Select(p => p.Item.ItemLookupCode); bool mustIncludeProductData = listingDto.Items.Any(p => !activeSkus.Any(s => s.Equals(p.Sku))); bool includeTemplate = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("TEMPLATE"))); bool includeProductData = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("PRODUCTDATA"))) || mustIncludeProductData; if (listingDto.Items.All(p => p.Qty == 0)) { _ebayServices.End(_marketplace.ID, listing.Code, "Publisher"); } else { _ebayServices.Revise(_marketplace.ID, listingDto, includeProductData, includeTemplate, "Publisher"); } }
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"; } } } }
public void RemoveLine(EbayListing product) { _lineCollection.RemoveAll(p => p.EbayListing.EbayListingId == product.EbayListingId); }