public DuplicateArayuzPopupWindow(int cihazTipId, AgArayuzu selectedAgArayuzu, GucArayuzu selectedGucArayuzu, List <string> portList)
        {
            this.selectedAgArayuzu  = selectedAgArayuzu;
            this.selectedGucArayuzu = selectedGucArayuzu;
            this.cihazTipId         = cihazTipId;

            InitializeComponent();
            PortListBox.ItemsSource = portList;
        }
        private void Save_DuplicateArayuzPopup(object sender, RoutedEventArgs e)
        {
            var selectedItems = PortListBox.SelectedItems.Cast <string>();

            if (selectedAgArayuzu != null)
            {
                int count = 1;
                foreach (var selectedItem in selectedItems)
                {
                    AgArayuzu arayuz = new AgArayuzu();
                    arayuz.Adi               = selectedAgArayuzu.Adi + " " + count;
                    arayuz.Port              = selectedItem;
                    arayuz.FizikselOrtamId   = selectedAgArayuzu.FizikselOrtamId;
                    arayuz.KapasiteId        = selectedAgArayuzu.KapasiteId;
                    arayuz.KullanimAmaciId   = selectedAgArayuzu.KullanimAmaciId;
                    arayuz.KL_KullanimAmaci  = selectedAgArayuzu.KullanimAmaciList.Where(kal => kal.Id == selectedAgArayuzu.KullanimAmaciId).FirstOrDefault();
                    arayuz.KL_Kapasite       = selectedAgArayuzu.KapasiteList.Where(kl => kl.Id == selectedAgArayuzu.KapasiteId).FirstOrDefault();
                    arayuz.KL_FizikselOrtam  = selectedAgArayuzu.FizikselOrtamList.Where(fo => fo.Id == selectedAgArayuzu.FizikselOrtamId).FirstOrDefault();
                    arayuz.KullanimAmaciList = selectedAgArayuzu.KullanimAmaciList;
                    arayuz.FizikselOrtamList = selectedAgArayuzu.FizikselOrtamList;
                    arayuz.KapasiteList      = selectedAgArayuzu.KapasiteList;

                    if (this.cihazTipId == (int)TipEnum.UcBirim)
                    {
                        UcBirimPopupWindow popup = Owner as UcBirimPopupWindow;
                        arayuz.TipId = (int)TipEnum.UcBirimAgArayuzu;
                        popup.agArayuzuList.Add(arayuz);
                        popup.UpdateAgArayuzuTable();
                    }
                    else if (this.cihazTipId == (int)TipEnum.AgAnahtari)
                    {
                        AgAnahtariPopupWindow popup = Owner as AgAnahtariPopupWindow;
                        arayuz.TipId = (int)TipEnum.AgAnahtariAgArayuzu;
                        popup.agArayuzuList.Add(arayuz);
                        popup.UpdateAgArayuzuTable();
                    }

                    count++;
                }
            }
            else
            {
                bool eklenemeyenVarMi = false;
                int  count            = 1;
                foreach (var selectedItem in selectedItems)
                {
                    GucArayuzu arayuz = new GucArayuzu();
                    arayuz.Adi  = selectedGucArayuzu.Adi + " " + count;
                    arayuz.Port = selectedItem;
                    arayuz.CiktiDuraganGerilimDegeri  = selectedGucArayuzu.CiktiDuraganGerilimDegeri;
                    arayuz.CiktiUrettigiGucKapasitesi = selectedGucArayuzu.CiktiUrettigiGucKapasitesi;
                    arayuz.GirdiDuraganGerilimDegeri1 = selectedGucArayuzu.GirdiDuraganGerilimDegeri1;
                    arayuz.GirdiDuraganGerilimDegeri2 = selectedGucArayuzu.GirdiDuraganGerilimDegeri2;
                    arayuz.GirdiDuraganGerilimDegeri3 = selectedGucArayuzu.GirdiDuraganGerilimDegeri3;
                    arayuz.GirdiMaksimumGerilimDegeri = selectedGucArayuzu.GirdiMaksimumGerilimDegeri;
                    arayuz.GirdiMinimumGerilimDegeri  = selectedGucArayuzu.GirdiMinimumGerilimDegeri;
                    arayuz.GirdiTukettigiGucMiktari   = selectedGucArayuzu.GirdiTukettigiGucMiktari;
                    arayuz.GerilimTipiId     = selectedGucArayuzu.GerilimTipiId;
                    arayuz.KullanimAmaciId   = selectedGucArayuzu.KullanimAmaciId;
                    arayuz.KL_KullanimAmaci  = selectedGucArayuzu.KullanimAmaciList.Where(kal => kal.Id == selectedGucArayuzu.KullanimAmaciId).FirstOrDefault();
                    arayuz.KL_GerilimTipi    = selectedGucArayuzu.GerilimTipiList.Where(gt => gt.Id == selectedGucArayuzu.GerilimTipiId).FirstOrDefault();
                    arayuz.KullanimAmaciList = selectedGucArayuzu.KullanimAmaciList;
                    arayuz.GerilimTipiList   = selectedGucArayuzu.GerilimTipiList;

                    if (this.cihazTipId == (int)TipEnum.UcBirim)
                    {
                        UcBirimPopupWindow popup = Owner as UcBirimPopupWindow;
                        arayuz.TipId = (int)TipEnum.UcBirimGucArayuzu;
                        popup.gucArayuzuList.Add(arayuz);
                        popup.UpdateGucArayuzuTable();
                    }
                    else if (this.cihazTipId == (int)TipEnum.AgAnahtari)
                    {
                        AgAnahtariPopupWindow popup = Owner as AgAnahtariPopupWindow;
                        arayuz.TipId = (int)TipEnum.AgAnahtariGucArayuzu;
                        popup.gucArayuzuList.Add(arayuz);
                        popup.UpdateGucArayuzuTable();
                    }
                    else if (this.cihazTipId == (int)TipEnum.GucUretici)
                    {
                        bool flag = false;
                        GucUreticiPopupWindow popup = Owner as GucUreticiPopupWindow;

                        if (arayuz.KullanimAmaciId == (int)KullanimAmaciEnum.Cikti)
                        {
                            if (popup.gucArayuzuList.Where(x => x.KullanimAmaciId == (int)KullanimAmaciEnum.Girdi).Any())
                            {
                                var totalGirdiKpasitesi = popup.gucArayuzuList.Where(x => x.KullanimAmaciId == (int)KullanimAmaciEnum.Girdi).Select(s => s.GirdiTukettigiGucMiktari).Sum();
                                var totalCiktiKpasitesi = popup.gucArayuzuList.Where(x => x.KullanimAmaciId == (int)KullanimAmaciEnum.Cikti).Select(s => s.CiktiUrettigiGucKapasitesi).Sum() + arayuz.CiktiUrettigiGucKapasitesi;

                                if (totalCiktiKpasitesi <= totalGirdiKpasitesi)
                                {
                                    flag = true;
                                }
                            }
                            else
                            {
                                flag = true;
                            }
                        }

                        if (flag)
                        {
                            arayuz.TipId = (int)TipEnum.GucUreticiGucArayuzu;
                            popup.gucArayuzuList.Add(arayuz);
                            popup.UpdateGucArayuzuTable();
                        }
                        else
                        {
                            eklenemeyenVarMi = true;
                        }
                    }

                    count++;
                }

                if (eklenemeyenVarMi)
                {
                    NotifyInfoPopup nfp = new NotifyInfoPopup();
                    nfp.msg.Text = "Toplam girdi güç kapasitesi aşıldığı için bazı güç arayüzleri eklenemedi!";
                    nfp.Owner    = Owner;
                    nfp.Show();
                }
            }

            ClosePopup();
        }