Exemple #1
0
        public async Task <OperationResult> RemoveAsync(TaskShellAbstraction task)
        {
            if (task == default)
            {
                return(OperationResult.Failure($"Входное значение {task} не может быть null"));
            }

            try
            {
                var serializedTasks = await _distributedCache.GetStringAsync($"{_prefixTasks}:{task.CurrencyPairName}");

                if (!string.IsNullOrWhiteSpace(serializedTasks))
                {
                    var tasks = JsonConvert.DeserializeObject <ICollection <TaskShellAbstraction> >(serializedTasks);
                    if (tasks.Any(r => r.TaskName == task.TaskName))
                    {
                        tasks.Remove(tasks.Single(r => r.TaskName == task.TaskName));
                        await _distributedCache.SetStringAsync($"{_prefixTasks}:{task.CurrencyPairName}", JsonConvert.SerializeObject(tasks));
                    }
                }
            }
            catch (Exception ex)
            {
                OperationResult.Failure($"Не удалось удалить {task} в коллекцию tasks", ex);
            }
            return(OperationResult.Success());
        }
        public async Task <OperationResult> AddOrUpdateTaskAsync(TaskShellAbstraction task)
        {
            if (string.IsNullOrWhiteSpace(task.TaskName))
            {
                return(OperationResult.Failure($"Входной параметр {task.TaskName} не может быть null или пустым"));
            }

            await _distributedCache.SetStringAsync($"{_prefixTasks}:{task.TaskName}", JsonConvert.SerializeObject(task));

            return(OperationResult.Success());
        }
Exemple #3
0
        public async Task <OperationResult <TaskShellAbstraction> > AddOrUpdateAsync(TaskShellAbstraction item)
        {
            //TODO: завести валидацию
            if (item == default)
            {
                return(OperationResult <TaskShellAbstraction> .Failure($"Входное значение {item} не может быть null"));
            }

            try
            {
                var result = await _taskNamesCollectionStorage.AddOrUpdateTaskAsync(item);

                if (result.IsSuccess)
                {
                }
                var serializedTasks = await _distributedCache.GetStringAsync($"{_prefixTasks}:{item.CurrencyPairName}");

                if (string.IsNullOrWhiteSpace(serializedTasks))
                {
                    await _distributedCache.SetStringAsync($"{_prefixTasks}:{item.CurrencyPairName}", JsonConvert.SerializeObject(new Collection <TaskShellAbstraction> {
                        item
                    }));
                }
                else
                {
                    var tasks = JsonConvert.DeserializeObject <ICollection <TaskShellAbstraction> >(serializedTasks);
                    if (tasks.Any(r => r.TaskName == item.TaskName))
                    {
                        var task = tasks.Single(r => r.TaskName == item.TaskName);
                        tasks.Remove(task);
                    }
                    tasks.Add(item);

                    await _distributedCache.SetStringAsync($"{_prefixTasks}:{item.CurrencyPairName}", JsonConvert.SerializeObject(tasks));
                }
            }
            catch (Exception ex)
            {
                OperationResult <TaskShellAbstraction> .Failure($"Не удалось добавить или обновить {item} в коллекцию tasks", ex);
            }
            return(OperationResult <TaskShellAbstraction> .Success(item));
        }