Пример #1
0
        public IList <long> CreateFavoriteQuery(BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string query, string title, IList <long> labelIds)
        {
            var now  = DateTime.UtcNow;
            var user = TryGetUser();

            var labels           = GetFavoriteLabelsAndCheckAuthorization(labelIds, user.Id);
            var labelsDictionary = labels.ToDictionary(x => x.Id);
            var itemsToSave      = new List <FavoriteQuery>();

            var bookTypeEnum   = Mapper.Map <BookTypeEnum>(bookType);
            var queryTypeEnum  = Mapper.Map <QueryTypeEnum>(queryType);
            var bookTypeEntity = m_bookVersionRepository.GetBookType(bookTypeEnum);

            foreach (var labelId in labelIds)
            {
                var label = labelsDictionary[labelId];
                label.LastUseTime = now;

                var favoriteItem = new FavoriteQuery
                {
                    BookType      = bookTypeEntity,
                    Query         = query,
                    QueryType     = queryTypeEnum,
                    CreateTime    = now,
                    User          = user,
                    FavoriteLabel = label,
                    Title         = title,
                };
                itemsToSave.Add(favoriteItem);
            }

            var result = m_favoritesRepository.CreateAll(itemsToSave);

            return(result.Cast <long>().ToList());
        }
Пример #2
0
        public ActionResult GetFavoriteLabelsWithBooksAndCategories(BookTypeEnumContract bookType)
        {
            var client = GetFavoriteClient();
            var result = client.GetFavoriteLabelsWithBooksAndCategories(bookType, GetDefaultProjectType());

            return(Json(result));
        }
Пример #3
0
        public static string GetCategoryName(BookTypeEnumContract bookType)
        {
            switch (bookType)
            {
            case BookTypeEnumContract.Edition:
                return("Edice");

            case BookTypeEnumContract.Dictionary:
                return("Slovníky");

            case BookTypeEnumContract.Grammar:
                return("Digitalizované mluvnice");

            case BookTypeEnumContract.ProfessionalLiterature:
                return("Odborná literatura");

            case BookTypeEnumContract.TextBank:
                return("Textová banka");

            case BookTypeEnumContract.BibliographicalItem:
                return("Bibliografie");

            case BookTypeEnumContract.CardFile:
                return("Kartotéky");

            case BookTypeEnumContract.AudioBook:
                return("Audio knihy");

            default:
                return(null);
            }
        }
Пример #4
0
 public ActionResult GetFavoriteQueriesCount(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string filterByTitle)
 {
     using (var client = GetMainServiceClient())
     {
         var result = client.GetFavoriteQueriesCount(labelId, bookType, queryType, filterByTitle);
         return(Json(result));
     }
 }
Пример #5
0
 public ActionResult GetFavoriteLabelsWithBooksAndCategories(BookTypeEnumContract bookType)
 {
     using (var client = GetMainServiceClient())
     {
         var result = client.GetFavoriteLabelsWithBooksAndCategories(bookType);
         return(Json(result));
     }
 }
Пример #6
0
        public ActionResult GetFavoriteQueriesCount(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType,
                                                    string filterByTitle)
        {
            var client = GetFavoriteClient();
            var result = client.GetFavoriteQueries(0, 0, labelId, bookType, queryType, filterByTitle);

            return(Json(result.TotalCount));
        }
Пример #7
0
        public ActionResult GetFavoriteQueries(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType,
                                               string filterByTitle, int start, int count)
        {
            var client = GetFavoriteClient();
            var result = client.GetFavoriteQueries(start, count, labelId, bookType, queryType, filterByTitle);

            return(Json(result.List));
        }
Пример #8
0
        private ActionResult RedirectToFavoriteQuery(BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string query)
        {
            string area   = null;
            string action = null;

            switch (bookType)
            {
            case BookTypeEnumContract.AudioBook:
                area = "AudioBooks";
                break;

            case BookTypeEnumContract.BibliographicalItem:
                area = "Bibliographies";
                break;

            case BookTypeEnumContract.CardFile:
                area = "CardFiles";
                break;

            case BookTypeEnumContract.Dictionary:
                area = "Dictionaries";
                break;

            case BookTypeEnumContract.Edition:
                area = "Editions";
                break;

            case BookTypeEnumContract.Grammar:
                area = "OldGrammar";
                break;

            case BookTypeEnumContract.ProfessionalLiterature:
                area = "ProfessionalLiterature";
                break;

            case BookTypeEnumContract.TextBank:
                area = "BohemianTextBank";
                break;
            }

            switch (queryType)
            {
            case QueryTypeEnumContract.Search:
                action = "Search";
                break;

            case QueryTypeEnumContract.List:
                action = "List";
                break;

            case QueryTypeEnumContract.Reader:
                return(View("AmbiguousFavoriteRedirect"));
            }

            return(RedirectToAction(action, area, new { area = area, search = query }));
        }
