Задание
Разработка приложения для учета налогоплательщиков на языке C# с испоьзованием баз данных SQL Server и SQLite
Функционал программы
- регистрация пользователей
- авторизация пользователей
- кабинет пользователей
- добавление данных
- изменение данных
- удаление данных
Фрагмент программного кода
using AccountingTaxpayers.BL.Interfaces;
using AccountingTaxpayers.BL.Models;
using System.Linq;
using System.Windows;
namespace AccountingTaxpayers.UI
{
/// <summary>
/// Логика взаимодействия для AddTaxpayersWindow.xaml
/// </summary>
public partial class AddTaxpayersWindow : Window
{
/// <summary>
/// Список допустимых категорий
/// </summary>
private static readonly string[] Categories = { "Юридические лица", "Физические лица" };
/// <summary>
/// Поле хранит идентификатор плательщика
/// </summary>
private int _id;
public AddTaxpayersWindow()
{
InitializeComponent();
// Передаем допустимые значения
cbCategory.ItemsSource = Categories;
// Задаем начальное значение
cbCategory.SelectedIndex = 0;
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
int? deregistration = null;
if (string.IsNullOrEmpty(tbTaxpayerName.Text))
{
MessageBox.Show("Поле Плательщик не должно быть пустым", "Проверка");
return;
}
if (!int.TryParse(tbDateRegistration.Text, out int registration ))
{
MessageBox.Show("Дата постановки на учет должна быть целым числом", "Проверка");
return;
}
if (!string.IsNullOrEmpty(tbDateDeregistration.Text))
{
if (!int.TryParse(tbDateDeregistration.Text, out int intDeregistration))
{
MessageBox.Show("Дата снятия с учета должна быть целым числом", "Проверка");
return;
}
if (intDeregistration < registration)
{
MessageBox.Show("Дата снятия с учета должна быть больше даты постановки на учет", "Проверка");
return;
}
deregistration = intDeregistration;
}
// Создаем объект для передачи данных
TaxpayerDto taxpayer = new TaxpayerDto
{
// Заполняем объект данными
TaxpayerName = tbTaxpayerName.Text,
DateRegistration = registration,
DateDeregistration = deregistration,
Category = cbCategory.SelectedItem.ToString()
};
// Именно тут запрашиваем реализованную раннее задачу по работе с плательщиками
ITaxpayerProcess taxpayerProcess = ProcessFactory.GetTaxpayerProcess();
// если это новый объект - сохраняем его
if (_id == 0)
{
// Сохраняем плательщика
taxpayerProcess.Add(taxpayer);
}
else // иначе обновляем
{
// копируем обратно идентификатор объекта
taxpayer.Id = _id;
taxpayerProcess.Update(taxpayer);
}
// и закрываем форму
Close();
}
public void Load(TaxpayerDto taxpayer)
{
// если объект не существует, или его категория не в списке допустимых, выходим
if (taxpayer == null || !Categories.Contains(taxpayer.Category))
return;
// сохраняем id плательщика
_id = taxpayer.Id;
// заполняем визуальные компоненты для отображения данных
tbTaxpayerName.Text = taxpayer.TaxpayerName;
tbDateRegistration.Text = taxpayer.DateRegistration.ToString();
if (taxpayer.DateDeregistration.HasValue)
tbDateDeregistration.Text = taxpayer.DateDeregistration.Value.ToString();
cbCategory.SelectedItem = taxpayer.Category;
}
}
}
Скриншот архива с проектом

Пояснения по запуску программы
Запустить Visual Studio 2022, запустить проект. В архиве есть инструкция по подключению БД.
Телеграм
-