private void CompareItems(TradeExportData input, TradeData output) { Assert.AreEqual(input.StyleNo, output.StyleNo); Assert.AreEqual(input.Description1 ?? string.Empty, output.Description1); Assert.AreEqual(input.Description2 ?? string.Empty, output.Description2); Assert.AreEqual(input.Description4 ?? string.Empty, output.Description4); Assert.AreEqual(input.PrimaryVendor ?? string.Empty, output.PrimaryVendor); Assert.AreEqual(input.SeasonName ?? string.Empty, output.SeasonName); Assert.AreEqual(input.TaxGroupCode ?? string.Empty, output.TaxGroupCode); Assert.AreEqual(input.TaxCategory ?? string.Empty, output.TaxCategory); Assert.AreEqual(input.BrandName ?? string.Empty, output.BrandName); Assert.AreEqual(true, output.Replenishment); Assert.AreEqual(input.CountryOfOrigin ?? string.Empty, output.CountryOfOrigin); Assert.AreEqual(input.CustomLongText1 ?? string.Empty, output.CustomLongText1); Assert.AreEqual(input.CustomLongText2 ?? string.Empty, output.CustomLongText2); Assert.AreEqual(input.CustomLongText3 ?? string.Empty, output.CustomLongText3); Assert.AreEqual(input.CustomLongText4 ?? string.Empty, output.CustomLongText4); Assert.AreEqual(input.CustomLongText5 ?? string.Empty, output.CustomLongText5); Assert.AreEqual(input.CustomLongText6 ?? string.Empty, output.CustomLongText6); Assert.AreEqual(string.Empty, output.CustomLongText7); Assert.AreEqual(string.Empty, output.CustomLongText8); Assert.AreEqual(string.Empty, output.CustomLongText9); Assert.AreEqual(string.Empty, output.CustomLongText10); Assert.AreEqual(string.Empty, output.CustomLongText11); Assert.AreEqual(string.Empty, output.CustomLongText12); Assert.AreEqual(string.Empty, output.Manufacturer); Assert.AreEqual(input.SubClass1.Substring(0, 1), output.Department); Assert.AreEqual(input.OrderCost, output.OrderCost); var item = output.Items.Single(); Assert.AreEqual(6, item.WeeksOfSupply); Assert.AreEqual(input.EID, item.Eid); Assert.AreEqual(input.CLU, item.Clu); var upc = item.UPCs.Single(); Assert.AreEqual(input.UPCValue, upc.Value); Assert.AreEqual(true, upc.IsDefault); Assert.AreEqual(input.Attribute1 ?? string.Empty, item.Attribute1); Assert.AreEqual(input.Attribute2 ?? string.Empty, item.Attribute2); Assert.AreEqual(input.Height ?? default(decimal), item.Height); Assert.AreEqual(input.Weight ?? default(decimal), item.Weight); Assert.AreEqual(input.Width ?? default(decimal), item.Width); Assert.AreEqual(input.Length ?? default(decimal), item.Length); Assert.AreEqual(input.ReleaseDate ?? null, item.ReleaseDate); Assert.AreEqual(false, item.NotTrackOh); Assert.AreEqual(true, item.TradeDiscount); Assert.AreEqual(true, item.MemberDiscount); Assert.AreEqual(false, item.Inactive); Assert.AreEqual(true, item.RequireDiscountAuthorizationCode); Assert.AreEqual(true, item.AcceptToken); Assert.AreEqual(true, item.AutoPromptToPayWithTokens); Assert.AreEqual(true, item.EligibleForLoyaltyRewards2); Assert.AreEqual(1, item.LoyaltyRewards2Ratio); Assert.AreEqual(input.ItemCost ?? default(decimal), item.OrderCost); Assert.AreEqual(input.CustomDate1 ?? null, item.CustomDate1); Assert.AreEqual(false, item.CustomFlag3); Assert.AreEqual(false, item.CustomFlag4); Assert.AreEqual(false, item.CustomFlag5); Assert.AreEqual(false, item.CustomFlag6); Assert.AreEqual(false, item.CustomFlag7); Assert.AreEqual(0, item.CustomNumber3); Assert.AreEqual(0, item.CustomNumber4); Assert.AreEqual(0, item.CustomNumber5); Assert.AreEqual(0, item.CustomNumber6); Assert.AreEqual(0, item.CustomNumber7); Assert.AreEqual(0, item.CustomNumber8); Assert.AreEqual(0, item.CustomNumber9); Assert.AreEqual(input.CustomText1 ?? string.Empty, item.CustomText1); Assert.AreEqual(input.CustomText2 ?? string.Empty, item.CustomText2); Assert.AreEqual(string.Empty, item.CustomText3); Assert.AreEqual(string.Empty, item.CustomText4); Assert.AreEqual(input.CustomText5 ?? string.Empty, item.CustomText5); Assert.AreEqual(string.Empty, item.CustomText6); Assert.AreEqual(string.Empty, item.CustomText7); Assert.AreEqual(string.Empty, item.CustomText8); Assert.AreEqual(input.CustomText9 ?? string.Empty, item.CustomText9); Assert.AreEqual(string.Empty, item.CustomText10); Assert.AreEqual(string.Empty, item.CustomText11); Assert.AreEqual(string.Empty, item.CustomText12); Assert.AreEqual(input.SubClass1 ?? string.Empty, item.SubClass1); Assert.AreEqual(input.SubClass2 ?? string.Empty, item.Subclass2); if (!string.IsNullOrWhiteSpace(item.SubClass1)) { if (item.SubClass1.Length == 6) { string elementClass = item.SubClass1.Substring(3, 3); switch (item.SubClass1.Substring(0, 3).ToLowerInvariant()) { case "p10": elementClass = "1" + elementClass; break; case "m10": elementClass = "2" + elementClass; break; case "g10": elementClass = "3" + elementClass; break; case "f10": elementClass = "6" + elementClass; break; } Assert.AreEqual(elementClass, item.Class); } } Assert.AreEqual(input.BasePrice, item.BasePrice); this.ComparePricing(item.Prices, upc.Value, item.SubClass1, input.BasePrice); }
private TradeData CreateTradeDataElement(TradeExportData data) { if (string.IsNullOrWhiteSpace(data.StyleNo)) { throw new Exception("data has empty StyleNo"); } TradeData output = new TradeData(); Item item = new Item(); Upc upc = new Upc(); var pricing = _pricingEngine.CalculatePrices(data.StyleNo, data.SubClass1 ?? string.Empty, data.BasePrice); output.StyleNo = data.StyleNo; output.Description1 = data.Description1 ?? string.Empty; output.Description2 = data.Description2 ?? string.Empty; output.Description4 = data.Description4 ?? string.Empty; output.PrimaryVendor = data.PrimaryVendor ?? string.Empty; output.SeasonName = data.SeasonName ?? string.Empty; output.TaxGroupCode = data.TaxGroupCode ?? string.Empty; output.TaxCategory = data.TaxCategory ?? string.Empty; output.BrandName = data.BrandName ?? string.Empty; output.Replenishment = true; output.CountryOfOrigin = data.CountryOfOrigin ?? string.Empty; output.CustomLongText1 = data.CustomLongText1 ?? string.Empty; output.CustomLongText2 = data.CustomLongText2 ?? string.Empty; output.CustomLongText3 = data.CustomLongText3 ?? string.Empty; output.CustomLongText4 = data.CustomLongText4 ?? string.Empty; output.CustomLongText5 = data.CustomLongText5 ?? string.Empty; output.CustomLongText6 = data.CustomLongText6 ?? string.Empty; output.CustomLongText7 = string.Empty; output.CustomLongText8 = string.Empty; output.CustomLongText9 = string.Empty; output.CustomLongText10 = string.Empty; output.CustomLongText11 = string.Empty; output.CustomLongText12 = string.Empty; output.Manufacturer = string.Empty; output.Department = string.IsNullOrEmpty(data.SubClass1) ? string.Empty : data.SubClass1.Substring(0, 1); output.OrderCost = data.OrderCost; item.WeeksOfSupply = 6; item.Eid = data.EID; item.Clu = data.CLU; upc.Value = data.UPCValue; upc.IsDefault = true; item.UPCs.Add(upc); item.Attribute1 = data.Attribute1 ?? string.Empty; item.Attribute2 = data.Attribute2 ?? string.Empty; if (data.Height.HasValue) { item.Height = data.Height.Value; } if (data.Weight.HasValue) { item.Weight = data.Weight.Value; } if (data.Width.HasValue) { item.Width = data.Width.Value; } if (data.Length.HasValue) { item.Length = data.Length.Value; } item.BasePrice = data.BasePrice; foreach (var outputPrice in _pricingEngine.CalculatePrices(data.StyleNo, data.SubClass1, data.BasePrice)) { Price price = new Price { PriceLevel = outputPrice.TWRLevel, PricePrice = outputPrice.Price }; item.Prices.Add(price); } if (data.ReleaseDate.HasValue) { item.ReleaseDate = data.ReleaseDate.Value; } item.NotTrackOh = false; item.TradeDiscount = true; item.MemberDiscount = true; item.Inactive = false; item.RequireDiscountAuthorizationCode = true; item.AcceptToken = true; item.AutoPromptToPayWithTokens = true; item.EligibleForLoyaltyRewards2 = true; item.LoyaltyRewards2Ratio = 1; if (data.ItemCost.HasValue) { item.OrderCost = data.ItemCost.Value; } if (data.CustomDate1.HasValue) { item.CustomDate1 = data.CustomDate1.Value; } item.CustomFlag3 = false; item.CustomFlag4 = false; item.CustomFlag5 = false; item.CustomFlag6 = false; item.CustomFlag7 = false; item.CustomNumber3 = 0; item.CustomNumber4 = 0; item.CustomNumber5 = 0; item.CustomNumber6 = 0; item.CustomNumber7 = 0; item.CustomNumber8 = 0; item.CustomNumber9 = 0; item.CustomText1 = data.CustomText1 ?? string.Empty; item.CustomText2 = data.CustomText2 ?? string.Empty; item.CustomText3 = string.Empty; item.CustomText4 = string.Empty; item.CustomText5 = data.CustomText5 ?? string.Empty; item.CustomText6 = string.Empty; item.CustomText7 = string.Empty; item.CustomText8 = string.Empty; item.CustomText9 = data.CustomText9 ?? string.Empty; item.CustomText10 = string.Empty; item.CustomText11 = string.Empty; item.CustomText12 = string.Empty; item.SubClass1 = data.SubClass1 ?? string.Empty; item.Subclass2 = data.SubClass2 ?? string.Empty; if (!string.IsNullOrWhiteSpace(item.SubClass1)) { if (item.SubClass1.Length == 6) { string elementClass = item.SubClass1.Substring(3, 3); switch (item.SubClass1.Substring(0, 3).ToLowerInvariant()) { case "p10": elementClass = "1" + elementClass; break; case "m10": elementClass = "2" + elementClass; break; case "g10": elementClass = "3" + elementClass; break; case "f10": elementClass = "6" + elementClass; break; } item.Class = elementClass; } } output.Items.Add(item); return(output); }