/// <summary> /// Добавляет новый картридж в общий список. /// </summary> /// <param name="newCartridge">Новый картридж</param> public void AddNewCartridge(CartridgeDTO newCartridge) { if (newCartridge != null) { Cartridges.Add(newCartridge); } }
/// <summary> /// Полный конструктор. /// </summary> /// <param name="id">Id баланса</param> /// <param name="number">Номер</param> /// <param name="cartridge">Картридж</param> /// <param name="count">Количество</param> public BalanceDTO(int id, CartridgeDTO cartridge, int count, bool inUser, int ospId) { Id = id; Cartridge = cartridge; Count = count; InUse = inUser; OspId = ospId; }
/// <summary> /// Конструктор для создания списания пользователем. /// </summary> /// <param name="date">Дата</param> /// <param name="basis">Основание</param> /// <param name="userId">Id пользователя</param> /// <param name="cartridgeId">Id катриджа</param> /// <param name="count">Количество</param> /// <param name="delete">Метка удаления</param> /// <param name="edit">Метка редактирования</param> public ExpenseDTO(int id, int number, DateTime date, string basis, UserDTO user, CartridgeDTO cartridge, int count, int ospId, bool delete = false, bool edit = false) { Id = id; Number = number; Date = date; Basis = basis; User = user; Cartridge = cartridge; Count = count; Delete = delete; Edit = edit; OspId = ospId; }
/// <summary> /// Обновляет один картридж. /// </summary> /// <param name="editedCartridge">Отредактированный картридж</param> public void UpdateCartridge(CartridgeDTO editedCartridge) { // Найти картридж, равный редактированному, в текущем списке всех картриджей. CartridgeDTO cartridge = Cartridges.FirstOrDefault(x => x.Id == editedCartridge.Id); // Найти баланс картриджа, равный редактированному, в текущем списке баланса ОСП. BalanceDTO balance = Balance.FirstOrDefault(x => x.Cartridge.Id == editedCartridge.Id); // Найти все списания пользователя ОСП, в которых списан изменяемый картридж. IEnumerable <ExpenseDTO> userExpenses = UserExpenses.Where(x => x.Cartridge.Id == editedCartridge.Id); // Найти все списания ОСП, в которых списан изменяемый картридж. IEnumerable <ExpenseDTO> expenses = Expenses.Where(x => x.Cartridge.Id == editedCartridge.Id); // Найти все поступления ОСП, в которых добавлен изменяемый картридж. IEnumerable <ReceiptDTO> receipts = Receipts.Where(x => x.Cartridges.Where(c => c.Cartridge.Id == cartridge.Id).Any()); // Если картридж найден. if (cartridge != null) { // Присвоить значения свойств отредактированного картриджа текущему. foreach (var prop in cartridge.GetType().GetProperties()) { prop.SetValue(cartridge, prop.GetValue(editedCartridge)); } // Обновить картридж в объектах списаний, поступлений и баланса. if (balance != null) { balance.Cartridge = cartridge; } if (expenses != null) { foreach (var expense in expenses) { expense.Cartridge = cartridge; } } if (userExpenses != null) { foreach (var userExpense in userExpenses) { userExpense.Cartridge = cartridge; } } if (receipts != null) { foreach (var receipt in receipts) { ReceiptCartridgeDTO receiptCartridge = receipt.Cartridges.FirstOrDefault(x => x.Cartridge.Id == cartridge.Id); receiptCartridge.Cartridge = cartridge; } } } }
/// <summary> /// Полный конструктор. /// </summary> /// <param name="id">Id записи картриджа поступления</param> /// <param name="cartridge">Картридж</param> /// <param name="count">Количество</param> public ReceiptCartridgeDTO(int id, CartridgeDTO cartridge, int count) { Id = id; Cartridge = cartridge; Count = count; }