private void AgAkisDelete_Row(object sender, RoutedEventArgs e) { BtnAdd.Text = "Ekle"; BtnAdd.Margin = new Thickness(100, 0, 0, 0); var row = (Button)sender; var ctx = row.DataContext; var obj = (AgAkis)ctx; AgAkisDataGrid.ItemsSource = null; this.agAnahtariAgArayuzu.AgAkisList.Remove(obj); toplam = this.agAnahtariAgArayuzu.AgAkisList.Select(s => s.Yuk).Sum(); MainTitle.Content = "Ağ Akışı - " + toplam.ToString("0.##") + " Mbps"; AgAkisDataGrid.ItemsSource = this.agAnahtariAgArayuzu.AgAkisList; if (this.agAnahtariAgArayuzu.AgAkisList.Count == 0) { AgAkisDataGrid.Visibility = Visibility.Hidden; AgAkisNoDataRow.Visibility = Visibility.Visible; } checkedAgAkisRow = null; agAkis = new AgAkis(); agAkis.VarisNoktasiIdNameList = new List <KeyValuePair <Guid, string> >(); agAkis.AgArayuzuId = this.agAnahtariAgArayuzu.UniqueId; GirdiComboBox.ItemsSource = null; GelenAgAkisComboBox.ItemsSource = null; AgAkisTipi.ItemsSource = null; SetAgAkisTipiList(); SetAgArayuzuInputList(); }
private void AgAkisRow_Checked(object sender, RoutedEventArgs e) { if (checkedAgAkisRow != null) { checkedAgAkisRow.IsChecked = false; } BtnAdd.Text = "Güncelle"; BtnAdd.Margin = new Thickness(80, 0, 0, 0); checkedAgAkisRow = (CheckBox)sender; var ctx = checkedAgAkisRow.DataContext; agAkis = new AgAkis(); agAkis = (AgAkis)((AgAkis)ctx).Clone(); agAkis.InputList = agAnahtariAgArayuzu.Node.InputList.Where(x => x.TypeId == (int)TipEnum.AgAnahtariAgArayuzu).ToList(); GirdiComboBox.ItemsSource = agAkis.InputList; GirdiComboBox.SelectedItem = agAkis.InputList.Where(x => x.UniqueId == agAkis.IliskiliAgArayuzuId).FirstOrDefault(); GelenAgAkisComboBox.SelectedItem = girdiList.Where(o => o.Id == agAnahtariAgArayuzu.AgAkisList.Where(x => x.Id == agAkis.Id).Select(s => s.IliskiliAgArayuzuAgAkisId).FirstOrDefault()).FirstOrDefault(); agAkis.AgAkisTipiList = kodListeService.ListAgAkisTipi(); AgAkisTipi.ItemsSource = agAkis.AgAkisTipiList; AgAkisTipi.SelectedItem = agAkis.AgAkisTipiList.Where(x => x.Id == agAkis.AgAkisTipiId).FirstOrDefault(); Yuk.Text = agAkis.Yuk.ToString(); foreach (var varisNoktasiIdName in agAnahtariAgArayuzu.AgAkisList.Where(x => x.Id == agAkis.Id).Select(s => s.VarisNoktasiIdNameList).FirstOrDefault()) { agAkis.VarisNoktasiIdNameList.Add(varisNoktasiIdName); } agAkis.Id = Guid.Empty; }
public AgAnahtariAgAkisPopupWindow(ConnectorViewModel agAnahtariAgArayuzu) { this.agAnahtariAgArayuzu = agAnahtariAgArayuzu; toplam = this.agAnahtariAgArayuzu.AgAkisList.Select(s => s.Yuk).Sum(); agAkis = new AgAkis(); agAkis.VarisNoktasiIdNameList = new List <KeyValuePair <Guid, string> >(); kodListeService = new KodListeService(); InitializeComponent(); MainTitle.Content = "Ağ Akışı - " + toplam.ToString("0.##") + " Mbps"; Loaded += Window_Loaded; }
public void UpdateAgAkisFromConnect(ConnectViewModel connect, bool isDelete) { if (isDelete) { connect.ToConnector.AgAkisList.Clear(); } else { if (connect.FromConnector.AgAkisList != null && connect.FromConnector.AgAkisList.Count() != 0) { connect.ToConnector.AgAkisList = new List <AgAkis>(); connect.ToConnector.AgAkisList.Clear(); foreach (var agAkis in connect.FromConnector.AgAkisList) { var agAkisTemp = new AgAkis(); agAkisTemp.Id = Guid.NewGuid(); agAkisTemp.AgArayuzuId = connect.ToConnector.UniqueId; agAkisTemp.Yuk = agAkis.Yuk; agAkisTemp.AgAkisTipiId = agAkis.AgAkisTipiId; agAkisTemp.AgAkisTipiAdi = agAkis.AgAkisTipiAdi; agAkisTemp.IliskiliAgArayuzuId = agAkis.IliskiliAgArayuzuId; agAkisTemp.IliskiliAgArayuzuAdi = agAkis.IliskiliAgArayuzuAdi; agAkisTemp.VarisNoktasiIdNameList = agAkis.VarisNoktasiIdNameList; agAkisTemp.FromNodeUniqueId = agAkis.FromNodeUniqueId; connect.ToConnector.AgAkisList.Add(agAkisTemp); connect.AgYuku = connect.ToConnector.AgAkisList.Select(x => x.Yuk).Sum(); } } } if (connect.ToConnector.Node.TypeId == (int)TipEnum.AgAnahtari) { foreach (var output in connect.ToConnector.Node.Transitions.Items) { var list = output.AgAkisList.Where(x => x.IliskiliAgArayuzuId == connect.ToConnector.UniqueId).ToList(); foreach (var item in list) { output.AgAkisList.Remove(item); } if (output.Connect != null) { output.Connect.AgYuku = output.AgAkisList.Select(s => s.Yuk).Sum(); UpdateAgAkisFromConnect(output.Connect, false); } } } }
private void AgAkisRow_Unchecked(object sender, RoutedEventArgs e) { BtnAdd.Text = "Ekle"; BtnAdd.Margin = new Thickness(100, 0, 0, 0); checkedAgAkisRow = null; agAkis = new AgAkis(); agAkis.VarisNoktasiIdNameList = new List <KeyValuePair <Guid, string> >(); agAkis.AgArayuzuId = this.agAnahtariAgArayuzu.UniqueId; GirdiComboBox.ItemsSource = null; GelenAgAkisComboBox.ItemsSource = null; AgAkisTipi.ItemsSource = null; SetAgAkisTipiList(); SetAgArayuzuInputList(); }
private void ButtonAddAgAkis_Click(object sender, RoutedEventArgs e) { var validationContext = new ValidationContext(agAkis, null, null); var results = new List <System.ComponentModel.DataAnnotations.ValidationResult>(); if (Validator.TryValidateObject(agAkis, validationContext, results, true)) { var inputToplamAgYuku = this.agAnahtariAgArayuzu.Node.InputList.Where(x => x.UniqueId == agAkis.IliskiliAgArayuzuId).Select(s => s.AgAkisList.Select(k => k.Yuk).Sum()).FirstOrDefault(); if (inputToplamAgYuku != 0) { bool broadcastValid = true; bool unicastValid = true; if ((agAkis.AgAkisTipiId == (int)AgAkisTipEnum.Broadcast || agAkis.AgAkisTipiId == (int)AgAkisTipEnum.Multicast) && agAnahtariAgArayuzu.AgAkisList.Where(x => x.IliskiliAgArayuzuAgAkisId == agAkis.IliskiliAgArayuzuAgAkisId).Any()) { broadcastValid = false; } else { decimal unicastTotal = 0; if (agAkis.AgAkisTipiId == (int)AgAkisTipEnum.Unicast) { if (!string.IsNullOrEmpty(Yuk.Text)) { agAkis.Yuk = Convert.ToDecimal(Yuk.Text); var definedUnicastTotal = this.agAnahtariAgArayuzu.Node.InputList.Where(x => x.UniqueId == agAkis.IliskiliAgArayuzuId).Select(s => s.AgAkisList.Where(a => a.Id == agAkis.IliskiliAgArayuzuAgAkisId).Select(k => k.Yuk).Sum()).FirstOrDefault(); unicastTotal = agAnahtariAgArayuzu.AgAkisList.Where(x => x.IliskiliAgArayuzuAgAkisId == agAkis.IliskiliAgArayuzuAgAkisId).Select(s => s.Yuk).FirstOrDefault(); unicastTotal += agAkis.Yuk; if (unicastTotal > definedUnicastTotal) { unicastValid = false; } } else { agAkis.Yuk = 0; } } } if (unicastValid && broadcastValid) { decimal total = 0; if (checkedAgAkisRow != null) { var ctx = checkedAgAkisRow.DataContext; var obj = (AgAkis)ctx; total = (this.agAnahtariAgArayuzu.AgAkisList.Select(s => s.Yuk).Sum() + agAkis.Yuk) - obj.Yuk; } else { total = this.agAnahtariAgArayuzu.AgAkisList.Select(s => s.Yuk).Sum() + agAkis.Yuk; } if (this.agAnahtariAgArayuzu.MaxKapasite >= total) { toplam = total; MainTitle.Content = "Ağ Akışı - " + toplam.ToString("0.##") + " Mbps"; if (checkedAgAkisRow != null) { var ctx = checkedAgAkisRow.DataContext; var obj = (AgAkis)ctx; this.agAnahtariAgArayuzu.AgAkisList.Remove(obj); checkedAgAkisRow = null; } BtnAdd.Text = "Ekle"; BtnAdd.Margin = new Thickness(100, 0, 0, 0); AgAkisDataGrid.ItemsSource = null; agAkis.Id = Guid.NewGuid(); agAkis.AgAkisTipiAdi = agAkis.AgAkisTipiList.Where(x => x.Id == agAkis.AgAkisTipiId).Select(s => s.Ad).FirstOrDefault(); agAkis.IliskiliAgArayuzuAdi = agAkis.InputList.Where(x => x.UniqueId == agAkis.IliskiliAgArayuzuId).Select(s => s.Label).FirstOrDefault(); agAkis.FromNodeName = this.agAnahtariAgArayuzu.NodesCanvas.Nodes.Items.Where(x => x.UniqueId == agAkis.FromNodeUniqueId).Select(s => s.Name).FirstOrDefault(); this.agAnahtariAgArayuzu.AgAkisList.Add(agAkis); AgAkisDataGrid.ItemsSource = this.agAnahtariAgArayuzu.AgAkisList; AgAkisDataGrid.Visibility = Visibility.Visible; AgAkisNoDataRow.Visibility = Visibility.Hidden; agAkis = new AgAkis(); agAkis.VarisNoktasiIdNameList = new List <KeyValuePair <Guid, string> >(); agAkis.AgArayuzuId = this.agAnahtariAgArayuzu.UniqueId; GirdiComboBox.ItemsSource = null; GelenAgAkisComboBox.ItemsSource = null; AgAkisTipi.ItemsSource = null; SetAgAkisTipiList(); SetAgArayuzuInputList(); } else { NotifyInfoPopup nfp = new NotifyInfoPopup(); nfp.msg.Text = "Ağın iletebileceği yük kapasitesi " + this.agAnahtariAgArayuzu.MinKapasite + " - " + this.agAnahtariAgArayuzu.MaxKapasite + " Mbps arasında olmalıdır!"; nfp.Owner = Owner; nfp.Show(); } } else { if (!broadcastValid) { NotifyInfoPopup nfp = new NotifyInfoPopup(); nfp.msg.Text = "Seçtiğiniz ağ akışı için daha önce kayıt yapılmıştır!"; nfp.Owner = Owner; nfp.Show(); } if (!unicastValid) { NotifyInfoPopup nfp = new NotifyInfoPopup(); nfp.msg.Text = "Unicast ağ akışının toplam kapasitesini aştınız!"; nfp.Owner = Owner; nfp.Show(); } } } else { NotifyInfoPopup nfp = new NotifyInfoPopup(); nfp.msg.Text = "Seçtiğiniz girdi için ağ akışı tanımlaması yapılmadığı için, bu girdi için ağ akışı tanımlanamz."; nfp.Owner = Owner; nfp.Show(); } } else { foreach (var result in results) { foreach (var memberName in result.MemberNames) { if (memberName == "Yuk") { Yuk.BorderBrush = new SolidColorBrush(Colors.Red); } } } } }