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()); }
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; }