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)); }
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 })); }