private bool Authorization()
 {
     if (reader != null) return true;
     Console.Clear();
     Console.WriteLine(ConsoleResource.AuthorizationTitle);
     Console.Write(ConsoleResource.AuthorNamePrompt);
     string fullName = Console.ReadLine();
     reader = library.GetReader(fullName);
     if (reader == null)
     {
         Console.WriteLine(ConsoleResource.ReaderNotFound);
         Console.WriteLine(ConsoleResource.AddNewReaderQuestion);
         if (GetMenuNumber(1) == 0) return false;
         Console.Write(ConsoleResource.AddressNewReaderPrompt);
         reader = library.AddReader(fullName, Console.ReadLine());
     }
     if (!library.AuthorizationReader(reader))
     {
         Console.WriteLine(ConsoleResource.AuthorizationError, reader.FullName);
         Console.ReadLine();
         reader = null;
         return false;
     }
     return true;
 }
 private static bool ReaderCompare(Reader a, Reader b)
 {
     if (Object.ReferenceEquals(a, b))
     {
         return true;
     }
     return a.Id == b.Id &&
         a.FullName == b.FullName &&
         a.Address == b.Address;
 }
 public Order(Reader reader, Book book)
     : this()
 {
     Id = Guid.NewGuid();
     Reader = reader;
     Book = book;
     if (book != null)
     {
         Department = book.Department;
     }
 }
 public Order(Guid id, Reader reader, Book book)
     : this()
 {
     Id = id;
     Reader = reader;
     Book = book;
     if (book != null)
     {
         Department = book.Department;
     }
 }
 public bool AuthorizationReader(Reader reader)
 {
     if (activeReaders.Contains(reader))
     {
         return false;
     }
     else
     {
         activeReaders.Add(reader);
         return true;
     }
 }
 public override void Save(Reader item)
 {
     Reader reader = GetItem(item.Id);
     if (reader == null)
     {
         context.Readers.InsertOnSubmit(item);
     }
     else
     {
         reader.FullName = item.FullName;
         reader.Address = item.Address;
     }
     context.SubmitChanges();
 }
        public LibraryClassTest()
        {
            repository = new Repository(new MSSQLRepositoryFactory());

            reader = new Reader("Иван Иванов", "Брест");
            repository.ReaderRepository.Save(reader);
            department = new LibraryDepartment("Абонемент", true);
            repository.LibraryDepartmentRepository.Save(department);
            librarian = new Librarian("Мария Иванова", department);
            repository.LibrarianRepository.Save(librarian);
            book = new Book("Михаил Фленов", "Библия C#", 2002, department);
            repository.BookRepository.Save(book);
            book2 = new Book("Бен Ватсон", "С# 4.0 на примерах", 2000, department);
            repository.BookRepository.Save(book2);

            library = new LibraryClass(repository);
        }
        public bool OrderBook(Book book, Reader reader)
        {
            if (openOrders.Select(o => o.Book).Contains(book)) return false;
            if (!activeReaders.Contains(reader)) return false;

            Order order = new Order(reader, book);
            order.TimeGetBook = DateTime.Now;
            order.TimeReturnBook = DateTime.Now;
            order.LibrarianOpenOrder = workLibrarians.First(l => l.Department == book.Department);

            openOrders.Add(order);
            repository.OrderRepository.Save(order);

            return true;
        }
 public IEnumerable<Book> GetBooksOrderedByReader(Reader reader)
 {
     return openOrders.Where(order => order.Reader == reader).Select(order => order.Book);
 }
 public bool ExitReader(Reader reader)
 {
     activeReaders.Remove(reader);
     return true;
 }
 public Reader AddReader(string fullName, string address)
 {
     Reader reader = new Reader(fullName, address);
     repository.ReaderRepository.Save(reader);
     return reader;
 }
 partial void UpdateReader(Reader instance);
        private bool ExitSession()
        {
            if (reader == null) return true;

            library.ExitReader(reader);
            reader = null;

            Console.WriteLine(ConsoleResource.CountinueSessionQuestion);
            if (GetMenuNumber(1) == 0) return true;

            return false;
        }
 public ReaderTest()
 {
     r1 = new Reader("Name1", "Address1");
     r2 = new Reader("Name2", "Address2");
     r3 = new Reader(r1.Id, "Name1", "Address1");
 }
 public override void Remove(Reader item)
 {
     Remove(item.Id);
 }
 partial void DeleteReader(Reader instance);
 public override IEnumerable<Order> GetOrdersByReader(Reader reader, bool closed)
 {
     return context.Orders.Where(order => order.Reader.Id == reader.Id && order.Closed == closed);
 }
 partial void InsertReader(Reader instance);