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;
 }
示例#2
0
        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
            });
        }