Что такое использование IEnumerable <IUserEventHandler>userEventHandlers в модуле Orchard.User - PullRequest
1 голос
/ 30 июня 2011

Мне интересно, что за использование IEnumerable userEventHandlers в контроллере аккаунта, определенного в модуле Orchard.User?

 [HttpPost]
        [SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
            Justification = "Needs to take same parameter type as Controller.Redirect()")]
        public ActionResult LogOn(string userNameOrEmail, string password, string returnUrl) {
            var user = ValidateLogOn(userNameOrEmail, password);
            if (!ModelState.IsValid) {
                var shape = _orchardServices.New.LogOn().Title(T("Log On").Text);
                return new ShapeResult(this, shape); 
            }

            _authenticationService.SignIn(user, false);
            foreach (var userEventHandler in _userEventHandlers) {
                userEventHandler.LoggedIn(user);
            }

            return this.RedirectLocal(returnUrl);
        }

1 Ответ

1 голос
/ 30 июня 2011

Предполагается, что вы можете передать IEnumerable, содержащий IUserEventHandler.Они будут вызываться последовательно при возникновении события.

 foreach (var userEventHandler in _userEventHandlers) {
                userEventHandler.LoggedIn(user);
            }

Я мог бы предположить, что у вас может быть несколько подписчиков, которые должны быть обеспокоены тем, что пользователь вошел в систему, и это чистый способ уведомления их..

...