예제 #1
0
 public RedisRemoveActivity(IResourceCatalog resourceCatalog, ResponseManager responseManager, RedisCacheBase redisCache)
 {
     ResponseManager = responseManager;
     ResourceCatalog = resourceCatalog;
     DisplayName     = "Redis Remove";
     _redisCache     = redisCache;
 }
예제 #2
0
        protected override List <string> PerformExecution(Dictionary <string, string> evaluatedValues)
        {
            try
            {
                RedisSource = ResourceCatalog.GetResource <RedisSource>(GlobalConstants.ServerWorkspaceID, SourceId);
                if (RedisSource == null || RedisSource.ResourceType != enSourceType.RedisSource.ToString())
                {
                    _messages.Add(ErrorResource.RedisSourceHasBeenRemoved);
                    return(_messages);
                }
                _redisCache = new RedisCacheImpl(RedisSource.HostName, Convert.ToInt32(RedisSource.Port), RedisSource.Password);
                if (CounterType == "Increment")
                {
                    _result = _redisCache.Increment(Key, StepSize);

                    Dev2Logger.Debug($"Cache {Key} Incremented {StepSize}: {_result}", GlobalConstants.WarewolfDebug);
                }
                else
                {
                    _result = _redisCache.Decrement(Key, StepSize);
                    Dev2Logger.Debug($"Cache {Key} Decremented {StepSize}: {_result}", GlobalConstants.WarewolfDebug);
                }
                return(new List <string> {
                    _result.ToString()
                });
            }
            catch (Exception ex)
            {
                Dev2Logger.Error(nameof(RedisCounterActivity), ex, GlobalConstants.WarewolfError);
                throw new Exception(ex.GetAllMessages());
            }
        }
예제 #3
0
        public RedisCacheActivity(IResourceCatalog resourceCatalog, ResponseManager responseManager, RedisCacheBase redisCache)
        {
            ResponseManager = responseManager;
            _redisCache     = redisCache;
            ResourceCatalog = resourceCatalog;

            DisplayName  = "Redis Cache";
            ActivityFunc = new ActivityFunc <string, bool>
            {
                DisplayName = "Data Action",
                Argument    = new DelegateInArgument <string>($"explicitData_{DateTime.Now:yyyyMMddhhmmss}")
            };

            _serializer = new Dev2JsonSerializer();
        }
예제 #4
0
 public SpecRedisActivity(IResourceCatalog resourceCatalog, RedisCacheBase redisCache) : base(resourceCatalog, redisCache)
 {
 }
예제 #5
0
 public RedisCacheActivity(IResourceCatalog resourceCatalog, RedisCacheBase redisCache)
     : this(resourceCatalog, new ResponseManager(), redisCache)
 {
 }
예제 #6
0
        protected override List <string> PerformExecution(Dictionary <string, string> evaluatedValues)
        {
            _errorsTo = new ErrorResultTO();

            try
            {
                RedisSource = ResourceCatalog.GetResource <RedisSource>(GlobalConstants.ServerWorkspaceID, SourceId);
                if (RedisSource == null || RedisSource.ResourceType != enSourceType.RedisSource.ToString())
                {
                    _messages.Add(ErrorResource.RedisSourceHasBeenRemoved);
                    return(_messages);
                }
                _redisCache = new RedisCacheImpl(RedisSource.HostName, Convert.ToInt32(RedisSource.Port), RedisSource.Password);

                var cacheTTL = TimeSpan.FromSeconds(TTL);

                _innerActivity = ActivityFunc.Handler as IDev2Activity;
                if (_innerActivity is null)
                {
                    _errorsTo.AddError($"Activity drop box cannot be null");
                }
                if (_innerActivity.GetOutputs().Count() <= 0)
                {
                    _errorsTo.AddError($"{_innerActivity.GetDisplayName()} activity must have at least one output variable.");
                }

                IDictionary <string, string> cachedData = GetCachedOutputs();
                if (cachedData != null)
                {
                    base._debugOutputs.Clear();

                    var debugItem = new DebugItem();
                    AddDebugItem(new DebugItemStaticDataParams("", "Redis key { " + Key + " } found"), debugItem);
                    _debugOutputs.Add(debugItem);

                    var outputIndex = 1;
                    var outputVars  = _innerActivity.GetOutputs();
                    foreach (var outputVar in outputVars)
                    {
                        if (cachedData.ContainsKey(outputVar))
                        {
                            var item = cachedData[outputVar];
                            DataObject.Environment.Assign(outputVar, item, 0);
                            if (!string.IsNullOrWhiteSpace(outputVar))
                            {
                                debugItem = new DebugItem();
                                debugItem = TryCreateDebugItem(DataObject.Environment, outputIndex++, new AssignValue(outputVar, item), 0);
                                _debugOutputs.Add(debugItem);
                            }
                        }
                        else
                        {
                            _errorsTo.AddError("cached data missing key: " + outputVar);
                        }
                    }
                }
                else
                {
                    base._debugOutputs.Clear();

                    var debugItem = new DebugItem();

                    AddDebugItem(new DebugItemStaticDataParams("", "Redis key { " + Key + " } not found"), debugItem);
                    _debugInputs.Add(debugItem);

                    _innerActivity.Execute(DataObject, 0);

                    CacheOutputs();
                }
                return(new List <string> {
                    _result
                });
            }
            catch (Exception ex)
            {
                Dev2Logger.Error(nameof(RedisCacheActivity), ex, GlobalConstants.WarewolfError);
                throw new Exception(ex.GetAllMessages());
            }
            finally
            {
                if (_errorsTo.HasErrors())
                {
                    var errorString = _errorsTo.MakeDisplayReady();
                    DataObject.Environment.AddError(errorString);
                }
            }
        }