Esempio n. 1
0
        internal static void AssertAsExpected(this ICreateChileMaterialsReceivedParameters parameters, ChileMaterialsReceived received)
        {
            Assert.AreEqual(parameters.DateReceived, received.DateReceived);
            Assert.AreEqual(parameters.LoadNumber, received.LoadNumber);
            Assert.AreEqual(parameters.PurchaseOrder, received.ChileLot.Lot.PurchaseOrderNumber);
            Assert.AreEqual(parameters.ShipperNumber, received.ChileLot.Lot.ShipperNumber);
            Assert.AreEqual(parameters.SupplierKey, received.ToCompanyKey().KeyValue);
            Assert.AreEqual(parameters.ChileProductKey, received.ToChileProductKey().KeyValue);

            var expectedItems = parameters.Items.ToList();
            var receivedItems = received.Items.ToList();

            Assert.AreEqual(expectedItems.Count, receivedItems.Count);
            foreach (var item in expectedItems)
            {
                var itemMatch = receivedItems.First(i =>
                {
                    try
                    {
                        item.AssertAsExpected(i);
                        return(true);
                    }
                    catch (Exception)
                    {
                        return(false);
                    }
                });
                receivedItems.Remove(itemMatch);
            }
        }
Esempio n. 2
0
 public IResult <string> CreateChileMaterialsReceived(ICreateChileMaterialsReceivedParameters parameters)
 {
     try
     {
         return(_materialsServiceProvider.CreateChileMaterialsReceived(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
Esempio n. 3
0
        public IResult <string> CreateChileMaterialsReceived(ICreateChileMaterialsReceivedParameters parameters)
        {
            var parseResult = parameters.ToParsedParameters();

            if (!parseResult.Success)
            {
                return(parseResult.ConvertTo <string>());
            }

            var result = new CreateChileMaterialsReceivedConductor(_materialsReceivedUnitOfWork).Execute(parseResult.ResultingObject, _timeStamper.CurrentTimeStamp);

            if (!result.Success)
            {
                return(result.ConvertTo <string>());
            }

            _materialsReceivedUnitOfWork.Commit();

            var lotKey = result.ResultingObject.ToLotKey();

            return(SyncParameters.Using(new SuccessResult <string>(lotKey), lotKey));
        }
Esempio n. 4
0
        internal static IResult <CreateChileMaterialsReceivedParameters> ToParsedParameters(this ICreateChileMaterialsReceivedParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            if (parameters.Items == null || !parameters.Items.Any())
            {
                return(new InvalidResult <CreateChileMaterialsReceivedParameters>(null, UserMessages.CannotCreateChileReceivedWithNoItems));
            }

            var chileProductKeyResult = KeyParserHelper.ParseResult <IChileProductKey>(parameters.ChileProductKey);

            if (!chileProductKeyResult.Success)
            {
                return(chileProductKeyResult.ConvertTo <CreateChileMaterialsReceivedParameters>());
            }

            var treatmentKey = KeyParserHelper.ParseResult <IInventoryTreatmentKey>(parameters.TreatmentKey);

            if (!treatmentKey.Success)
            {
                return(treatmentKey.ConvertTo <CreateChileMaterialsReceivedParameters>());
            }

            var supplierKey = KeyParserHelper.ParseResult <ICompanyKey>(parameters.SupplierKey);

            if (!supplierKey.Success)
            {
                return(supplierKey.ConvertTo <CreateChileMaterialsReceivedParameters>());
            }

            var items = new List <SetChileMaterialsReceivedItemParameters>();

            foreach (var item in parameters.Items)
            {
                var parsedItemResult = item.ToParsedParameters();
                if (!parsedItemResult.Success)
                {
                    return(parsedItemResult.ConvertTo <CreateChileMaterialsReceivedParameters>());
                }

                items.Add(parsedItemResult.ResultingObject);
            }

            return(new SuccessResult <CreateChileMaterialsReceivedParameters>(new CreateChileMaterialsReceivedParameters
            {
                Params = parameters,

                ChileProductKey = chileProductKeyResult.ResultingObject.ToChileProductKey(),
                SupplierKey = supplierKey.ResultingObject.ToCompanyKey(),
                TreatmentKey = treatmentKey.ResultingObject.ToInventoryTreatmentKey(),

                Items = items
            }));
        }