コード例 #1
0
        internal static void AssertEqual(this ISetSampleOrderParameters expected, SampleOrder result)
        {
            if (!string.IsNullOrWhiteSpace(expected.SampleOrderKey))
            {
                Assert.AreEqual(expected.SampleOrderKey, result.ToSampleOrderKey().KeyValue);
            }

            Assert.AreEqual(expected.DateDue, result.DateDue);
            Assert.AreEqual(expected.DateReceived, result.DateReceived);
            Assert.AreEqual(expected.DateCompleted, result.DateCompleted);
            Assert.AreEqual(expected.Status, result.Status);
            Assert.AreEqual(expected.Active, result.Active);
            Assert.AreEqual(expected.Comments, result.Comments);
            Assert.AreEqual(expected.PrintNotes, result.PrintNotes);
            Assert.AreEqual(expected.Volume, result.Volume);
            Assert.AreEqual(expected.ShipToCompany, result.ShipToCompany);
            Assert.AreEqual(expected.ShipmentMethod, result.ShipmentMethod);
            Assert.AreEqual(expected.FOB, result.FOB);

            if (!string.IsNullOrWhiteSpace(expected.BrokerKey))
            {
                Assert.AreEqual(expected.BrokerKey, result.Broker.ToCompanyKey().KeyValue);
            }
            else
            {
                Assert.IsNull(result.Broker);
            }

            if (!string.IsNullOrWhiteSpace(expected.RequestedByCompanyKey))
            {
                Assert.AreEqual(expected.RequestedByCompanyKey, result.RequestCustomer.ToCustomerKey().KeyValue);
            }
            else
            {
                Assert.IsNull(result.RequestCustomer);
            }

            expected.RequestedByShippingLabel.AssertEquivalent(result.Request);
            expected.ShipToShippingLabel.AssertEquivalent(result.ShipTo);

            Assert.AreEqual(expected.Items.Count(), result.Items.Count);
            foreach (var item in expected.Items)
            {
                Assert.IsTrue(result.Items.Any(i =>
                {
                    try
                    {
                        item.AssertEqual(i);
                        return(true);
                    }
                    catch
                    {
                        return(false);
                    }
                }));
            }
        }
コード例 #2
0
 public IResult <string> SetSampleOrder(ISetSampleOrderParameters parameters)
 {
     try
     {
         return(_sampleOrderServiceProvider.SetSampleOrder(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
コード例 #3
0
        public IResult <string> SetSampleOrder(ISetSampleOrderParameters parameters)
        {
            var parsedParameters = parameters.ToParsedParameters();

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

            var conductorResult = new SetSampleOrderConductor(_sampleOrderUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parsedParameters.ResultingObject);

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

            _sampleOrderUnitOfWork.Commit();

            var sampleOrderKey = conductorResult.ResultingObject.ToSampleOrderKey();

            return(SyncParameters.Using(new SuccessResult <string>(sampleOrderKey), new SyncSampleOrderParameters {
                SampleOrderKey = sampleOrderKey
            }));
        }
コード例 #4
0
        internal static IResult <SetSampleOrderParameters> ToParsedParameters(this ISetSampleOrderParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            SampleOrderKey sampleOrderKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.SampleOrderKey))
            {
                var sampleOrderKeyResult = KeyParserHelper.ParseResult <ISampleOrderKey>(parameters.SampleOrderKey);
                if (!sampleOrderKeyResult.Success)
                {
                    return(sampleOrderKeyResult.ConvertTo <SetSampleOrderParameters>());
                }

                sampleOrderKey = sampleOrderKeyResult.ResultingObject.ToSampleOrderKey();
            }

            CustomerKey requestCustomerKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.RequestedByCompanyKey))
            {
                var customerKeyResult = KeyParserHelper.ParseResult <ICustomerKey>(parameters.RequestedByCompanyKey);
                if (!customerKeyResult.Success)
                {
                    return(customerKeyResult.ConvertTo <SetSampleOrderParameters>());
                }

                requestCustomerKey = customerKeyResult.ResultingObject.ToCustomerKey();
            }

            CompanyKey brokerKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.BrokerKey))
            {
                var companyKey = KeyParserHelper.ParseResult <ICompanyKey>(parameters.BrokerKey);
                if (!companyKey.Success)
                {
                    return(companyKey.ConvertTo <SetSampleOrderParameters>());
                }

                brokerKey = companyKey.ResultingObject.ToCompanyKey();
            }

            var itemParameters = parameters.Items.ToParsedParameters(ToParsedParameters);

            if (!itemParameters.Success)
            {
                return(itemParameters.ConvertTo <SetSampleOrderParameters>());
            }

            return(new SuccessResult <SetSampleOrderParameters>(new SetSampleOrderParameters
            {
                Parameters = parameters,
                SampleOrderKey = sampleOrderKey,
                RequestCustomerKey = requestCustomerKey,
                BrokerKey = brokerKey,

                Items = itemParameters.ResultingObject
            }));
        }