готово

This commit is contained in:
evasina2312@gmail.com 2023-05-18 03:21:22 +04:00
parent bb11e31e1b
commit 188dac15a1
2 changed files with 312 additions and 16 deletions

View File

@ -28,7 +28,10 @@ namespace Lab_5
public static void GetIncomes()
{
using Context context = new();
var incomes = context.Incomes.ToList();
var incomes = context.Incomes
.Include(x => x.FamalyMember)
.Include(x => x.SourceIncome)
.ToList();
if (incomes.Count == 0)
{
Console.WriteLine("Список доходов пуст");
@ -37,7 +40,7 @@ namespace Lab_5
{
foreach (var income in incomes)
{
Console.WriteLine($"{income.Id}. Член семьи: {income.FamalyMember}. Источник дохода: {income.SourceIncome}. Сумма: {income.Summa}");
Console.WriteLine($"{income.Id}. Член семьи: {income.FamalyMember.Name}. Источник дохода: {income.SourceIncome.Name}. Сумма: {income.Summa}");
}
}
}
@ -48,7 +51,7 @@ namespace Lab_5
var categories = context.CategorysExpenses.ToList();
if (categories.Count == 0)
{
Console.WriteLine("Список категорий расходов пуст");
Console.WriteLine("Список статей расходов пуст");
}
else
{
@ -59,10 +62,13 @@ namespace Lab_5
}
}
public static void Expenses()
public static void GetExpenses()
{
using Context context = new();
var expenses = context.Expenses.ToList();
var expenses = context.Expenses
.Include(x => x.FamalyMember)
.Include(x => x.CategoryExpenses)
.ToList();
if (expenses.Count == 0)
{
Console.WriteLine("Список доходов пуст");
@ -71,7 +77,24 @@ namespace Lab_5
{
foreach (var expens in expenses)
{
Console.WriteLine($"{expens.Id}. Член семьи: {expens.FamalyMember}. Источник дохода: {expens.CategoryExpenses}. Сумма: {expens.Summa}");
Console.WriteLine($"{expens.Id}. Член семьи: {expens.FamalyMember.Name}. Статья расходов: {expens.CategoryExpenses.Name}. Сумма: {expens.Summa}");
}
}
}
public static void GetFamalyMember()
{
using Context context = new();
var members = context.FamalyMembers.ToList();
if (members.Count == 0)
{
Console.WriteLine("Список членов семьи пуст");
}
else
{
foreach (var member in members)
{
Console.WriteLine($"{member.Id}. Название: {member.Name}");
}
}
}
@ -90,33 +113,240 @@ namespace Lab_5
}
public static void AddCategoryExpenses()
{
using Context context = new();
CategoryExpenses category = new();
Console.WriteLine("Введите название категории расходов");
Console.WriteLine("Введите название статьи расходов");
category.Name = Console.ReadLine() ?? string.Empty;
context.CategorysExpenses.Add(category);
context.SaveChanges();
Console.WriteLine("Категория расходов добавлена");
Console.WriteLine("Статья расходов добавлена");
}
public static void AddFamalyMember()
{
using Context context = new();
FamalyMember member = new();
Console.WriteLine("Название продукта?");
Console.WriteLine("Введите имя члена семьи");
member.Name = Console.ReadLine() ?? string.Empty;
context.FamalyMembers.Add(member);
context.SaveChanges();
Console.WriteLine("Продукт успешно добавлен");
Console.WriteLine("Член семьи добавлен");
}
public static void AddIncome()
{
//вводим конструкцию try catch, чтобы программа не упала, если пользователь введёт, например, строку вместо числа, и у программы не получится конвертировать в int
try
{
Console.WriteLine("Введите сумму");
int Summa = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите номер члена семьи");
int famalyMemberId = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите номер источника доходов");
int sourceIncomeId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
//Ищем члена семьи с заданным пользователем Id
var famalyMember = context.FamalyMembers.FirstOrDefault(x => x.Id == famalyMemberId);
//Ищем источник доходов с заданным пользователем Id
var sourceIncome = context.SourcesIncome.FirstOrDefault(x => x.Id == sourceIncomeId);
//Прекращаем выполнение функции, если чего-то не нашли
if (famalyMember == null || sourceIncome == null)
{
Console.WriteLine("Не найден член семьи или источник доходов");
return;
}
//если всё нашли, добавляем новую запись в таблицу Incomes
var newIncome = new Income()
{
FamalyMember = famalyMember,
SourceIncome = sourceIncome,
Summa = Summa
};
context.Incomes.Add(newIncome);
context.SaveChanges();
Console.WriteLine("Успешно");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
public static void AddExpence()
{
//вводим конструкцию try catch, чтобы программа не упала, если пользователь введёт, например, строку вместо числа, и у программы не получится конвертировать в int
try
{
Console.WriteLine("Введите сумму");
int Summa = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите номер члена семьи");
int famalyMemberId = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите номер статьи расходов");
int categoryExpenseId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
//Ищем члена семьи с заданным пользователем Id
var famalyMember = context.FamalyMembers.FirstOrDefault(x => x.Id == famalyMemberId);
//Ищем статью расходов с заданным пользователем Id
var categoryExpense = context.CategorysExpenses.FirstOrDefault(x => x.Id == categoryExpenseId);
//Прекращаем выполнение функции, если чего-то не нашли
if (famalyMember == null || categoryExpense == null)
{
Console.WriteLine("Не найден член семьи или статья расходов");
return;
}
//если всё нашли, добавляем новую запись в таблицу Expences
var newExpense = new Expens()
{
FamalyMember = famalyMember,
CategoryExpenses = categoryExpense,
Summa = Summa
};
context.Expenses.Add(newExpense);
context.SaveChanges();
Console.WriteLine("Успешно");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
// Обновление данных
public static void UpdateSorceIncome()
{
try
{
Console.WriteLine("Введите номер источника дохода");
int sourceId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
var source = context.SourcesIncome.FirstOrDefault(x => x.Id == sourceId);
if (source == null)
{
Console.WriteLine("Не найден источник дохода с таким номером");
return;
}
Console.WriteLine("Введите новое наименование");
string sourceName = Console.ReadLine() ?? string.Empty;
source.Name = sourceName;
context.SourcesIncome.Update(source);
context.SaveChanges();
Console.WriteLine("Информация обновлена");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
public static void UpdateCategoryExpenses()
{
try
{
Console.WriteLine("Введите номер статьи расходов");
int categoryId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
var category = context.CategorysExpenses.FirstOrDefault(x => x.Id == categoryId);
if (category == null)
{
Console.WriteLine("Не найдена статья затрат с таким номером");
return;
}
Console.WriteLine("Введите новое наименование");
string categoryName = Console.ReadLine() ?? string.Empty;
category.Name = categoryName;
context.CategorysExpenses.Update(category);
context.SaveChanges();
Console.WriteLine("Информация обновлена");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
// Удаление данных
public static void DeleteSourceIncome()
{
try
{
Console.WriteLine("Введите номер источника дохода");
int sourceId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
var source = context.SourcesIncome.FirstOrDefault(x => x.Id == sourceId);
if (source == null)
{
Console.WriteLine("Не найден источник дохода с таким номером");
return;
}
context.Remove(source);
context.SaveChanges();
Console.WriteLine("Источник дохода удалён");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
public static void DeleteCategoryExpenses()
{
try
{
Console.WriteLine("Введите номер статьи расходов");
int categoryId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
var category= context.CategorysExpenses.FirstOrDefault(x => x.Id == categoryId);
if (category == null)
{
Console.WriteLine("Не найдена статья расходов с таким номером");
return;
}
context.Remove(category);
context.SaveChanges();
Console.WriteLine("Статья расходов удалёна");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
public static void DeleteFamalyMember()
{
try
{
Console.WriteLine("Введите номер источника дохода");
int memberId = Convert.ToInt32(Console.ReadLine());
using Context context = new();
var member = context.FamalyMembers.FirstOrDefault(x => x.Id == memberId);
if (member == null)
{
Console.WriteLine("Не найден источник дохода с таким номером");
return;
}
context.Remove(member);
context.SaveChanges();
Console.WriteLine("Источник дохода удалён");
}
catch
{
Console.WriteLine("Неверный ввод");
}
}
public static void Truncate()
{
using Context context = new();
context.SourcesIncome.RemoveRange(context.SourcesIncome);
context.Incomes.RemoveRange(context.Incomes);
context.CategorysExpenses.RemoveRange(context.CategorysExpenses);
context.Expenses.RemoveRange(context.Expenses);
context.FamalyMembers.RemoveRange(context.FamalyMembers);
Console.WriteLine("База данных очищена");
}
}
}

View File

@ -1,2 +1,68 @@
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace Lab_5
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Начало работы программы\n");
Console.WriteLine("1 - получение списка всех доходов\n" +
"2 - получение списка всех расходов\n" +
"3 - получение списка всех членов семьи\n" +
"4 - добавить доход\n" +
"5 - добавить расход\n" +
"6 - добавить члена семьи\n" +
"7 - добавить источник дохода\n" +
"8 - добавить статью расходов\n" +
"9 - обновить источник дохода\n" +
"10 - обновить статью затрат\n" +
"11 - удалить источник дохода\n" +
"12 - удалить статью расходов");
string? command = Console.ReadLine();
while (command != null || command != "Выход")
{
switch (command)
{
case "1":
Controller.GetIncomes();
break;
case "2":
Controller.GetExpenses();
break;
case "3":
Controller.GetFamalyMember();
break;
case "4":
Controller.AddIncome();
break;
case "5":
Controller.AddExpence();
break;
case "6":
Controller.AddFamalyMember();
break;
case "7":
Controller.AddSourceIncome();
break;
case "8":
Controller.AddCategoryExpenses();
break;
case "9":
Controller.UpdateSorceIncome();
break;
case "10":
Controller.UpdateCategoryExpenses();
break;
case "11":
Controller.DeleteSourceIncome();
break;
case "12":
Controller.DeleteCategoryExpenses();
break;
default:
Console.WriteLine("Неверный ввод");
break;
}
}
}
}
}