Beispiel #1
0
        public ValidationResultOr <TResult> Try <TResult>(Func <TRight, ValidationResultOr <TResult> > func)
        {
            if (either.IsLeft)
            {
                return(new ValidationResultOr <TResult>(either.GetLeftUnsafe(), IsNull));
            }

            if (func == null)
            {
                return(new ValidationResultOr <TResult>(new ValidationResult(ValidationMessage.Fehler("Hier darf kein null stehen"))));
            }

            try
            {
                ValidationResultOr <TResult> result = func.Invoke(either.GetRightUnsafe());

                if (result.either.IsLeft || result.either.GetRightUnsafe() != null)
                {
                    return(result);
                }
                var validationMessage = new ValidationMessage($"{typeof(TResult)} darf nicht null sein.", ValidationLevel.Error);
                return(new ValidationResultOr <TResult>(new ValidationResult(validationMessage), true));
            }
            catch (Exception e)
            {
                var result = new ValidationMessage(e);
                return(new ValidationResultOr <TResult>(new ValidationResult(result)));
            }
        }
Beispiel #2
0
        public ValidationResultOr <TResult> Try <TResult>(Func <TRight, TResult> func)
        {
            if (either.IsLeft)
            {
                return(new ValidationResultOr <TResult>(ValidationResult, IsNull));
            }

            if (func == null)
            {
                return(new ValidationResultOr <TResult>(new ValidationResult(ValidationMessage.Fehler("Hier darf kein null stehen"))));
            }

            try
            {
                TResult resultFromFunction = func.Invoke(either.GetRightUnsafe());

                if (resultFromFunction == null)
                {
                    return(new ValidationResultOr <TResult>(new ValidationResult(new ValidationMessage($"Die Funktion {func.Method} hat null zurückgegeben", ValidationLevel.Error)), true));
                }

                return(resultFromFunction);
            }
            catch (Exception e)
            {
                return(new ValidationResult(new ValidationMessage(e)));
            }
        }