예제 #1
0
        public IResult <ISampleOrderMatchingSummaryReportReturn> GetSampleOrderMatchingSummaryReport(string sampleOrderKey, string itemKey)
        {
            var keyResult = KeyParserHelper.ParseResult <ISampleOrderKey>(sampleOrderKey);

            if (!keyResult.Success)
            {
                return(keyResult.ConvertTo <ISampleOrderMatchingSummaryReportReturn>());
            }

            SampleOrderItemKey orderItemKey = null;

            if (!string.IsNullOrWhiteSpace(itemKey))
            {
                var itemKeyResult = KeyParserHelper.ParseResult <ISampleOrderItemKey>(itemKey);
                if (!itemKeyResult.Success)
                {
                    return(itemKeyResult.ConvertTo <ISampleOrderMatchingSummaryReportReturn>());
                }
                orderItemKey = itemKeyResult.ResultingObject.ToSampleOrderItemKey();
            }

            var result = _sampleOrderUnitOfWork.SampleOrderRepository
                         .Filter(keyResult.ResultingObject.ToSampleOrderKey().FindByPredicate)
                         .Select(SampleOrderProjectors.SelectMatchingSummaryReport(orderItemKey))
                         .FirstOrDefault();

            return(new SuccessResult <ISampleOrderMatchingSummaryReportReturn>(result));
        }
예제 #2
0
        internal static IResult <SetSampleOrderItemParameters> ToParsedParameters(this ISampleOrderItemParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            SampleOrderItemKey itemKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.SampleOrderItemKey))
            {
                var itemKeyResult = KeyParserHelper.ParseResult <ISampleOrderItemKey>(parameters.SampleOrderItemKey);
                if (!itemKeyResult.Success)
                {
                    return(itemKeyResult.ConvertTo <SetSampleOrderItemParameters>());
                }

                itemKey = itemKeyResult.ResultingObject.ToSampleOrderItemKey();
            }

            ProductKey productKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.ProductKey))
            {
                var chileProductKeyResult = KeyParserHelper.ParseResult <IProductKey>(parameters.ProductKey);
                if (!chileProductKeyResult.Success)
                {
                    return(chileProductKeyResult.ConvertTo <SetSampleOrderItemParameters>());
                }

                productKey = chileProductKeyResult.ResultingObject.ToProductKey();
            }

            LotKey lotKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.LotKey))
            {
                var chileLotKeyResult = KeyParserHelper.ParseResult <ILotKey>(parameters.LotKey);
                if (!chileLotKeyResult.Success)
                {
                    return(chileLotKeyResult.ConvertTo <SetSampleOrderItemParameters>());
                }

                lotKey = chileLotKeyResult.ResultingObject.ToLotKey();
            }

            return(new SuccessResult <SetSampleOrderItemParameters>(new SetSampleOrderItemParameters
            {
                Parameters = parameters,

                SampleOrderItemKey = itemKey,
                ProductKey = productKey,
                LotKey = lotKey
            }));
        }