private void Set(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { if (!(handler is IRedisCacheQueryHandler) || handler.Context.HasErrors()) { return; } using (var client = new RedisManagerPool("localhost:6379").GetClient()) client.Set(((IRedisCacheQueryHandler)handler).RedisKey(), handler.Context.Result); }
private void Delete(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { if (!(handler is IRedisCacheCommandHandler) || handler.Context.HasErrors()) { return; } using (var client = new RedisManagerPool("localhost:6379").GetClient()) ((IRedisCacheCommandHandler)handler).RedisKeys().ForEach(key => { var value = client.ContainsKey(key); client.Remove(key); _redisContext.Keys.Remove(key); }); }
private void CreateTask(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler, string taskName) { if (!_scope.TryResolve(typeof(IAuditDefinition <>).MakeGenericType(new Type[] { typeof(TEntity) }), out var definition)) { return; } var result = new object(); if (handler.Entity != null) { result = definition.GetType() .GetMethod("GetAudit") .Invoke(definition, new object[] { handler.Entity }); } _auditFactory.Set($"{typeof(TEntity).Name}_{taskName}", result).Wait(); //_tasks.Add(_auditFactory.Set($"{typeof(TEntity).Name}_{taskName}", result)); }
private void Get(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { if (!(handler is IRedisCacheQueryHandler) || handler.Context.HasErrors()) { return; } using (var client = new RedisManagerPool("localhost:6379").GetClient()) { //IRedisCacheHandler var key = ((IRedisCacheQueryHandler)handler).RedisKey(); handler.Context.Result = client.Get <TOut>(key); if (handler.Context.Result == null) { return; } if (!_redisContext.Keys.Contains(key)) { _redisContext.Keys.Add(key); } } }
private void CompleteAudit(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { //_tasks.ForEach(a => a.Wait()); var entityAudit = _auditFactory.GetDifference( $"{handler.Entity.GetType().Name}_GetEntity", $"{handler.Entity.GetType().Name}_Execute"); entityAudit.Wait(); if (entityAudit.Result.Any()) { handler.Context.RaiseEvent(new CreateEntityAuditEventMessage { PropertyInformation = entityAudit.Result, Entity = handler.Entity.GetType().Name, EntityId = ((IEntity)handler.Entity).Id, CreatedBy = _applicationUserContext.Email, ApplicationUserId = _applicationUserContext.Id, CreatedDate = DateTime.UtcNow.ToString(_configuration["DateTimeFormat"]), }, Constants.EventQueues.InternalEventsQueue ); } }
private void AuditExecute(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { CreateTask(handler, "Execute"); }
private void AuditGetEntity(IAbstractEntityHandler <TRequestDto, TEntity, TOut> handler) { CreateTask(handler, "GetEntity"); }