Задание на программу:
Написать программу, целью которой является назначение запланированных дел по отношению к клиентам, хранящимся в базе данных. Категории запланированных дел: Звонок, Встреча и День Рождения
Описание программы:
При написании спользовались: 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, скомпилированная программа и база данных;
kostyaLem