private void FillDataGrid(RequiredValues rv) { List <DataGridBeanRow> list = new List <DataGridBeanRow>(); for (int a = rv.valueSutMin; a <= rv.valueSutMax; a++) { for (int b = rv.valueEYGMin; b <= rv.valueEYGMax; b++) { for (int c = rv.valueMeyveMin; c <= rv.valueMeyveMax; c++) { for (int d = rv.valueEtMin; d <= rv.valueEtMax; d++) { for (int e = rv.valueSebzeMin; e <= rv.valueSebzeMax; e++) { for (int f = rv.valueYagMin; f <= rv.valueYagMax; f++) { int khTotalKkal = a * 36 + b * 60 + c * 60 + e * 24 + rv.valueEkstraSeker * 4; int proteinTotalKkal = d * 24 + a * 24 + b * 8 + e * 8 + rv.valueEkstraProtein * 4; int yagTotalKkal = d * 45 + a * 54 + f * 45; int totalKalori = khTotalKkal + proteinTotalKkal + yagTotalKkal; if (totalKalori >= rv.valueMinKalori && totalKalori <= rv.valueMaxKalori) { float khYuzdeSonuc = ((float)khTotalKkal / totalKalori) * 100; float proteinYuzdeSonuc = ((float)proteinTotalKkal / totalKalori) * 100; float yagYuzdeSonuc = ((float)yagTotalKkal / totalKalori) * 100; if (khYuzdeSonuc >= rv.valueKhYuzdeMin && khYuzdeSonuc <= rv.valueKhYuzdeMax && proteinYuzdeSonuc >= rv.valueProteinYuzdeMin && proteinYuzdeSonuc <= rv.valueProteinYuzdeMax && yagYuzdeSonuc >= rv.valueYagYuzdeMin && yagYuzdeSonuc <= rv.valueYagYuzdeMax) { list.Add(new DataGridBeanRow(a, d, b, e, c, f, (a + b + c + d + e + f), khYuzdeSonuc, proteinYuzdeSonuc, yagYuzdeSonuc, rv.valueEkstraSeker, rv.valueEkstraProtein, totalKalori)); } } } } } } } } _dataGrid.ItemsSource = list; if (list.Count == 0) { MessageBox.Show("Verilen parametrelere uygun hiçbir veri bulunamadı", "Bilgi", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void Calculate() { SetTextBoxesDefaultColor(); foreach (var textbox in textboxes) { if (string.IsNullOrWhiteSpace(textbox.Text)) { textbox.Background = Brushes.Yellow; MessageBox.Show("Lütfen bütün boşlukları doldurunuz.", "Hata", MessageBoxButton.OK, MessageBoxImage.Error); return; } } RequiredValues rv = new RequiredValues(); //degisim limitleri rv.valueSutMin = Convert.ToInt32(_sutLimitMin.Text); rv.valueSutMax = Convert.ToInt32(_sutLimitMax.Text); rv.valueEYGMin = Convert.ToInt32(_eygLimitMin.Text); rv.valueEYGMax = Convert.ToInt32(_eygLimitMax.Text); rv.valueMeyveMin = Convert.ToInt32(_meyveLimitMin.Text); rv.valueMeyveMax = Convert.ToInt32(_meyveLimitMax.Text); rv.valueEtMin = Convert.ToInt32(_etLimitMin.Text); rv.valueEtMax = Convert.ToInt32(_etLimitMax.Text); rv.valueSebzeMin = Convert.ToInt32(_sebzeLimitMin.Text); rv.valueSebzeMax = Convert.ToInt32(_sebzeLimitMax.Text); rv.valueYagMin = Convert.ToInt32(_yagLimitMin.Text); rv.valueYagMax = Convert.ToInt32(_yagLimitMax.Text); //yüzdeler rv.valueKhYuzdeMin = Convert.ToInt32(_khYuzde1.Text); rv.valueKhYuzdeMax = Convert.ToInt32(_khYuzde2.Text); rv.valueYagYuzdeMin = Convert.ToInt32(_yagYuzde1.Text); rv.valueYagYuzdeMax = Convert.ToInt32(_yagYuzde2.Text); rv.valueProteinYuzdeMin = Convert.ToInt32(_proteinYuzde1.Text); rv.valueProteinYuzdeMax = Convert.ToInt32(_proteinYuzde2.Text); //ekstralar rv.valueEkstraSeker = Convert.ToInt32(_sekerGram.Text); rv.valueEkstraProtein = Convert.ToInt32(_proteinGram.Text); //kalori limitleri rv.valueMinKalori = Convert.ToInt32(_minKalori.Text); rv.valueMaxKalori = Convert.ToInt32(_maxKalori.Text); for (int i = 0; i < textboxes.Length; i += 2) { if (i == 18) { continue; } if (Convert.ToInt32(textboxes[i].Text) > Convert.ToInt32(textboxes[i + 1].Text)) { textboxes[i].Background = Brushes.Red; textboxes[i].Foreground = Brushes.White; MessageBox.Show("Minimum değerler maksimum değerlerden büyük olamaz.", "Hata", MessageBoxButton.OK, MessageBoxImage.Error); return; } } FillDataGrid(rv); }