public override void WriteYaml(StreamWriter writer, AssetManager assetManager, ILoggerFactory loggerFactory, int indent = 0) { var spaces = "".PadLeft(indent); writer.Write($"{spaces}servicebus:\n"); spaces = "".PadLeft(indent + 2); writer.Write($"{spaces}name: {Name}\n"); var resourceGroup = ResourceGroup ?? assetManager.GetResourceGroup()?.Name; if (!string.IsNullOrEmpty(resourceGroup)) { writer.Write($"{spaces}resourceGroup: {resourceGroup}\n"); } if (Queues?.Any() == true) { writer.Write($"{spaces}queues:\n"); foreach (var queue in Queues) { spaces = "".PadLeft(indent + 4); writer.Write($"{spaces}- {queue}\n"); } } if (Topics?.Any() == true) { writer.Write($"{spaces}topics:\n"); foreach (var topic in Topics) { spaces = "".PadLeft(indent + 4); writer.Write($"{spaces}- {topic}\n"); } } }
private IEnumerable <PredefinedQueue> GetQueues() { if (Queues != null && Queues.Any()) { return(Queues.Select(item => Enum.Parse(typeof(PredefinedQueue), item)).Cast <PredefinedQueue>().ToList()); } IList <PredefinedQueue> queues = Enum.GetValues(typeof(PredefinedQueue)).Cast <PredefinedQueue>().ToList(); queues.Remove(PredefinedQueue.UnknownByClient); return(queues); }
private Queue GetQueue(string name) { if (!Queues.Any(x => x.Name == name)) { var result = new Queue(name); Queues.Add(result); return(result); } return(Queues.Single(x => x.Name == name)); }
public override async Task Start() { var lastRecord = await GetLastRecord(); if (!string.IsNullOrEmpty(lastRecord?.Ids)) { _lastImageIds = lastRecord.Ids.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse).ToList(); } _currentImageIds.Clear(); if (!Queues.Any()) { var queues = ServiceProvider.GetRequiredService <IEnumerable <ITaskQueue> >() .Where(t => t.Id.Contains("Yande")); queues.ForEach(AddQueue); } await base.Start(); await Distribute(new YandeListTaskData { Page = 1, LastImageIds = _lastImageIds }); while (Active) { await Task.Delay(1000); } if (Status == TaskQueueStatus.Running) { await base.Stop(); if (_currentImageIds.Any()) { var record = new YandeCollectRecord { CollectDt = DateTime.Now, Ids = string.Join(",", _currentImageIds), Site = Options.Value.Site }; await SaveCollectRecord(record); } } }