Laden...

Business Logic

Erstellt von altertoby vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.001 Views
A
altertoby Themenstarter:in
61 Beiträge seit 2005
vor 16 Jahren
Business Logic

Hi,

ich bin gerade auf ein Problem gestoßen...und google spuckt auch nichts vernünftiges aus 🙂

also es geht darum, dass ich nicht weiß wie ich aus meiner BLL dem Presentation Layer sagen soll was falsch gegangen ist...
einfaches Beispiel: Ein User meldet sich an, gibt dabei einen Usernamen an, der bereitsvorhanden ist. Die Überprüfung findet erst in der BLL statt, aber wie geb ich jetzt der Anzeige zu sagen, dass das und das falsch gelaufen ist?

Ich hab mir folgende Möglichkeiten "ausgedacht":

  1. Exceptions: naja gefällt mir nicht so doll, wegen Performance
  2. Events: also ein Event, was aufgerufen wird, wenn in der BLL ein Fehler auftritt...gefällt mir aber nicht wirklich, weils doch unflexibel scheint
  3. Enums als Rückgabewert...also in dem Fall dann: Erfolgreich, UsernameDoppelt, ect.

hab ich vllt. etwas übersehen...welche Methode würdet ihr benutzen bzw benutzt ihr?

175 Beiträge seit 2006
vor 16 Jahren
A
altertoby Themenstarter:in
61 Beiträge seit 2005
vor 16 Jahren

vielen Dank für den Link!! hat mir wirklich sehr geholfen!!

Jetzt hab ich wieder ein Problem:
Ich hab eine Methode die aus meinen Rules ermittelt welcher Validator zur Webseite hinzugefügt werden soll...das funktioniert auch super, nur ich weiß nicht wie ich den Validator dann zu der Webseite hinzufügen solll...

angenommen ich würde meinen Validator in der CodeBehind so erstellen:

        RequiredFieldValidator validator = new RequiredFieldValidator();
        validator.Display = ValidatorDisplay.Dynamic;
        validator.ErrorMessage = " Bitte ausfüllen.";
        validator.ControlToValidate = txtUser.ID;
        int txtUserPos = txtUser.Parent.Controls.IndexOf(txtUser);
        txtUser.Parent.Controls.AddAt(txtUserPos + 1, validator);

wie würde dies aussehen wenn ich es in eine extra Methode auslagern will, die nicht in der CodeBehind ist (zb in einer Klassenbiblothek)...

    public void CreateValidator(Control controlToValidate, List<BaseRule> rules, bool requiredField)
    {
        if (requiredField == true)
        {
            RequiredFieldValidator validator = new RequiredFieldValidator();
            validator.Display = ValidatorDisplay.Dynamic;
            validator.ErrorMessage = "Bitte ausfüllen.";
            validator.ControlToValidate = controlToValidate.ID;
            controlToValidate.Parent.Controls.Add(validator);
        }
}

als Parameter übergebe ich txtUser, nen paar Rules (für meine Frage unwichtig) und dann eben true...
der Code wird auch ohne Fehler ausgeführt, jedoch scheint es als ob der Validator auf der Webseite nicht drauf ist...

EDIT: jetzt funktioniert der code...naja egal...thx dem Forum 😉