/// <summary>
 /// Отчистить таблицу.
 /// </summary>
 /// <typeparam name="T">Класс таблицы.</typeparam>
 protected void RemoveRange <T>() where T : class
 {
     using (var db = new MedicalProductContext())
     {
         db.Set <T>().RemoveRange(db.Set <T>());
         db.SaveChanges();
     }
 }
 /// <summary>
 /// Сохранение элементов.
 /// </summary>
 /// <param name="name">Наименование элемента таблицы.</param>
 protected void Save <T>(T item) where T : class
 {
     using (var db = new MedicalProductContext())
     {
         db.Set <T>().Add(item);
         db.SaveChanges();
     }
 }
 /// <summary>
 /// Подсчет суммы покупки.
 /// </summary>
 /// <param name="id">Id покупки.</param>
 public void Total(int id)
 {
     using (var db = new MedicalProductContext())
     {
         Purchase pur = db.Purchases.SingleOrDefault(m => m.Id == id);
         if (pur == null)
         {
             throw new ArgumentException($"Покупка с Id: {id} не найдена.", nameof(id));
         }
         List <PositionPurchase> posit = db.PositionPurchases.Where(c => c.PurchaseId == id).ToList();
         decimal sum = posit.Sum(x => x.TotalPosition);
         pur.Total = sum;
         db.SaveChanges();
     };
 }
 /// <summary>
 /// Изменить количество единиц препарата в аптечке.
 /// </summary>
 /// <param name="id">Id препарата.</param>
 /// <param name="num">Итоговое значение единиц препарата в аптечке.</param>
 public void ChangeNumber(int id, int num)
 {
     if (num < 0 || num > 600)
     {
         throw new ArgumentException("Количество не может быть отрицательным, и не должно быть больше 600 единиц.", nameof(num));
     }
     using (var db = new MedicalProductContext())
     {
         Medicine med = db.Medicines.SingleOrDefault(m => m.Id == id);
         if (med == null)
         {
             throw new ArgumentException($"Изделие медицинского назначения с Id: {id} не найдено.", nameof(id));
         }
         db.Entry(med).Property(u => u.Number).CurrentValue = num;
         db.SaveChanges();
         Console.Write(med.ToString());
     };
 }