Add project files.
This commit is contained in:
35
Nutrition/formAddNutrition.xaml
Normal file
35
Nutrition/formAddNutrition.xaml
Normal file
@@ -0,0 +1,35 @@
|
||||
<Window x:Class="SportsTrainingApp.Nutrition.formAddNutrition"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:SportsTrainingApp.Nutrition"
|
||||
mc:Ignorable="d"
|
||||
Title="Добавить питание" Height="150" Width="800" ResizeMode="NoResize" Icon="/free-icon-fitness-4729328.png" WindowStartupLocation="CenterScreen">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"></RowDefinition>
|
||||
<RowDefinition ></RowDefinition>
|
||||
<RowDefinition ></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<DatePicker Name="dtPicker" Grid.Row="1" Grid.Column="0" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbCalories" Grid.Row="1" Grid.Column="1" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbProtein" Grid.Row="1" Grid.Column="2" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbCarbs" Grid.Row="1" Grid.Column="3" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbFats" Grid.Row="1" Grid.Column="4" Height="25" Margin="10"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Дата" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="Калории" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="2" Text="Белки" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="3" Text="Углеводы" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4" Text="Жиры" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<Button Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Height="25" Width="200" Content="Добавить" Click="Button_Click_1"/>
|
||||
<Button Grid.Column="3" Grid.Row="2" Grid.ColumnSpan="2" Height="25" Width="200" Content="Отмена" Click="Button_Click_2"/>
|
||||
</Grid>
|
||||
</Window>
|
||||
50
Nutrition/formAddNutrition.xaml.cs
Normal file
50
Nutrition/formAddNutrition.xaml.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System.Windows;
|
||||
using Npgsql;
|
||||
|
||||
namespace SportsTrainingApp.Nutrition
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for formAddNutrition.xaml
|
||||
/// </summary>
|
||||
public partial class formAddNutrition : Window
|
||||
{
|
||||
int user_id = -1;
|
||||
public formAddNutrition(int _user_id)
|
||||
{
|
||||
InitializeComponent();
|
||||
user_id = _user_id;
|
||||
dtPicker.SelectedDate = DateTime.Now;
|
||||
}
|
||||
|
||||
private void AddNutrition()
|
||||
{
|
||||
using (var conn = new NpgsqlConnection(formMain.connectionString))
|
||||
{
|
||||
conn.Open();
|
||||
using (var cmd = new NpgsqlCommand($@"INSERT INTO dbo.nutrition(
|
||||
user_id, date, calories, protein, carbs, fats)
|
||||
VALUES (@user_id, @date, @calories, @protein, @carbs, @fats);", conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("user_id", user_id);
|
||||
cmd.Parameters.AddWithValue("date", dtPicker.SelectedDate.Value);
|
||||
cmd.Parameters.AddWithValue("calories", Convert.ToInt32(tbCalories.Text));
|
||||
cmd.Parameters.AddWithValue("protein", Convert.ToDouble(tbProtein.Text));
|
||||
cmd.Parameters.AddWithValue("carbs", Convert.ToDouble(tbCarbs.Text));
|
||||
cmd.Parameters.AddWithValue("fats", Convert.ToDouble(tbFats.Text));
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void Button_Click_1(object sender, RoutedEventArgs e)
|
||||
{
|
||||
AddNutrition();
|
||||
}
|
||||
|
||||
private void Button_Click_2(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
47
Nutrition/formNutrition.xaml
Normal file
47
Nutrition/formNutrition.xaml
Normal file
@@ -0,0 +1,47 @@
|
||||
<Window x:Class="SportsTrainingApp.Nutrition.formNutrition"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:SportsTrainingApp.Nutrition"
|
||||
mc:Ignorable="d"
|
||||
Title="Питание" Height="450" Width="800" Icon="/free-icon-fitness-4729328.png" WindowStartupLocation="CenterScreen">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.2*"></RowDefinition>
|
||||
<RowDefinition></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<DataGrid Grid.Column="0" Grid.Row="3" x:Name="gridNutrition" AutoGenerateColumns="False"
|
||||
ColumnWidth="*" Grid.ColumnSpan="3" Margin="10" IsReadOnly="True">
|
||||
<DataGrid.Resources>
|
||||
<Style TargetType="TextBlock" x:Key="WrapText">
|
||||
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
|
||||
</Style>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||||
</Style>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||
</Style>
|
||||
</DataGrid.Resources>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="id" Binding="{Binding ID}" Visibility="Hidden" />
|
||||
<DataGridTextColumn Header="user_id" Binding="{Binding User_id}" Visibility="Hidden"/>
|
||||
<DataGridTextColumn Header="Дата" Binding="{Binding Date}" />
|
||||
<DataGridTextColumn Header="Калории" Binding="{Binding Calories}" ElementStyle="{StaticResource WrapText}"/>
|
||||
<DataGridTextColumn Header="Белки" Binding="{Binding Protein}" ElementStyle="{StaticResource WrapText}"/>
|
||||
<DataGridTextColumn Header="Углеводы" Binding="{Binding Carbs}" ElementStyle="{StaticResource WrapText}"/>
|
||||
<DataGridTextColumn Header="Жиры" Binding="{Binding Fats}" ElementStyle="{StaticResource WrapText}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<Button x:Name="btAddNutrition" Grid.Column="0" Grid.Row="0" Content="Добавить" Margin="10" Click="btAddNutrition_Click"/>
|
||||
<Button x:Name="btUpdNutrution" Grid.Column="1" Grid.Row="0" Content="Изменить" Margin="10" Click="btUpdNutrution_Click"/>
|
||||
<Button x:Name="btDelNutrition" Grid.Column="2" Grid.Row="0" Content="Удалить" Margin="10" Click="btDelNutrition_Click"/>
|
||||
</Grid>
|
||||
</Window>
|
||||
107
Nutrition/formNutrition.xaml.cs
Normal file
107
Nutrition/formNutrition.xaml.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using Npgsql;
|
||||
using System.Windows;
|
||||
|
||||
namespace SportsTrainingApp.Nutrition
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for fromNutrition.xaml
|
||||
/// </summary>
|
||||
public partial class formNutrition : Window
|
||||
{
|
||||
int user_id = -1;
|
||||
public formNutrition(int _user_id)
|
||||
{
|
||||
InitializeComponent();
|
||||
user_id = _user_id;
|
||||
FillDataGrid(user_id);
|
||||
|
||||
}
|
||||
public class Nutrition
|
||||
{
|
||||
public int ID { get; set; }
|
||||
public int User_id { get; set; }
|
||||
public DateTime Date { get; set; }
|
||||
public int Calories { get; set; }
|
||||
public double Protein { get; set; }
|
||||
public double Carbs { get; set; }
|
||||
public double Fats { get; set; }
|
||||
}
|
||||
|
||||
public void FillDataGrid(int _user_id)
|
||||
{
|
||||
using (var conn = new NpgsqlConnection(formMain.connectionString))
|
||||
{
|
||||
conn.Open();
|
||||
using (var cmd = new NpgsqlCommand($@"SELECT
|
||||
ID,
|
||||
USER_ID,
|
||||
DATE,
|
||||
CALORIES,
|
||||
PROTEIN,
|
||||
CARBS,
|
||||
FATS
|
||||
FROM
|
||||
DBO.NUTRITION
|
||||
WHERE
|
||||
USER_ID = {_user_id}
|
||||
ORDER BY DATE", conn))
|
||||
{
|
||||
var reader = cmd.ExecuteReader();
|
||||
var nutrition = new List<Nutrition>();
|
||||
while (reader.Read())
|
||||
{
|
||||
nutrition.Add(new Nutrition
|
||||
{
|
||||
ID = reader.GetInt32(0),
|
||||
User_id = reader.GetInt32(1),
|
||||
Date = reader.GetDateTime(2),
|
||||
Calories = reader.GetInt32(3),
|
||||
Protein = reader.GetDouble(4),
|
||||
Carbs = reader.GetDouble(5),
|
||||
Fats = reader.GetDouble(6)
|
||||
});
|
||||
}
|
||||
gridNutrition.ItemsSource = nutrition;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btAddNutrition_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
new formAddNutrition(user_id).ShowDialog();
|
||||
FillDataGrid(user_id);
|
||||
}
|
||||
|
||||
private void btDelNutrition_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var selectedItem = (Nutrition)gridNutrition.SelectedItem;
|
||||
|
||||
if (selectedItem == null)
|
||||
return;
|
||||
|
||||
using (var conn = new NpgsqlConnection(formMain.connectionString))
|
||||
{
|
||||
conn.Open();
|
||||
using (var cmd = new NpgsqlCommand(@$"DELETE FROM DBO.NUTRITION
|
||||
WHERE
|
||||
ID = {selectedItem.ID}", conn))
|
||||
{
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
FillDataGrid(user_id);
|
||||
}
|
||||
|
||||
private void btUpdNutrution_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var selectedItem = (Nutrition)gridNutrition.SelectedItem;
|
||||
|
||||
if (selectedItem == null)
|
||||
return;
|
||||
|
||||
new formUpdNutrition(selectedItem).ShowDialog();
|
||||
|
||||
FillDataGrid(user_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
35
Nutrition/formUpdNutrition.xaml
Normal file
35
Nutrition/formUpdNutrition.xaml
Normal file
@@ -0,0 +1,35 @@
|
||||
<Window x:Class="SportsTrainingApp.Nutrition.formUpdNutrition"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:SportsTrainingApp.Nutrition"
|
||||
mc:Ignorable="d"
|
||||
Title="Изменить питание" Height="150" Width="800" ResizeMode="NoResize" Icon="/free-icon-fitness-4729328.png" WindowStartupLocation="CenterScreen">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
<ColumnDefinition></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"></RowDefinition>
|
||||
<RowDefinition ></RowDefinition>
|
||||
<RowDefinition ></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<DatePicker Name="dtPicker" Grid.Row="1" Grid.Column="0" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbCalories" Grid.Row="1" Grid.Column="1" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbProtein" Grid.Row="1" Grid.Column="2" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbCarbs" Grid.Row="1" Grid.Column="3" Height="25" Margin="10"/>
|
||||
<TextBox x:Name="tbFats" Grid.Row="1" Grid.Column="4" Height="25" Margin="10"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Дата" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="Калории" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="2" Text="Белки" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="3" Text="Углеводы" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4" Text="Жиры" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
<Button Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Height="25" Width="200" Content="Изменить" Click="Button_Click_1"/>
|
||||
<Button Grid.Column="3" Grid.Row="2" Grid.ColumnSpan="2" Height="25" Width="200" Content="Отмена" Click="Button_Click_2"/>
|
||||
</Grid>
|
||||
</Window>
|
||||
54
Nutrition/formUpdNutrition.xaml.cs
Normal file
54
Nutrition/formUpdNutrition.xaml.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System.Windows;
|
||||
using Npgsql;
|
||||
|
||||
namespace SportsTrainingApp.Nutrition
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for formUpdNutrition.xaml
|
||||
/// </summary>
|
||||
public partial class formUpdNutrition : Window
|
||||
{
|
||||
formNutrition.Nutrition item;
|
||||
public formUpdNutrition(formNutrition.Nutrition _item)
|
||||
{
|
||||
InitializeComponent();
|
||||
item = _item;
|
||||
FillFormFields(item);
|
||||
}
|
||||
|
||||
private void FillFormFields(formNutrition.Nutrition _item)
|
||||
{
|
||||
dtPicker.SelectedDate = _item.Date;
|
||||
tbCalories.Text = _item.Calories.ToString();
|
||||
tbCarbs.Text = _item.Carbs.ToString();
|
||||
tbProtein.Text = _item.Protein.ToString();
|
||||
tbFats.Text = _item.Fats.ToString();
|
||||
}
|
||||
|
||||
private void Button_Click_2(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void Button_Click_1(object sender, RoutedEventArgs e)
|
||||
{
|
||||
using (var conn = new NpgsqlConnection(formMain.connectionString))
|
||||
{
|
||||
conn.Open();
|
||||
using (var cmd = new NpgsqlCommand(@$"UPDATE dbo.nutrition
|
||||
SET user_id=@user_id, date=@date, calories=@calories, protein=@protein, carbs=@carbs, fats=@fats
|
||||
WHERE id = {item.ID};", conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("user_id", item.User_id);
|
||||
cmd.Parameters.AddWithValue("date", dtPicker.SelectedDate.Value);
|
||||
cmd.Parameters.AddWithValue("calories", Convert.ToInt32(tbCalories.Text));
|
||||
cmd.Parameters.AddWithValue("protein", Convert.ToDouble(tbProtein.Text));
|
||||
cmd.Parameters.AddWithValue("carbs", Convert.ToDouble(tbCarbs.Text));
|
||||
cmd.Parameters.AddWithValue("fats", Convert.ToDouble(tbFats.Text));
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user