Beispiel #1
0
 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);
            }
        }