Пример #9
0
        public int GetFavoriteQueriesCount(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string filterByTitle)
        {
            var user          = TryGetUser();
            var bookTypeEnum  = Mapper.Map <BookTypeEnum>(bookType);
            var queryTypeEnum = Mapper.Map <QueryTypeEnum>(queryType);

            var resultCount = m_favoritesRepository.GetFavoriteQueriesCount(labelId, bookTypeEnum, queryTypeEnum, filterByTitle, user.Id);

            return(resultCount);
        }
Пример #10
0
        public IList <FavoriteQueryContract> GetFavoriteQueries(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string filterByTitle, int start, int count)
        {
            var user          = TryGetUser();
            var bookTypeEnum  = Mapper.Map <BookTypeEnum>(bookType);
            var queryTypeEnum = Mapper.Map <QueryTypeEnum>(queryType);

            var dbResult = m_favoritesRepository.GetFavoriteQueries(labelId, bookTypeEnum, queryTypeEnum, filterByTitle, start, count, user.Id);

            return(Mapper.Map <IList <FavoriteQueryContract> >(dbResult));
        }
Пример #11
0
        public List <BookWithCategoriesContract> GetBooksByTypeForUser(BookTypeEnumContract bookType, int start, int count)
        {
            count = PagingHelper.GetCount(count);
            var projectType     = m_portalTypeProvider.GetDefaultProjectType();
            var projectTypeEnum = m_mapper.Map <ProjectTypeEnum>(projectType);
            var bookTypeEnum    = m_mapper.Map <BookTypeEnum>(bookType);
            var user            = m_authenticationManager.GetCurrentUser(true);
            var dbMetadataList  = m_metadataRepository.InvokeUnitOfWork(x => x.GetMetadataByBookTypeWithCategories(bookTypeEnum, user.Id, projectTypeEnum, start, count));
            var resultList      = m_mapper.Map <List <BookWithCategoriesContract> >(dbMetadataList);

            return(resultList);
        }
Пример #12
0
        public IList <string> GetTypeaheadAuthorsByBookType(string query, BookTypeEnumContract bookTypeContract)
        {
            var bookType = Mapper.Map <BookTypeEnum>(bookTypeContract);

            if (string.IsNullOrWhiteSpace(query))
            {
                return(m_bookRepository.GetLastAuthorsByBookType(PrefetchRecordCount, bookType));
            }

            query = PrepareQuery(query);
            return(m_bookRepository.GetTypeaheadAuthorsByBookType(query, bookType, PrefetchRecordCount));
        }
Пример #13
0
        public HeadwordListContract GetHeadwordList(IList <int> selectedCategoryIds, IList <long> selectedBookIds, int start, int count,
                                                    BookTypeEnumContract bookType)
        {
            var bookIds = GetCompleteBookIdList(selectedCategoryIds, selectedBookIds, Mapper.Map <BookTypeEnum>(bookType));

            m_authorizationManager.FilterBookIdList(ref bookIds); //TODO HACK when all filtered, statement below returns all

            var databaseResult = bookIds == null
                ? m_bookVersionRepository.GetHeadwordList(start, count)
                : m_bookVersionRepository.GetHeadwordList(start, count, bookIds);

            var result = ConvertHeadwordSearchToContract(databaseResult);

            return(result);
        }
Пример #14
0
        public BookTypeSearchResultContract GetBooksWithCategoriesByBookType(BookTypeEnumContract bookType)
        {
            var type  = Mapper.Map <BookTypeEnum>(bookType);
            var books = m_bookRepository.FindBookVersionsByTypeWithCategories(type);

            m_authorizationManager.FilterBookVersionsByCurrentUser(ref books);
            var categories = m_categoryRepository.FindCategoriesByBookType(type);

            return(new BookTypeSearchResultContract
            {
                BookType = bookType,
                Books = Mapper.Map <IList <BookContractWithCategories> >(books),
                Categories = Mapper.Map <IList <CategoryContract> >(categories)
            });
        }
