예제 #1
0
        public OperationStatus With(OperationStatus operationStatus)
        {
            var newFlag = Flag | operationStatus.Flag;

            newFlag = (this.Failed() || operationStatus.Failed()) ? newFlag.RemoveFlag(OperationStatusFlag.Succeeded) : newFlag;
            newFlag = newFlag.Succeeded() ? newFlag.RemoveFlag(OperationStatusFlag.BestEffort) : newFlag;

            var reasons = Reasons.Concat(operationStatus.Reasons);

            return(new OperationStatus(newFlag, reasons));
        }
예제 #2
0
        public OperationStatus With(OperationStatusFlag flag, string reason)
        {
            var newFlag = Flag | flag;

            newFlag = (this.Failed() || flag.Failed()) ? newFlag.RemoveFlag(OperationStatusFlag.Succeeded) : newFlag;
            newFlag = newFlag.Succeeded() ? newFlag.RemoveFlag(OperationStatusFlag.BestEffort) : newFlag;

            var reasons = reason == null ? Reasons : Reasons.Concat(reason);

            return(new OperationStatus(newFlag, reasons));
        }