Пример #1
0
        public UserModule(ICommandDispatcher commandDispatcher,
                          IUserStorage userStorage,
                          IValidatorResolver validatorResolver,
                          AppSettings settings)
            : base(commandDispatcher, validatorResolver, modulePath: "users")
        {
            Get("", async args => await FetchCollection <BrowseUsers, UserInfo>
                    (async x => await userStorage.BrowseAsync(x)).HandleAsync());

            Get("{name}", async args => await Fetch <GetUserByName, UserInfo>
                    (async x => await userStorage.GetInfoByNameAsync(x.Name)).HandleAsync());

            Get("{id}/avatar", args =>
            {
                var query = BindRequest <GetAvatar>();
                if (query.Id.Empty())
                {
                    return(HttpStatusCode.NotFound);
                }

                return(Response.AsRedirect(string.Format(settings.AvatarUrl, query.Id)));
            });

            Put("{lockUserId}/lock", async args => await ForModerator <LockAccount>()
                .OnSuccessAccepted()
                .DispatchAsync());

            Put("{unlockUserId}/unlock", async args => await ForModerator <UnlockAccount>()
                .OnSuccessAccepted()
                .DispatchAsync());

            Post("", async(ctx, p) => await ForAdministrator <SignUp>()
                 .OnSuccessAccepted()
                 .DispatchAsync());
        }
Пример #2
0
 public CommandRequestHandler(ICommandDispatcher dispatcher, T command,
                              IResponseFormatter responseFormatter,
                              IValidatorResolver validatorResolver,
                              Negotiator negotiator,
                              Messages.Commands.Request request)
 {
     _dispatcher        = dispatcher;
     _command           = command;
     _command.Request   = request;
     _responseFormatter = responseFormatter;
     _validatorResolver = validatorResolver;
     _negotiator        = negotiator;
 }