protected override Result <(Price[], Position[])> GetInputs() { var pricesResult = ResultEx.TryCatch(GetInputPrices); if (pricesResult is Failure <Price[]> getPricesFail) { return(new Failure <(Price[], Position[])>(getPricesFail.Reason)); } var positionsResult = ResultEx.TryCatch(GetInputPositions); if (positionsResult is Failure <Position[]> getPostionsFail) { return(new Failure <(Price[], Position[])>(getPostionsFail.Reason)); } // finally we succeeded if (pricesResult is Success <Price[]> pricesSuccess && positionsResult is Success <Position[]> positionsSucces) { return(new Success <(Price[], Position[])>((pricesSuccess.Value, positionsSucces.Value))); } return(new Failure <(Price[], Position[])>("SequentalAppFlow.GetInputs - Fatal error.")); }