/// <summary>
 /// Добавляет новый картридж в общий список.
 /// </summary>
 /// <param name="newCartridge">Новый картридж</param>
 public void AddNewCartridge(CartridgeDTO newCartridge)
 {
     if (newCartridge != null)
     {
         Cartridges.Add(newCartridge);
     }
 }
Beispiel #2
0
 /// <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;
 }