Задание на программу:
Написать программу, целью которой является назначение запланированных дел по отношению к клиентам, хранящимся в базе данных. Категории запланированных дел: Звонок, Встреча и День Рождения
Описание программы:
При написании спользовались: WPF + MVVM, SQLite + Entity Framework и C#.
Дополнительно:
Всё работает с первого запуска без каких либо дополнительных установок.
Фрагмент программного кода:
/// <summary>
/// Базовый сервис для управления сущностями базы данных.
/// Для каждой операции создаётся контекст SecretaryContext, с которым далее
/// происходят манипуляции.
/// </summary>
/// <typeparam name="T"> Тип сущности, которая управляется </typeparam>
public abstract class BaseService<T> where T : class
{
protected readonly DbContextOptions<SecretaryContext> ContextOptions;
public BaseService(string connectionString)
{
ContextOptions = new DbContextOptionsBuilder<SecretaryContext>().UseSqlite(connectionString).Options;
}
/// <summary>
/// Добавление сущности
/// </summary>
public virtual bool Add(T entity)
{
using (var context = new SecretaryContext(ContextOptions))
{
context.Add(entity);
return context.SaveChanges() != 0;
}
}
} /// <summary>
/// Меняет готовность задачи на противоположную
/// </summary>
/// <param name="schedules"> Список задач </param>
public void ChangeSchedule(IEnumerable<Schedule> schedules)
{
using (var context = new SecretaryContext(ContextOptions))
{
foreach (var schedule in schedules)
{
var dbSchedule = context.Schedule.First(x => x.Id == schedule.Id);
dbSchedule.IsDone = Math.Abs(schedule.IsDone - 1);
context.SaveChanges();
}
}
}
/// <summary>
/// Получить список задач в соответствии с выбранным типом задач
/// </summary>
/// <param name="dealType"> Тип задачи </param>
/// <returns> Список найденных задач </returns>
public IEnumerable<Schedule> GetSchedules(DealType dealType)
{
using (var context = new SecretaryContext(ContextOptions))
{
if (dealType == DealType.All)
return context.Schedule.Include(x => x.Customer).ToList();
else
return context.Schedule.Include(x => x.Customer).Where(x => x.DealType == dealType.ToString()).ToList();
}
}
Скриншот архива с проектом:

Содержание архива:
- Папка с исходным проектом в Visual Studio 2019, скомпилированная программа и база данных;
Телеграм
-