示例#1
0
        /// <summary>
        ///     更新订单行
        /// </summary>
        /// <param name="line">订单行DTO</param>
        /// <param name="orderLine">订单行</param>
        private void UpdateOrderLine(EngineLeaseOrderLineDTO line, EngineLeaseOrderLine orderLine)
        {
            // 获取飞机物料机型
            var material =
                _materialRepository.GetFiltered(m => m.Id == line.EngineMaterialId)
                    .OfType<EngineMaterial>()
                    .FirstOrDefault();
            var pnReg = _pnRegRepository.GetFiltered(p => p.Pn == material.Pn).FirstOrDefault();
            if (material == null)
            {
                throw new ArgumentException("未能获取飞机物料!");
            }

            // 更新订单行
            orderLine.UpdateOrderLine(line.UnitPrice, line.Amount, line.Discount, line.EstimateDeliveryDate);
            orderLine.SetEngineMaterial(line.EngineMaterialId);

            // 更新合同发动机
            var contractEngine = _contractEngineRepository.Get(orderLine.ContractEngineId);
            contractEngine.SetRankNumber(line.RankNumber);
            contractEngine.SetSerialNumber(line.SerialNumber);
            contractEngine.SetPart(pnReg);
        }