public void AddTask(AddOrUpdateProductTask task) { this.tasksStorage.AddOrUpdateProductTasks.Add(task); }
public void AddOrUpdate(IDictionary<ServerInformation, ProductViewModel> productInAllServers, ProductViewModel mainProductViewModel) { var cacheChanged = false; foreach (var pair in productInAllServers) { pair.Value.MapProperties(mainProductViewModel); var serverName = pair.Key.Name; var model = pair.Value.GetModel(); var task = new AddOrUpdateProductTask(serverName, model); this.taskManager.AddTask(task); if (this.Cache.ProductsPerServer[pair.Key].All(x => x.Name != pair.Value.Product.Name)) { cacheChanged = true; this.Cache.ProductsPerServer[pair.Key].Add(pair.Value.Product); } } if (cacheChanged) { this.ProductsCacheChanged?.Invoke(this, EventArgs.Empty); } }