internal static void AssertEqual(this SalesOrder expected, ISalesOrderDetailReturn result) { if (expected == null) { throw new ArgumentNullException("expected"); } if (result == null) { throw new ArgumentNullException("result"); } Assert.AreEqual(expected.ToSalesOrderKey().KeyValue, result.MovementKey); Assert.AreEqual(expected.InventoryShipmentOrder.MoveNum, result.MoveNum); Assert.AreEqual(expected.Broker.ToCompanyKey().KeyValue, result.Broker.CompanyKey); Assert.AreEqual(expected.InventoryShipmentOrder.SourceFacility.ToFacilityKey().KeyValue, result.OriginFacility.FacilityKey); Assert.AreEqual(expected.InventoryShipmentOrder.ToShipmentInformationKey().KeyValue, result.Shipment.ShipmentKey); Assert.AreEqual(InventoryOrderEnum.CustomerOrder, result.Shipment.InventoryOrderEnum); Assert.AreEqual(expected.OrderStatus, result.SalesOrderStatus); Assert.AreEqual(expected.InventoryShipmentOrder.TakenBy, result.OrderTakenBy); Assert.AreEqual(expected.InventoryShipmentOrder.DateReceived, result.DateOrderReceived); Assert.AreEqual(expected.PaymentTerms, result.PaymentTerms); Assert.AreEqual(expected.CreditMemo, result.CreditMemo); Assert.AreEqual(expected.InvoiceDate, result.InvoiceDate); Assert.AreEqual(expected.InvoiceNotes, result.InvoiceNotes); Assert.AreEqual(expected.FreightCharge, result.FreightCharge); Assert.AreEqual(expected.InventoryShipmentOrder.PurchaseOrderNumber, result.PurchaseOrderNumber); Assert.AreEqual(expected.InventoryShipmentOrder.ShipmentInformation.ShipmentMethod, result.Shipment.TransitInformation.ShipmentMethod); expected.SoldTo.AssertEqual(result.ShipFromReplace); }
public IResult <ISalesOrderDetailReturn> GetSalesOrder(string salesOrderKey) { if (salesOrderKey == null) { throw new ArgumentNullException("salesOrderKey"); } ISalesOrderDetailReturn salesOrder = null; var select = SalesOrderProjectors.SplitSelectDetail(_inventoryShipmentOrderUnitOfWork, _timeStamper.CurrentTimeStamp); var orderKeyResult = KeyParserHelper.ParseResult <ISalesOrderKey>(salesOrderKey); if (orderKeyResult.Success) { var orderKey = orderKeyResult.ResultingObject.ToSalesOrderKey(); salesOrder = _inventoryShipmentOrderUnitOfWork.SalesOrderRepository.Filter(orderKey.FindByPredicate).SplitSelect(select).FirstOrDefault(); } if (salesOrder == null) { int moveNum; if (int.TryParse(salesOrderKey, out moveNum)) { salesOrder = _inventoryShipmentOrderUnitOfWork.SalesOrderRepository.Filter(o => o.InventoryShipmentOrder.MoveNum == moveNum).SplitSelect(select).FirstOrDefault(); } if (salesOrder == null) { return(orderKeyResult.Success ? new InvalidResult <ISalesOrderDetailReturn>(null, string.Format(UserMessages.SalesOrderNotFound, salesOrderKey)) : orderKeyResult.ConvertTo <ISalesOrderDetailReturn>()); } } return(new SuccessResult <ISalesOrderDetailReturn>(salesOrder)); }