Wiele przekazywanych parametrow typu bool

0

Cześć, Dobry wieczór,

Siedzę i główkuje i dopadła mnie bezradność. Piszę autotest i doszedłem do etapu, w którym mam dwa kłopoty:

  1. Pierwszy to taki, że wpadłem w ifologie i nie wiem jak z niej wyjsc a wydaje mi sie ze nie jest to zbyt eleganckie
  2. Drugi to taki, ze przekazuje duzo parametrow i w wiekszosci sa to boole. Chcialem to jakos ladnie obudowac, wrzucic do enuma np ale czytam rozne mądre wywody i moja glowa nie jest na obecną chwile w stanie tego przetrawic.

Czy moze jest jakas mądra osoba, która pomogłaby mi w owych problemach?
Z góry dziekuje

 public AdmissionsStagesMappingPage EditAdmissionsStagesMapping(AdmissionsStagesMappingEntity value,
            bool acceptedStage, bool acceptedOffered, bool declinedStage, bool editChoice, bool okWithoutWait)
        {
            if (editChoice)
            {
                _admissionsStagesMapping.Edit().EditRecord("Admissions Offered Stage", "Enrolled Registered");

            }
            else
            {
                _admissionsStagesMapping.Edit().EditRecord("Admissions Offered Stage", "Application Started");

            }
            FillEditAdmissionsStageMapping(value, acceptedStage, acceptedOffered, declinedStage, okWithoutWait);

            return this;
        }

        public void FillEditAdmissionsStageMapping(AdmissionsStagesMappingEntity value, bool acceptedStage, bool acceptedOffered, bool declinedStage, bool okWithoutWait)
        {
            if (acceptedStage)
            {
                _admissionsStagesMapping.AdmissionsAcceptedStage().SelectValue(value.AdmissionsAcceptedStage);
            }

            if (acceptedOffered)
            {
                _admissionsStagesMapping.ChangeAdmissionsOfferedStage().SelectValue(value.AdmissionsOfferedStage);
            }

            if (declinedStage)
            {
                _admissionsStagesMapping.AdmissionsDeclinedStage().SelectValue(value.AdmissionsDeclinedStage);
            }

            if (okWithoutWait)
            {
                Dialog.ClickOk();
            }
            else
            {
                _admissionsStagesMapping.Ok.Click();
            }
        }

```C#
3

Użyj flagi bitowej (enuma z atrybutem flag - https://docs.microsoft.com/pl-pl/dotnet/api/system.enum.hasflag?view=netcore-2.2).
Mapę - wartość enuma i akcję jaka ma zostać wykonana - możesz trzymać np w słowniku <wartość enuma, Action<T>> a w metodzie w której po kolei sprawdzasz boole wystarczy wtedy przeiterować foreachem po wszystkich wartościach jakie ten enum przekazany jako parametr będzie miał ustawione i wykonać odpowiednie akcje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1