#pragma warning restore public async Task <int> SaveChangesAsync( ITelegramUserIdProvider telegramUserIdProvider, ILoaderProvider loaderProvider, CancellationToken token = default) { await OnPreSavingAsync(telegramUserIdProvider, loaderProvider); return(await base.SaveChangesAsync(token)); }
public RefreshSessionQueryHandler( ITelegramUserIdProvider telegramUserIdProvider, IHookrRepository hookrRepository, ICacheProvider cacheProvider, IJwtConfig jwtConfig) : base(cacheProvider, jwtConfig) { this.telegramUserIdProvider = telegramUserIdProvider; this.hookrRepository = hookrRepository; }
public HookrRepository(HookrContext context, IPolicySet policySet, ITelegramUserIdProvider telegramUserIdProvider, ILoaderProvider loaderProvider) { PolicySet = policySet; this.telegramUserIdProvider = telegramUserIdProvider; this.loaderProvider = loaderProvider; Context = context; }
public GrabbingCurrentTelegramUpdateFilterAttribute(IUserContextProvider userContextProvider, ITelegramUsersNotifier telegramUsersNotifier, ITelegramUserIdProvider telegramUserIdProvider, ILoaderProvider loaderProvider) { this.userContextProvider = userContextProvider; this.telegramUsersNotifier = telegramUsersNotifier; this.telegramUserIdProvider = telegramUserIdProvider; this.loaderProvider = loaderProvider; }
private async Task OnPreSavingAsync(ITelegramUserIdProvider telegramUserIdProvider, ILoaderProvider loaderProvider) { var entries = ChangeTracker.Entries() .ToArray(); var user = await loaderProvider .Get <int, TelegramUser>() .GetOrLoadAsync(telegramUserIdProvider.ProvidedValue, true); var now = DateTime.Now; entries .ForEach(x => { if (!(x.Entity is Entity entity)) { return; } switch (x.State) { case EntityState.Added: entity.CreatedAt = now; entity.CreatedBy = user; break; case EntityState.Modified: entity.UpdatedAt = now; entity.UpdatedBy = user; break; case EntityState.Deleted: if (entity is ISoftDeletable softDeletable) { x.State = EntityState.Modified; softDeletable.DeletedAt = now; softDeletable.DeletedBy = user; softDeletable.IsDeleted = true; } break; } }); // todo optimize user.LastUpdatedAt = now; if (entries .Select(x => x.Entity) .OfType <TelegramUser>() .All(x => x.Id != user.Id)) { Update(user); } }
// ReSharper disable once UnusedMember.Global public async Task InvokeAsync(HttpContext httpContext, ILogger <JwtReaderMiddleware> logger, ICacheProvider cacheProvider, IUserContextAccessor userContextAccessor, ITelegramUserIdProvider telegramUserIdProvider ) { var header = httpContext.Request.Headers["Authorization"] .FirstOrDefault(x => x.StartsWith(Bearer)); if (string.IsNullOrEmpty(header)) { await next(httpContext); return; } var readResult = header .Replace(Bearer, string.Empty) .Trim() .Map(new JwtSecurityTokenHandler().ReadJwtToken) .Map(new JwtPayloadReader().Read); if (!readResult.Success) { httpContext.Response.StatusCode = 401; return; } var payload = readResult.Payload; telegramUserIdProvider.Set(payload.Id); var cachedSession = await cacheProvider .UserLevel <Session>() .GetAsync(); if (cachedSession == null || !cachedSession.Key.Equals(payload.Key) || !cachedSession.Id.Equals(payload.Id) || !cachedSession.State.Equals(payload.Role)) { httpContext.Response.StatusCode = 401; return; } logger .LogInformation("Found valid session for {TelegramUserId} in caches", payload.Id); userContextAccessor .SetContext(cachedSession); await next(httpContext); }
public CreateSessionQueryHandler(ITelegramConfig telegramConfig, ITelegramUserIdProvider telegramUserIdProvider, IJwtConfig jwtConfig, ICacheProvider cacheProvider, IHookrRepository hookrRepository) : base(cacheProvider, jwtConfig) { this.telegramConfig = telegramConfig; this.telegramUserIdProvider = telegramUserIdProvider; this.hookrRepository = hookrRepository; }
public TelegramHookrRepository(HookrContext context, IPolicySet policySet, ITelegramUserIdProvider telegramUserIdProvider, IMemoryCache memoryCache, ILoaderProvider loaderProvider) : base(context, policySet, telegramUserIdProvider, loaderProvider) { this.memoryCache = memoryCache; }
public ProductCache(ITelegramUserIdProvider telegramUserIdProvider) : base(telegramUserIdProvider) { }
public CurrentOrderCache(ITelegramUserIdProvider telegramUserIdProvider) : base(telegramUserIdProvider) { }
protected TelegramUserIdGrabbingFilter(ITelegramUserIdProvider telegramUserIdProvider) { this.telegramUserIdProvider = telegramUserIdProvider; }
public SessionsCache(ITelegramUserIdProvider telegramUserIdProvider) : base(telegramUserIdProvider) { }
public UserTemporaryStatusCache(ITelegramUserIdProvider telegramUserIdProvider) : base(telegramUserIdProvider) { }
protected UserLevelCache(ITelegramUserIdProvider telegramUserIdProvider) { TelegramUserIdProvider = telegramUserIdProvider; }