예제 #1
0
        /// <summary>
        /// Ensures an <see cref="OrganizationCourtStatus"/> is not <see cref="OrganizationCourtStatus.Pending"/>.
        /// </summary>
        public static void EnsureIsNotPending(this OrganizationCourtStatus status)
        {
            var isPending = status.IsPending();

            if (isPending)
            {
                status.ThrowWasStillPendingException();
            }
        }
예제 #2
0
        public static T ChooseByDecision <T>(this OrganizationCourtStatus status,
                                             T approved,
                                             T denied)
        {
            status.EnsureIsDecided();

            if (status.IsApproved())
            {
                return(approved);
            }
            else
            {
                return(denied);
            }
        }
예제 #3
0
        public static T ChooseByDecision <T>(this OrganizationCourtStatus status,
                                             Func <T> approved,
                                             Func <T> denied)
        {
            status.EnsureIsDecided();

            if (status.IsApproved())
            {
                var approvedValue = approved();
                return(approvedValue);
            }
            else
            {
                var deniedValue = denied();
                return(deniedValue);
            }
        }
예제 #4
0
        public static T Switch <T>(this OrganizationCourtStatus organizationCourtStatus, T approved, T denied, T pending)
        {
            switch (organizationCourtStatus)
            {
            case OrganizationCourtStatus.Approved:
                return(approved);

            case OrganizationCourtStatus.Denied:
                return(denied);

            case OrganizationCourtStatus.DeniedWithReroute:
                return(denied);

            case OrganizationCourtStatus.Pending:
                return(pending);

            default:
                throw EnumerationHelper.SwitchDefaultCaseException(organizationCourtStatus);
            }
        }
        public static string ToStandardRepresentation(OrganizationCourtStatus organizationCourtStatus)
        {
            switch (organizationCourtStatus)
            {
            case OrganizationCourtStatus.Approved:
                return(OrganizationCourtStatusHelper.StandardRepresentation.Approved);

            case OrganizationCourtStatus.Denied:
                return(OrganizationCourtStatusHelper.StandardRepresentation.Denied);

            case OrganizationCourtStatus.DeniedWithReroute:
                return(OrganizationCourtStatusHelper.StandardRepresentation.DeniedWithReroute);

            case OrganizationCourtStatus.Pending:
                return(OrganizationCourtStatusHelper.StandardRepresentation.Pending);

            default:
                throw EnumerationHelper.SwitchDefaultCaseException(organizationCourtStatus);
            }
        }
예제 #6
0
        public static bool IsDenied(this OrganizationCourtStatus status)
        {
            var isDenied = status == OrganizationCourtStatus.Denied || status == OrganizationCourtStatus.DeniedWithReroute;

            return(isDenied);
        }
예제 #7
0
        public static bool IsDecided(this OrganizationCourtStatus status)
        {
            var isDecided = !status.IsPending();

            return(isDecided);
        }
예제 #8
0
        public static bool IsApproved(this OrganizationCourtStatus status)
        {
            var isApproved = status == OrganizationCourtStatus.Approved;

            return(isApproved);
        }
예제 #9
0
 /// <summary>
 /// Ensures an <see cref="OrganizationCourtStatus"/> has been decided (and is not still <see cref="OrganizationCourtStatus.Pending"/>).
 /// </summary>
 /// <remarks>
 /// Uses <see cref="OrganizationCourtStatusExtensions.EnsureIsNotPending(OrganizationCourtStatus)"/>.
 /// </remarks>
 public static void EnsureIsDecided(this OrganizationCourtStatus status)
 {
     status.EnsureIsNotPending();
 }
예제 #10
0
        public static string ToStringStandard(this OrganizationCourtStatus status)
        {
            var standardRepresentation = OrganizationCourtStatusHelper.ToStandardRepresentation(status);

            return(standardRepresentation);
        }
예제 #11
0
 public static void ThrowWasStillPendingException(this OrganizationCourtStatus status)
 {
     throw OrganizationCourtStatusHelper.GetApprovalWasStillPendingException();
 }
예제 #12
0
        public static bool IsPending(this OrganizationCourtStatus status)
        {
            var isPending = status == OrganizationCourtStatus.Pending;

            return(isPending);
        }