public MailItemViewModel(DTOOrderItem item) { ASIN = item.ASIN; ItemOrderId = item.ItemOrderId; ItemPriceCurrency = item.ItemPriceCurrency; ItemPrice = item.ItemPrice; Weight = item.Weight; Quantity = item.Quantity; StyleItemId = item.StyleItemId; StyleString = item.StyleId; StyleId = item.StyleEntityId; }
private static IList <DTOOrderItem> FindByWeightThenPriceEquals(IList <DTOOrderItem> items, double minDeltaThreshold) { var currentWeightDelta = minDeltaThreshold; var currentPriceDelta = decimal.MaxValue; DTOOrderItem minFirstItem = null; DTOOrderItem minSecondItem = null; for (int i = 0; i < items.Count; i++) { var firstItem = items[i]; for (int j = i + 1; j < items.Count; j++) { var weightDelta = Math.Abs(firstItem.Weight - items[j].Weight); if (MathHelper.Compare(weightDelta, currentWeightDelta) <= 0) { var priceDelta = Math.Abs(firstItem.PricePerItem - items[j].PricePerItem); if (MathHelper.Compare(weightDelta, currentWeightDelta) == 0) { if (priceDelta < currentPriceDelta) { minFirstItem = firstItem; minSecondItem = items[j]; currentWeightDelta = weightDelta; currentPriceDelta = priceDelta; } else { //Nothing, weight the same, price is better } } else { minFirstItem = firstItem; minSecondItem = items[j]; currentWeightDelta = weightDelta; currentPriceDelta = priceDelta; } } } } if (minFirstItem == null || minSecondItem == null) { return(null); } return(new List <DTOOrderItem>() { minFirstItem, minSecondItem }); }