/// <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="num">Количество прибавляемых единиц.</param> /// <returns>Итоговое количество единиц препарата в аптечке.</returns> private int GetNumber() { using (var db = new MedicalProductContext()) { int num = db.Entry(CurrentMedicine).Property(n => n.Number).CurrentValue; return(num); }; }
/// <summary> /// Получение элементов таблицы. /// </summary> /// <returns>список элементов.</returns> protected List <T> Load <T>() where T : class { using (var db = new MedicalProductContext()) { return(db.Set <T>().Where(t => true).ToList() ?? new List <T>()); } }
/// <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> protected void Show <T>() where T : class { using (var db = new MedicalProductContext()) { var items = db.Set <T>().Where(t => true).ToList(); foreach (var item in items) { Console.Write(item.ToString()); } }; }
/// <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> public void ShowOne(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)); } Console.Write(pur.ToString()); Console.WriteLine("Позиции:"); List <PositionPurchase> poss = db.PositionPurchases.Where(c => c.PurchaseId == id).ToList(); foreach (var item in poss) { Console.Write(item.ToString()); } }; }
/// <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()); }; }
/// <summary> /// Показать конкретный препарат полностью (состав, показания к прменению). /// </summary> /// <param name="id">Id конкретного препарата.</param> public void ShowOne(int id) { using (var db = new MedicalProductContext()) { Medicine med = db.Medicines.SingleOrDefault(m => m.Id == id); if (med == null) { throw new ArgumentException($"Изделие медицинского назначения с Id: {id} не найдено.", nameof(id)); } Console.Write(med.ToString()); Console.WriteLine("Состав:"); List <Component> comps = db.Components.Where(c => c.MedicineId == id).ToList(); foreach (var item in comps) { Console.Write(item.ToString()); } Console.WriteLine("Показания к применению:"); List <IndicationsForUse> inds = db.IndicationsForUses.Where(c => c.MedicineId == id).ToList(); foreach (var item in inds) { Console.Write(item.ToString()); } }; }