/// <summary> /// Добавляет новое ОСП в общий список. /// </summary> /// <param name="newOsp">Новое ОСП</param> public void AddNewOsp(OspDTO newOsp) { if (newOsp != null) { Osps.Add(newOsp); } }
/// <summary> /// Обновляет одно ОСП. /// </summary> /// <param name="editedOsp">Отредактированное ОСП</param> public void UpdateOsp(OspDTO editedOsp) { // Найти ОСП, равное редактированному, в текущем списке всех ОСП. OspDTO osp = Osps.FirstOrDefault(x => x.Id == editedOsp.Id); // Если ОСП найден. if (osp != null) { // Присвоить значения свойств отредактированного ОСП текущему. foreach (var prop in osp.GetType().GetProperties()) { prop.SetValue(osp, prop.GetValue(editedOsp)); } // Если отредактированное ОСП является текущиим для пользователя. if (editedOsp.Id == CurrentUser.Osp.Id) { // Присвоить значения свойств отредактированного ОСП текущему ОСП пользователя. foreach (var prop in CurrentUser.Osp.GetType().GetProperties()) { prop.SetValue(CurrentUser.Osp, prop.GetValue(editedOsp)); } } } }
public OspDataDTO GetOspData(int userId, int ospId) { // Период получения документов в ОСА (30 дней). DateTime startPeriod = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(-30); DateTime endPeriod = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); // Получить общие списки. ICollection <AccessDTO> allAccesses = Accesses.GetAll(); ICollection <UserDTO> allUsers = Users.GetAll(); ICollection <CartridgeDTO> allCarts = Cartridges.GetAll(); ICollection <PrinterDTO> allPrints = Printers.GetAll(); ICollection <OspDTO> allOsps = Osps.GetAll(); // Получить данные по ОСП. ICollection <BalanceDTO> balances = Balance.Find(x => x.Osp.Id == ospId); ICollection <EmailDTO> emails = Emails.Find(x => x.Osp.Id == ospId); ICollection <ProviderDTO> providers = Providers.Find(x => x.Osp.Id == ospId); ICollection <ReceiptDTO> receipts = Receipts.Find(u => u.Osp.Id == ospId && u.Date >= startPeriod && u.Date <= endPeriod); ICollection <ExpenseDTO> expenses = Expenses.Find(u => u.Osp.Id == ospId && u.Date >= startPeriod && u.Date <= endPeriod); ICollection <ExpenseDTO> userExpenses = Expenses.Find(u => u.User.Id == userId && u.Osp.Id == ospId && u.Date >= startPeriod && u.Date <= endPeriod); // Создать объект данных для пользователя. var userDataDTO = new OspDataDTO() { Accesses = new ObservableCollection <AccessDTO>(allAccesses), Osps = new ObservableCollection <OspDTO>(allOsps), Cartridges = new ObservableCollection <CartridgeDTO>(allCarts), Printers = new ObservableCollection <PrinterDTO>(allPrints), Balance = new ObservableCollection <BalanceDTO>(balances), Expenses = new ObservableCollection <ExpenseDTO>(expenses), UserExpenses = new ObservableCollection <ExpenseDTO>(userExpenses), Providers = new ObservableCollection <ProviderDTO>(providers), Receipts = new ObservableCollection <ReceiptDTO>(receipts), Emails = new ObservableCollection <EmailDTO>(emails), Users = new ObservableCollection <UserDTO>(allUsers) }; return(userDataDTO); }