示例#1
0
 public IssuingBooksForm(Читатели reader)
 {
     InitializeComponent();
     DataContext = reader;
     IssuedBooksDataGrid.ItemsSource = reader.Выданные_книги;
     //TODO: Добавить редактирование выданных книг(добавление даты возврата). Понять как это всё вообще сохранить.
 }
示例#2
0
        public IssuingBooksViewModel(Читатели reader)
        {
            _reader = reader;

            IssueBook = new RelayCommand(
                (param) =>
            {
                //if(App.MOYABAZA.Читатели.FirstOrDefault(r => r == _reader).Выданные_книги.FirstOrDefault(b => b.Инвентарный_номер == _selectedBook.Инвентарный_номер).Дата_выдачи > _selectedBook.Дата_возврата)
                //{
                //    MessageBox.Show($"Дата возврата не может быть меньше даты выдачи!!!!!!!! \n({_selectedBook.Экземпляры_книги.Книги.Название})");
                //}
                //else
                //{
                App.MOYABAZA.SaveChanges();
                //}
                CollectionViewSource.GetDefaultView(_reader.Выданные_книги).Refresh();
            },
                (param) => /*App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 &&*/ param != null);
        }
示例#3
0
        public ReadersRegViewModel(MOYABAZAEntities model, Читатели reader)
        {
            //App.MOYABAZA.Улицы.Load();
            _reader = reader;
            Streets = CollectionViewSource.GetDefaultView(App.MOYABAZA.Улицы.ToArray());
            if (reader.Номер_читательского_билета == null)
            {
                Title            = "Регистрация читателя";
                ButtonText       = "Зарегистрировать";
                RegistrationTime = DateTime.Now;
            }
            else
            {
                Title      = "Изменение читателя";
                ButtonText = "Изменить";
            }
            AddCommand = new RelayCommand(
                (param) =>
            {
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.AuthorThesaurusName && uo.W == 1) != 0);

            Streets.Filter = FilterFunction;
        }
        public IssuingBooksReaderViewModel(Читатели reader)
        {
            MOYABAZAEntities model = App.MOYABAZA;

            model.Экземпляры_книги.Load();
            _reader = reader;

            GiveBook = new RelayCommand(
                (param) =>
            {
                try
                {
                    foreach (var book in GiveOutBooks)
                    {
                        book.Дата_выдачи = DateTime.Now;
                        _reader.Выданные_книги.Add(book);
                    }
                    App.MOYABAZA.SaveChanges();
                    MessageBox.Show("Книги выданы!");
                    GiveOutBooks.Clear();
                }
                catch (Exception e)
                {
                    MessageBox.Show("Произошла ошибка!\n" + e.Message);
                }
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0);

            AddBook = new RelayCommand(
                (param) =>
            {
                //App.MOYABAZA.SaveChanges();
                int inventaryNumber = int.Parse(InventaryNumber);
                var bookCopy        = model.Экземпляры_книги.FirstOrDefault(x => x.Инвентарный_номер == inventaryNumber);
                var bookToGive      = new Выданные_книги();
                //bookToGive.Инвентарный_номер = bookCopy.Инвентарный_номер;

                if (bookCopy == null)
                {
                    MessageBox.Show("Инвентарный номер не найден!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else if (GiveOutBooks.FirstOrDefault(x => x.Экземпляры_книги.Инвентарный_номер == bookCopy.Инвентарный_номер) != null)
                {
                    MessageBox.Show("Данный экземпляр книги уже добавлен!");
                }
                else
                {
                    bookToGive.Экземпляры_книги = bookCopy;
                    bookToGive.Читатели         = _reader;
                    GiveOutBooks.Add(bookToGive);
                }
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0);

            DeleteBook = new RelayCommand(
                (param) =>
            {
                GiveOutBooks.Remove(param as Выданные_книги);
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null);
        }
示例#5
0
        public ReadersViewModel()
        {
            MOYABAZAEntities model = App.MOYABAZA;

            model.Читатели.Load();
            Readers = CollectionViewSource.GetDefaultView(model.Читатели.Local);

            AddCommand = new RelayCommand(
                (param) =>
            {
                Читатели reader       = new Читатели();
                ReadersReg readersReg = new ReadersReg(model, reader);
                readersReg.ShowDialog();
                if (readersReg.DialogResult == true)
                {
                    model.Читатели.Local.Add(reader);
                    try
                    {
                        model.SaveChanges();
                    }
                    catch (DbUpdateException e)
                    {
                        model.Читатели.Local.Remove(reader);
                        MessageBox.Show($"Такой reader уже существует! \n {e.Message}");
                    }
                    Readers.Refresh();
                }
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.W == 1) != 0);

            ChangeCommand = new RelayCommand(
                (param) =>
            {
                ReadersReg readersReg = new ReadersReg(model, _selectedReader);
                readersReg.ShowDialog();
                if (readersReg.DialogResult == true)
                {
                    try
                    {
                        model.SaveChanges();
                    }
                    catch (DbUpdateException e)
                    {
                        model.Entry(_selectedReader).State = EntityState.Unchanged;
                        MessageBox.Show($"Такой reader уже существует! \n {e.Message}");
                    }
                    Readers.Refresh();
                }
                else
                {
                    model.Entry(_selectedReader).State = EntityState.Unchanged;
                }
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null);

            DeleteCommand = new RelayCommand(
                (param) =>
            {
                if (MessageBox.Show("Уверен?", "Назад дороги не будет", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
                {
                    try
                    {
                        if (_selectedReader.Выданные_книги.Count != 0)
                        {
                            throw new DbUpdateException("У читателя есть выданные книги!!!!");
                        }
                        model.Читатели.Remove(_selectedReader);
                        model.SaveChanges();
                    }
                    catch (DbUpdateException ex)
                    {
                        MessageBox.Show($"Произошла ошибка при удалении данных: {Environment.CommandLine}{ex.Message}", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.D == 1) != 0 && param != null);

            ReturnBookCommand = new RelayCommand(
                (param) =>
            {
                IssuingBooksFormMVVM issuingBooksForm = new IssuingBooksFormMVVM(SelectedReader);
                issuingBooksForm.ShowDialog();
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); // Возможно нужно добавить ещё уровень доступа

            IssueBookCommand = new RelayCommand(
                (param) =>
            {
                IssuingBooksReader issuingBooksReader = new IssuingBooksReader(SelectedReader);
                issuingBooksReader.ShowDialog();
            },
                (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); // Возможно нужно добавить ещё уровень доступа

            Readers.Filter = FilterFunction;
        }
 public IssuingBooksReader(Читатели reader)
 {
     InitializeComponent();
     DataContext = new IssuingBooksReaderViewModel(reader);
 }
 public ReadersReg(MOYABAZAEntities model, Читатели reader)
 {
     InitializeComponent();
     RegDate.SelectedDate = DateTime.Now;
     DataContext          = new ReadersRegViewModel(model, reader);
 }