コード例 #1
0
        private void UpdateDistribuitorProduse(string[] selectedProducts, Distribuitor distribuitorToUpdate)
        {
            if (selectedProducts == null)
            {
                distribuitorToUpdate.DistribuitorProduse = new List <DistribuitorProdus>();
                return;
            }
            var selectedProductsHS  = new HashSet <string>(selectedProducts);
            var distribuitorProduse = new HashSet <int>
                                          (distribuitorToUpdate.DistribuitorProduse.Select(c => c.Produs.ID));

            foreach (var produs in _context.Produse)
            {
                if (selectedProductsHS.Contains(produs.ID.ToString()))
                {
                    if (!distribuitorProduse.Contains(produs.ID))
                    {
                        distribuitorToUpdate.DistribuitorProduse.Add(new DistribuitorProdus
                        {
                            DistribuitorID =
                                distribuitorToUpdate.ID,
                            ProdusID = produs.ID
                        });
                    }
                }
                else
                {
                    if (distribuitorProduse.Contains(produs.ID))
                    {
                        DistribuitorProdus produsToRemove = distribuitorToUpdate.DistribuitorProduse.FirstOrDefault(i
                                                                                                                    => i.ProdusID == produs.ID);
                        _context.Remove(produsToRemove);
                    }
                }
            }
        }