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()); }
public static string BuildFavorite(FavoriteQuery query) { StringBuilder sb = new StringBuilder(); sb.Append("SET Transaction Isolation Level Read UNCOMMITTED "); SelectQueryBuilder builder = new SelectQueryBuilder(); builder.SelectFromTable("UFavorite"); builder.SelectColumns("FavoriteID"); if (!string.IsNullOrEmpty(query.FavoriteTitleFilter)) { builder.AddWhere("FavoriteTitle", Comparison.Like, query.FavoriteTitleFilter); } if (!string.IsNullOrEmpty(query.FavoriteMemoFilter)) { builder.AddWhere("FavoriteMemo", Comparison.Like, "%" + query.FavoriteMemoFilter + "%"); } if (query.UserID != 0) { builder.AddWhere("UserID", Comparison.Equals, query.UserID); } builder.AddWhere("FavoriteType", Comparison.NotEquals, 0); if (query.FavoriteType != null) { builder.AddWhere("FavoriteType", Comparison.Equals, (int)query.FavoriteType); } return(builder.BuildQuery()); }
protected override long ExecuteWorkImplementation() { var now = DateTime.UtcNow; var user = m_favoritesRepository.Load <User>(m_userId); var bookTypeEnum = m_mapper.Map <BookTypeEnum>(m_data.BookType); var queryTypeEnum = m_mapper.Map <QueryTypeEnum>(m_data.QueryType); var bookTypeEntity = m_catalogValueRepository.GetBookType(bookTypeEnum); var label = GetFavoriteLabelAndCheckAuthorization(m_data.FavoriteLabelId, user.Id); label.LastUseTime = now; var favoriteItem = new FavoriteQuery { BookType = bookTypeEntity, Query = m_data.Query, QueryType = queryTypeEnum, CreateTime = now, FavoriteLabel = label, Title = m_data.Title, }; var resultId = (long)m_favoritesRepository.Create(favoriteItem); return(resultId); }
void BindFavs() { FavoriteQuery fq = new FavoriteQuery(); fq.PageSize = int.MaxValue; fq.UserID = Profile.AccountInfo.UserID; fq.FavoriteTitleFilter = txtName.Text.Trim(); if (ddlType.SelectedIndex != 0) { fq.FavoriteType = (FavoriteType)int.Parse(ddlType.SelectedValue); } List <Favorite> favs = Favorites.GetFavorites(fq).Records; egvFavs.DataSource = favs; egvFavs.DataBind(); }
private IQueryOver <FavoriteQuery, FavoriteQuery> CreateFavoriteQueriesQuery(ISession session, long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int userId) { FavoriteQuery favoriteQueryAlias = null; BookType bookTypeAlias = null; var query = session.QueryOver(() => favoriteQueryAlias) .JoinAlias(() => favoriteQueryAlias.BookType, () => bookTypeAlias) .Where(() => bookTypeAlias.Type == bookTypeEnum && favoriteQueryAlias.QueryType == queryTypeEnum && favoriteQueryAlias.User.Id == userId); if (labelId != null) { query.And(() => favoriteQueryAlias.FavoriteLabel.Id == labelId.Value); } if (!string.IsNullOrEmpty(filterByTitle)) { query.AndRestrictionOn(() => favoriteQueryAlias.Title).IsLike(filterByTitle, MatchMode.Anywhere); } return(query); }
public virtual ListWithTotalCountResult <FavoriteQuery> GetFavoriteQueries(long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int start, int count, int userId) { FavoriteQuery favoriteQueryAlias = null; FavoriteLabel favoriteLabelAlias = null; BookType bookTypeAlias = null; var query = GetSession().QueryOver(() => favoriteQueryAlias) .JoinAlias(() => favoriteQueryAlias.FavoriteLabel, () => favoriteLabelAlias) .JoinAlias(() => favoriteQueryAlias.BookType, () => bookTypeAlias) .Where(() => bookTypeAlias.Type == bookTypeEnum && favoriteQueryAlias.QueryType == queryTypeEnum && favoriteLabelAlias.User.Id == userId) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .Fetch(SelectMode.Fetch, x => x.BookType) .OrderBy(x => x.Title).Asc .OrderBy(() => favoriteLabelAlias.Name).Asc; if (labelId != null) { query.And(() => favoriteQueryAlias.FavoriteLabel.Id == labelId.Value); } if (!string.IsNullOrEmpty(filterByTitle)) { filterByTitle = EscapeQuery(filterByTitle); query.AndRestrictionOn(() => favoriteQueryAlias.Title).IsLike(filterByTitle, MatchMode.Anywhere); } var list = query.Skip(start) .Take(count) .Future(); var totalCount = query.ToRowCountQuery() .FutureValue <int>(); return(new ListWithTotalCountResult <FavoriteQuery> { List = list.ToList(), Count = totalCount.Value, }); }
public abstract List <Favorite> GetFavorites(FavoriteQuery query, out int totalRecord);