コード例 #1
0
 private void SplitBoxToParts()
 {
     foreach (var item in _context.Boxes)
     {
         if (item.PART_COUNT > 0)
         {
             item.ShipmentParts = new List <ShipmentParts>();
             var mod        = item.WEIGHT % item.PART_COUNT;
             var partWeight = (item.WEIGHT - mod) / item.PART_COUNT;
             for (int i = 0; i < item.PART_COUNT; i++)
             {
                 ShipmentParts part = new ShipmentParts();
                 part.BOX_ID      = item.BOX_ID;
                 part.PART_COST   = 0;
                 part.PART_NUMBER = i + 1;
                 if (mod != 0)
                 {
                     part.PART_WEIGHT = partWeight + 1;
                     mod--;
                 }
                 else
                 {
                     part.PART_WEIGHT = partWeight;
                 }
                 part.PART_COST = CalculatePrice(part.PART_WEIGHT);
                 item.ShipmentParts.Add(part);
                 _context.Update(item);
             }
         }
     }
 }
コード例 #2
0
            private void SplitBoxToParts()
            {
                var mod = Box.WEIGHT % PartCount;

                if (mod == Box.WEIGHT)
                {
                    return;
                }

                var partWeight = (Box.WEIGHT - mod) / PartCount;

                for (int i = 0; i < PartCount; i++)
                {
                    ShipmentParts part = new ShipmentParts();
                    part.BOX_ID      = Box.BOX_ID;
                    part.PART_COST   = 0;
                    part.PART_NUMBER = i + 1;
                    if (mod != 0)
                    {
                        part.PART_WEIGHT = partWeight + 1;
                        mod--;
                    }
                    else
                    {
                        part.PART_WEIGHT = partWeight;
                    }
                    Box.ShipmentParts.Add(part);
                }
            }