public HttpResponseMessage Edit(Data.EFModels.RepricingInformation repricingInformation) { if (repricingInformation == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "RepricingInformation object cannot be null.")); } using (AmazonMWSdb amazonMwSdb = m_amazonMwSdbService.GetContextInstance()) { if (repricingInformation.RepricingInformationId == 0) { RepricingInformation repricingInformationCreated = amazonMwSdb.RepricingInformations.Add(repricingInformation); amazonMwSdb.SaveChanges(); repricingInformation = repricingInformationCreated; } else { amazonMwSdb.RepricingInformations.Attach(repricingInformation); var entry = amazonMwSdb.Entry(repricingInformation); entry.State = EntityState.Modified; amazonMwSdb.SaveChanges(); } return(Request.CreateResponse(HttpStatusCode.OK, repricingInformation)); } }
public static UpdatedItemPrice CalculateNewPrice(string sku, string asin, RepricingInformation repricingInfo, ListingOffers listingOffers, decimal?myPrice) { UpdatedItemPrice updatedItemPrice = null; decimal minPrice = repricingInfo.MinimumPrice; if (listingOffers == null && myPrice.HasValue) { decimal newPrice = (myPrice.Value > minPrice) ? myPrice.Value + 0.01m : minPrice * 1.15m; newPrice = decimal.Round(newPrice, 2); updatedItemPrice = new UpdatedItemPrice(sku, newPrice, asin, minPrice, null, null, null, null, null, myPrice, null); } else if (listingOffers != null) { updatedItemPrice = CalculateNewPriceFromOffers(sku, asin, listingOffers.Offers, listingOffers.PublishDateTime, minPrice, listingOffers.ListingOffersSource); } return(updatedItemPrice); }