Пример #15
0
        public IList <string> GetTypeaheadTermsByBookType(string query, BookTypeEnumContract bookTypeContract, IList <int> selectedCategoryIds,
                                                          IList <long> selectedBookIds)
        {
            var bookType   = Mapper.Map <BookTypeEnum>(bookTypeContract);
            var bookIdList = GetCompleteBookIdList(selectedCategoryIds, selectedBookIds, bookType);

            m_authorizationManager.FilterBookIdList(ref bookIdList);

            if (string.IsNullOrWhiteSpace(query))
            {
                return(m_bookRepository.GetTermsByBookType(PrefetchRecordCount, bookType, bookIdList));
            }

            query = PrepareQuery(query);
            return(m_bookRepository.GetTermsByBookType(query, bookType, bookIdList, PrefetchRecordCount));
        }
Пример #16
0
        public long GetHeadwordRowNumberById(IList <int> selectedCategoryIds, IList <long> selectedBookIds, string headwordBookId, string headwordEntryXmlId,
                                             BookTypeEnumContract bookType)
        {
            var bookIds = GetCompleteBookIdList(selectedCategoryIds, selectedBookIds, Mapper.Map <BookTypeEnum>(bookType));

            m_authorizationManager.FilterBookIdList(ref bookIds); //TODO HACK when all filtered, statement below returns all

            var resultRowNumber = m_bookVersionRepository.GetHeadwordRowNumberById(bookIds, headwordBookId, headwordEntryXmlId);

            if (resultRowNumber == 0)
            {
                throw new ArgumentException("Headword not found.");
            }

            return(resultRowNumber);
        }
