Ejemplo n.º 1
0
        public WebHub()
        {
            DownloadPath = ConfigurationManager.AppSettings["DownloadPath"];
            //singleton + container pattern
            if (container == null)
            {
                /* # INVERSION OF CONTROL SCANNER/CONTAINER # uncomment this when u deploy in production area

                 Gravicode.Transformer.LibraryScanner scanner = new Gravicode.Transformer.LibraryScanner();
                 scanner.ScanLibrary<IDataContext>(ConfigurationManager.AppSettings["LibraryPath"]);
                 foreach (string a in scanner.GetLibraryList())
                 {
                     Console.WriteLine("Nama fungsi :" + a);
                 }
                 IDataContext redis = scanner.getInstance<IDataContext>(ConfigurationManager.AppSettings["RedisLibPath"]);
                 IDataContext mongo = scanner.getInstance<IDataContext>(ConfigurationManager.AppSettings["MongoLibPath"]);
                 */
                container = new LibraryContainer();
                //database aplikasi dan desain schema
                container.RegisterLibrary<SchemaDb>(new SchemaDb());
                //database untuk relatime data
                container.RegisterLibrary<InMemoryDb>(new InMemoryDb(container.Get<SchemaDb>()));
                //database untuk relational data
                container.RegisterLibrary<DocumentDb>(new DocumentDb(container.Get<SchemaDb>()));
                //database untuk Big Data (historikal) - casandra
                container.RegisterLibrary<ColumnarDb>(new ColumnarDb(container.Get<SchemaDb>()));

            }
        }
    static void Main(string[] args)
    {
        LibraryContainer cntrExmpl = new LibraryContainer();

        try
        {
            BookComponent book1 = new BookComponent("Wizard's First Rule", "Terry Gooodkind");
            cntrExmpl.Add(book1, "0812548051");
            BookComponent book2 = new BookComponent("Stone of Tears", "Terry Gooodkind");
            cntrExmpl.Add(book2, "0812548094");
            BookComponent book3 = new BookComponent("Blood of the Fold", "Terry Gooodkind");
            cntrExmpl.Add(book3, "0812551478");
            BookComponent book4 = new BookComponent("The Soul of the Fire", "Terry Gooodkind");
            //This will generate exception because the ISBN already exists in the container.
            cntrExmpl.Add(book4, "0812551478");
        }
        catch (SystemException e)
        {
            Console.WriteLine("Error description: " + e.Message);
        }

        ComponentCollection datalist = cntrExmpl.Components;
        IEnumerator         denum    = datalist.GetEnumerator();

        while (denum.MoveNext())
        {
            BookComponent cmp = (BookComponent)denum.Current;
            Console.WriteLine("Book Title: " + cmp.Title);
            Console.WriteLine("Book Author: " + cmp.Author);
            Console.WriteLine("Book ISBN: " + cmp.Site.Name);
        }
    }
Ejemplo n.º 3
0
 /// <summary>
 /// Метод, возвращающий количество занятых экземпляров конкретной книги.
 /// </summary>
 /// <param name="id">Идентификатор книги</param>
 /// <returns></returns>
 public static int GetBusyBookCount(int id)
 {
     if (id > 0)
     {
         int inside, outside;
         using (LibraryContainer context = new LibraryContainer())
         {
             try
             {
                 inside = context.CardSet.Where(x => x.BookId1 == id && x.Direction == 1).Sum(x => x.Count);
             }
             catch
             {
                 inside = 0;
             }
             try
             {
                 outside = context.CardSet.Where(x => x.BookId1 == id && x.Direction == 2).Sum(x => x.Count);
             }
             catch
             {
                 outside = 0;
             }
         }
         return(inside - outside);
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Метод, возвращающий коллекцию всех читателей библиотеки.
        /// </summary>
        /// <returns>Все читатели библиотеки.</returns>
        public static IEnumerable <Reader> GetAllReaders()
        {
            List <Reader> list;

            using (LibraryContainer context = new LibraryContainer())
            {
                list = context.ReaderSet.ToList <Reader>();
            }
            return(list);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Метод, осуществляющий запись карточки в БД.
 /// </summary>
 /// <param name="card">Экземпляр карточки.</param>
 public static void AddCard(Card card)
 {
     if (card != null)
     {
         using (LibraryContainer context = new LibraryContainer())
         {
             context.CardSet.Add(card);
             context.SaveChanges();
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Метод, осуществляющий запись нового читателя в БД.
 /// </summary>
 /// <param name="reader">Экземпляр читателя.</param>
 public static void AddReader(Reader reader)
 {
     if (reader != null)
     {
         using (LibraryContainer context = new LibraryContainer())
         {
             context.ReaderSet.Add(reader);
             context.SaveChanges();
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Метод, осуществляющий запись информации о книги в БД.
 /// </summary>
 /// <param name="book">Экземпляр книги, которую необходимо добавить.</param>
 public static void AddBook(Book book)
 {
     if (book != null)
     {
         using (LibraryContainer context = new LibraryContainer())
         {
             context.BookSet.Add(book);
             context.SaveChanges();
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Метод осуществляет поиск книги по идентификатору.
 /// </summary>
 /// <param name="id">Идентификатор книги</param>
 /// <returns></returns>
 public static Book GetBookById(int id)
 {
     if (id > 0)
     {
         Book result;
         using (LibraryContainer context = new LibraryContainer())
         {
             result = context.BookSet.Single(b => b.Id == id);
         }
         return(result);
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Метод, осуществляющий поиск книг в БД по подстроке.
 /// </summary>
 /// <param name="substring">Подстрока для поиска книги</param>
 /// <returns>Список найденных книг</returns>
 public static IEnumerable <Book> GetBookBySubstring(string substring)
 {
     if (!String.IsNullOrEmpty(substring))
     {
         IEnumerable <Book> result;
         using (LibraryContainer context = new LibraryContainer())
         {
             result = context.BookSet.Where(b => b.Discription.Contains(substring)).ToList();
         }
         if (result.Count() < 1)
         {
             return(null);
         }
         else
         {
             return(result);
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Ejemplo n.º 10
0
 public DBConn()
 {
     this.libraryContainer = new LibraryContainer();
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Метод для заполнения БД тестовыми данными.
 /// </summary>
 public static void FillByTestData()
 {
     using (LibraryContainer context = new LibraryContainer())
     {
         context.BookSet.Load();
         if (context.BookSet.Local.Count < 6)
         {
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Достоевский",
                 Count       = 20,
                 Discription = "Как писателя и публициста Ф.М.Достоевского интересовало практически все происходящее в современном ему мире, все находило отклик в его творчестве. «Дневник писателя», помимо обсуждений самых различных тем, от глубоких философских и нравственных вопросов до анализа внешней политики держав, включает прямое обращение к читателю, как к непосредственному соучастнику событий своего времени. Для нашего же времени актуальность «Дневника писателя» заключается в проницательности Ф.М.Достоевского, вскрывающей неизменную суть явлений.",
                 Name        = "Дневник писателя",
                 Year        = 1872,
                 Genre       = "Публицистика",
                 Publishing  = "Русская классика"
             });
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Булгаков Михаил",
                 Count       = 25,
                 Discription = "«Собачье сердце» — одно из самых любимых читателями произведений Михаила Булгакова. Этот вариант текста, пришедший из там/самиздата — не вполне булгаковский, с сотнями произвольных искажений. О нем можно сказать, что это — повесть, которой Булгаков не писал, но именно ее прочитали все.",
                 Name        = "Собачье сердце",
                 Year        = 1925,
                 Genre       = "Советская классическая проза",
                 Publishing  = "Русская классика"
             });
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Достоевский",
                 Count       = 6,
                 Discription = "Идиот - роман, в котором Достоевский впервые с подлинной страстью, ярко и полно изобразил положительного героя, каким его представлял. В князе Мышкине соединились черты образа Христа и одновременно ребенка, умиротворенность, граничащая с беспечностью, и невозможность пройти мимо беды ближнего.В нормальном обществе людей, одержимых корыстью и разрушительными страстями, князь Мышкин - идиот. В мире, где красота замутнена нечистыми помыслами людей, такой герой беспомощен, хотя и прекрасен. Но красота спасет мир!, утверждает Достоевский устами князя Мышкина, и в мире становится светлей.",
                 Name        = "Идиот",
                 Year        = 2002,
                 Genre       = "Драма",
                 Publishing  = "Эксмо"
             });
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Борис Пастернак",
                 Count       = 21,
                 Discription = "Одни из самых лучших, самых сокровенных стихов Б.Пастернак вложил в уста своего любимого героя Юрия Живаго. ДОКТОР ЖИВАГО - роман о любви, о России, о русской природе, о русской интеллигенции... Это роман обо всей нашей жизни. И он удивительно созвучен сегодняшнему дню.",
                 Name        = "Доктор Живаго",
                 Year        = 2016,
                 Genre       = "Русская классика",
                 Publishing  = "Эксмо"
             });
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Лев Толстой",
                 Count       = 7,
                 Discription = "Анна Каренина, один из самых знаменитых романов Льва Толстого, начинается ставшей афоризмом фразой: Все счастливые семьи похожи друг на друга,каждая несчастливая семья несчастлива по - своему.Это книга о вечных ценностях: о любви, о вере, о семье, о человеческом достоинстве.",
                 Name        = "Анна Каренина",
                 Year        = 2016,
                 Genre       = "Русская классика",
                 Publishing  = "Эксмо"
             });
             context.BookSet.Add(
                 new Book
             {
                 Author      = "Иоганн Вольфганг Гете",
                 Count       = 8,
                 Discription = "Великий Гете задумал своего Фауста, когда ему было немногим больше двадцати лет, а завершил трагедию за несколько месяцев до кончины. Это произведение стало итогом философских и художественных исканий автора - поэта, драматурга, прозаика, крупнейшего ученого своего времени, человека энциклопедических познаний. Герой трагедии доктор Иоганн Фауст жил в первой половине XVI века и слыл магом и чернокнижником, который, отвергнув современную науку и религию, продал душу дьяволу.",
                 Name        = "Фауст",
                 Year        = 2014,
                 Genre       = "Мировая классика",
                 Publishing  = "Азбука"
             });
             context.SaveChanges();
         }
     }
 }
Ejemplo n.º 12
0
 public UserController()
 {
     configManager = LibraryContainer.Get <IConfigurationManager>();
     serializer    = LibraryContainer.Get <ISerializer>();
     domain        = LibraryContainer.Get <ICurrentAppDomain>();
 }