public DevelopmentModule(ICommandDispatcher commandDispatcher, IValidatorResolver validatorResolver, IOperationStorage operationStorage) : base(commandDispatcher, validatorResolver, modulePath: "development") { Get("operation", args => { RequestCounter++; if (RequestCounter <= 2) { return(HttpStatusCode.NotFound); } if (RequestCounter == 3) { return(HttpStatusCode.Unauthorized); } if (RequestCounter == 8) { RequestCounter = 0; } return(new Operation { Id = Guid.NewGuid(), RequestId = Guid.NewGuid(), CreatedAt = DateTime.UtcNow, State = "completed" }); }); }
public AuthenticationModule(ICommandDispatcher commandDispatcher, IValidatorResolver validatorResolver, IIdentityProvider identityProvider, IUserStorage userStorage, IOperationStorage operationStorage, IJwtTokenHandler jwtTokenHandler, JwtTokenSettings jwtTokenSettings) : base(commandDispatcher, validatorResolver, identityProvider, modulePath: "") { Post("sign-in", async(ctx, p) => await For <SignIn>() .Set(c => { c.IpAddress = Request.UserHostAddress; c.UserAgent = Request.Headers.UserAgent; }) .SetResourceId(c => c.SessionId) .OnSuccess(async c => { var operation = await operationStorage.GetUpdatedAsync(c.Request.Id); if (operation.HasNoValue || !operation.Value.Success) { return(HttpStatusCode.Unauthorized); } var session = await userStorage.GetSessionAsync(c.SessionId); if (session.HasNoValue) { return(HttpStatusCode.Unauthorized); } return(new { token = jwtTokenHandler.Create(session.Value.UserId), sessionId = session.Value.Id, sessionKey = session.Value.Key, expiry = DateTime.UtcNow.AddDays(jwtTokenSettings.ExpiryDays).ToTimestamp() }); }) .DispatchAsync()); Post("sign-up", async args => await For <SignUp>() .OnSuccessAccepted("account") .DispatchAsync()); Post("sign-out", async args => await For <SignOut>() .OnSuccess(HttpStatusCode.NoContent) .DispatchAsync()); }
public OperationModule(ICommandDispatcher commandDispatcher, IIdentityProvider identityProvider, IOperationStorage operationStorage) : base(commandDispatcher, identityProvider, modulePath: "operations") { Get("{requestId}", args => Fetch <GetOperation, OperationDto> (async x => { var operation = await operationStorage.GetAsync(x.RequestId); if (operation.HasNoValue || operation.Value.UserId != CurrentUserId) { return(new Maybe <OperationDto>()); } return(operation); }).HandleAsync()); }
public OperationModule(ICommandDispatcher commandDispatcher, IValidatorResolver validatorResolver, IIdentityProvider identityProvider, IOperationStorage operationStorage) : base(commandDispatcher, validatorResolver, identityProvider, modulePath: "operations") { Get("{requestId}", args => Fetch <GetOperation, Operation> (async x => { var operation = await operationStorage.GetAsync(x.RequestId); if (operation.HasNoValue || operation.Value.UserId.Empty()) { return(operation); } this.RequiresAuthentication(); return(operation.Value.UserId == CurrentUserId ? operation : new Maybe <Operation>()); }).HandleAsync()); }
public HomeController(IOperationStorage operationService, IResultStorage storage, IOperationLogger logger) { _operationService = operationService; _storage = storage; _logger = logger; }
public void Init() { _storage = OperationStorage.GetInstance(); }