Пример #17
0
        public List <BookWithCategoriesContract> GetBooksByType(BookTypeEnumContract bookTypeEnum, int start, int count)
        {
            try
            {
                var result = m_client.Get <List <BookWithCategoriesContract> >($"book/type/{bookTypeEnum}?start={start}&count={count}");
                return(result);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }
Пример #18
0
        public string GetBookPageByXmlId(string bookGuid, string pageXmlId, OutputFormatEnumContract resultFormat,
                                         BookTypeEnumContract bookTypeContract)
        {
            if (m_log.IsDebugEnabled)
            {
                m_log.DebugFormat("Start MainService (BookManager) get page xmlId '{0}' of book '{1}'", pageXmlId,
                                  bookGuid);
            }

            m_authorizationManager.AuthorizeBook(bookGuid);

            OutputFormat outputFormat;

            if (!Enum.TryParse(resultFormat.ToString(), true, out outputFormat))
            {
                throw new ArgumentException(string.Format("Result format : '{0}' unknown", resultFormat));
            }

            BookTypeEnum bookType;

            if (!Enum.TryParse(bookTypeContract.ToString(), true, out bookType))
            {
                throw new ArgumentException(string.Format("Book type : '{0}' unknown", bookTypeContract));
            }

            var bookVersion         = m_bookRepository.GetLastVersionForBookWithType(bookGuid);
            var transformation      = m_bookRepository.FindTransformation(bookVersion, outputFormat, bookType);
            var transformationName  = transformation.Name;
            var transformationLevel = (ResourceLevelEnumContract)transformation.ResourceLevel;
            var pageText            = m_searchServiceClient.GetBookPageByXmlId(bookGuid, bookVersion.VersionId, pageXmlId,
                                                                               transformationName, resultFormat, transformationLevel);

            if (m_log.IsDebugEnabled)
            {
                m_log.DebugFormat("End MainService (BookManager) get page xmlId '{0}' of book '{1}'", pageXmlId,
                                  bookGuid);
            }

            return(pageText);
        }
Пример #19
0
 public string GetBookPageByXmlId(string bookGuid, string pageXmlId, OutputFormatEnumContract resultFormat, BookTypeEnumContract bookTypeContract)
 {
     return(m_bookManager.GetBookPageByXmlId(bookGuid, pageXmlId, resultFormat, bookTypeContract));
 }
Пример #20
0
 public string GetDictionaryEntryByXmlId(string bookGuid, string xmlEntryId, OutputFormatEnumContract resultFormat, BookTypeEnumContract bookType)
 {
     return(m_bookManager.GetDictionaryEntryByXmlId(bookGuid, xmlEntryId, resultFormat, bookType));
 }
Пример #21
0
 public string GetDictionaryEntryFromSearch(IEnumerable <SearchCriteriaContract> searchCriterias, string bookGuid, string xmlEntryId,
                                            OutputFormatEnumContract resultFormat, BookTypeEnumContract bookType)
 {
     return(m_searchManager.GetDictionaryEntryFromSearch(searchCriterias, bookGuid, xmlEntryId, resultFormat, bookType));
 }
Пример #22
0
 public IList <FavoriteQueryContract> GetFavoriteQueries(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string filterByTitle, int start, int count)
 {
     return(m_favoriteManager.GetFavoriteQueries(labelId, bookType, queryType, filterByTitle, start, count));
 }
Пример #23
0
        public string GetDictionaryEntryFromSearch(IEnumerable <SearchCriteriaContract> searchCriterias, string bookGuid, string xmlEntryId,
                                                   OutputFormatEnumContract resultFormat, BookTypeEnumContract bookTypeContract)
        {
            var criterias = searchCriterias.ToList();

            m_authorizationManager.AuthorizeCriteria(criterias);

            OutputFormat outputFormat;

            if (!Enum.TryParse(resultFormat.ToString(), true, out outputFormat))
            {
                throw new ArgumentException(string.Format("Result format : '{0}' unknown", resultFormat));
            }

            var bookType            = Mapper.Map <BookTypeEnum>(bookTypeContract);
            var bookVersion         = m_bookRepository.GetLastVersionForBookWithType(bookGuid);
            var transformation      = m_bookRepository.FindTransformation(bookVersion, outputFormat, bookType);
            var transformationName  = transformation.Name;
            var transformationLevel = (ResourceLevelEnumContract)transformation.ResourceLevel;
            var dictionaryEntryText = m_searchServiceClient.GetDictionaryEntryFromSearch(criterias,
                                                                                         bookGuid, bookVersion.VersionId, xmlEntryId, transformationName, resultFormat, transformationLevel);

            return(dictionaryEntryText);
        }
Пример #24
0
 public int GetFavoriteQueriesCount(long?labelId, BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string filterByTitle)
 {
     return(m_favoriteManager.GetFavoriteQueriesCount(labelId, bookType, queryType, filterByTitle));
 }
Пример #25
0
        public long GetHeadwordRowNumber(IList <int> selectedCategoryIds, IList <long> selectedBookIds, string query, BookTypeEnumContract bookType)
        {
            var bookIds = GetCompleteBookIdList(selectedCategoryIds, selectedBookIds, Mapper.Map <BookTypeEnum>(bookType));

            m_authorizationManager.FilterBookIdList(ref bookIds); //TODO HACK when all filtered, statement below returns all

            query = EscapeQuery(query);

            var bookHeadword = m_bookVersionRepository.FindFirstHeadword(bookIds, query);

            return(m_bookVersionRepository.GetHeadwordRowNumberById(bookIds, bookHeadword.BookVersion.Book.Guid,
                                                                    bookHeadword.XmlEntryId));
        }
Пример #26
0
 public IList <FavoriteLabelWithBooksAndCategories> GetFavoriteLabelsWithBooksAndCategories(BookTypeEnumContract bookType)
 {
     return(m_favoriteManager.GetFavoriteLabelsWithBooksAndCategories(bookType));
 }
Пример #27
0
        public int GetHeadwordCount(IList <int> selectedCategoryIds, IList <long> selectedBookIds, BookTypeEnumContract bookType)
        {
            var bookIds = GetCompleteBookIdList(selectedCategoryIds, selectedBookIds, Mapper.Map <BookTypeEnum>(bookType));

            m_authorizationManager.FilterBookIdList(ref bookIds); //TODO HACK when all filtered, statement below returns all

            return(bookIds == null
                ? m_bookVersionRepository.GetHeadwordCount()
                : m_bookVersionRepository.GetHeadwordCount(bookIds));
        }
Пример #28
0
 public IList <long> CreateFavoriteQuery(BookTypeEnumContract bookType, QueryTypeEnumContract queryType, string query, string title, IList <long> labelIds)
 {
     return(m_favoriteManager.CreateFavoriteQuery(bookType, queryType, query, title, labelIds));
 }
Пример #29
0
 public BookTypeSearchResultContract GetBooksWithCategoriesByBookType(BookTypeEnumContract bookType)
 {
     return(m_searchManager.GetBooksWithCategoriesByBookType(bookType));
 }
Пример #30
0
        public List <FavoriteLabelWithBooksAndCategories> GetFavoriteLabelsWithBooksAndCategories(BookTypeEnumContract bookType, ProjectTypeContract?projectType)
        {
            try
            {
                var url = UrlQueryBuilder.Create("favorite/label/with-books-and-categories")
                          .AddParameter("bookType", bookType)
                          .AddParameter("projectType", projectType)
                          .ToResult();
                var result = m_client.Get <List <FavoriteLabelWithBooksAndCategories> >(url);
                return(result);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }