private IQueryOver <FavoriteBase, FavoriteBase> CreateGetFavoriteItemsQuery(long?labelId, FavoriteTypeEnum?filterByType, string filterByTitle, int userId) { FavoriteLabel favoriteLabelAlias = null; var query = GetSession().QueryOver <FavoriteBase>() .JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias) .Where(() => favoriteLabelAlias.User.Id == userId); if (labelId != null) { query.And(x => x.FavoriteLabel.Id == labelId.Value); } if (filterByType != null) { query.And(x => x.FavoriteType == GetFavoriteTypeDiscriminatorValue(filterByType.Value)); } if (!string.IsNullOrWhiteSpace(filterByTitle)) { filterByTitle = EscapeQuery(filterByTitle); query.AndRestrictionOn(x => x.Title).IsLike(filterByTitle, MatchMode.Anywhere); } return(query); }
public PrivateUserContract CreateLocalUser(PrivateUserContract user) { var now = DateTime.UtcNow; var defaultFavoriteLabel = new FavoriteLabel { Name = DefaultFavoriteLabelName, Color = DefaultFavoriteLabelColor, IsDefault = true, LastUseTime = now }; var dbUser = new User { UserName = user.UserName, Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, CreateTime = now, PasswordHash = user.PasswordHash, AuthenticationProvider = AuthenticationProvider.ItJakub, CommunicationToken = m_communicationTokenGenerator.GetNewCommunicationToken(), CommunicationTokenCreateTime = now, Groups = new List <Group> { m_defaultMembershipProvider.GetDefaultRegisteredUserGroup(), m_defaultMembershipProvider.GetDefaultUnRegisteredUserGroup() }, FavoriteLabels = new List <FavoriteLabel> { defaultFavoriteLabel } }; defaultFavoriteLabel.User = dbUser; var userId = m_userRepository.Create(dbUser); return(GetPrivateUserDetail(userId)); }
public virtual FavoriteLabel GetDefaultFavoriteLabel(int userId) { FavoriteLabel favoriteLabelAlias = null; User userAlias = null; return(GetSession().QueryOver(() => favoriteLabelAlias) .JoinAlias(() => favoriteLabelAlias.User, () => userAlias) .Where(() => favoriteLabelAlias.IsDefault && userAlias.Id == userId) .SingleOrDefault()); }
public virtual IList <FavoriteHeadword> GetAllFavoriteHeadwords(long userId) { FavoriteLabel favoriteLabelAlias = null; return(GetSession().QueryOver <FavoriteHeadword>() .JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias) .Where(() => favoriteLabelAlias.User.Id == userId) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .OrderBy(x => x.Title).Asc .List()); }
public virtual IList <FavoriteCategory> GetFavoriteCategoriesWithLabel(int userId) { FavoriteLabel favoriteLabelAlias = null; return(GetSession().QueryOver <FavoriteCategory>() .JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias) .Where(() => favoriteLabelAlias.User.Id == userId) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .OrderBy(x => x.Title).Asc .List()); }
public virtual IList <FavoriteCategory> GetFavoriteLabeledCategories(int userId) { FavoriteCategory favoriteItemAlias = null; FavoriteLabel favoriteLabelAlias = null; return(GetSession().QueryOver(() => favoriteItemAlias) .JoinAlias(() => favoriteItemAlias.FavoriteLabel, () => favoriteLabelAlias) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .And(() => favoriteLabelAlias.User.Id == userId) .OrderBy(() => favoriteLabelAlias.Name).Asc .OrderBy(() => favoriteItemAlias.Title).Asc .List()); }
public virtual IList <FavoritePage> GetAllPageBookmarksByBookId(long projectId, long userId) { FavoritePage favoritePageAlias = null; FavoriteLabel favoriteLabelAlias = null; Resource resourcePageAlias = null; return(GetSession().QueryOver(() => favoritePageAlias) .JoinAlias(() => favoritePageAlias.ResourcePage, () => resourcePageAlias) .JoinAlias(() => favoritePageAlias.FavoriteLabel, () => favoriteLabelAlias) .Where(() => resourcePageAlias.Project.Id == projectId && favoriteLabelAlias.User.Id == userId) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .List()); }
public FavoriteLabel GetNewDefaultFavoriteLabel(User user) { var now = DateTime.UtcNow; var result = new FavoriteLabel { Name = DefaultName, Color = DefaultColor, IsDefault = true, LastUseTime = now, User = user, FavoriteItems = null, }; return(result); }
public long CreateFavoriteLabel(string name, string color, bool isDefault) { var now = DateTime.UtcNow; var user = TryGetUser(); var favoriteLabel = new FavoriteLabel { Name = name, Color = color, IsDefault = isDefault, LastUseTime = now, User = m_favoritesRepository.Load <User>(user.Id) }; var id = m_favoritesRepository.Create(favoriteLabel); return((long)id); }
public virtual IList <FavoriteCategory> GetFavoriteLabeledCategories(IList <int> categoryIds, int userId) { FavoriteCategory favoriteItemAlias = null; FavoriteLabel favoriteLabelAlias = null; using (var session = GetSession()) { return(session.QueryOver(() => favoriteItemAlias) .JoinAlias(() => favoriteItemAlias.FavoriteLabel, () => favoriteLabelAlias) .Fetch(x => x.FavoriteLabel).Eager .WhereRestrictionOn(() => favoriteItemAlias.Category.Id).IsInG(categoryIds) .And(() => favoriteLabelAlias.User.Id == userId) .OrderBy(() => favoriteLabelAlias.Name).Asc .OrderBy(() => favoriteItemAlias.Title).Asc .List()); } }
public virtual IList <FavoriteQuery> GetFavoriteQueries(long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int start, int count, int userId) { FavoriteLabel favoriteLabelAlias = null; using (var session = GetSession()) { var query = CreateFavoriteQueriesQuery(session, labelId, bookTypeEnum, queryTypeEnum, filterByTitle, userId); return(query.JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias) .Fetch(x => x.FavoriteLabel).Eager .Fetch(x => x.BookType).Eager .OrderBy(x => x.Title).Asc .OrderBy(() => favoriteLabelAlias.Name).Asc .Skip(start) .Take(count) .List()); } }
public virtual IList <FavoriteProject> GetFavoriteLabeledBooks(IList <long> projectIds, BookTypeEnum?bookType, ProjectTypeEnum?projectType, int userId) { FavoriteProject favoriteItemAlias = null; FavoriteLabel favoriteLabelAlias = null; Project projectAlias = null; Snapshot latestSnapshotAlias = null; BookType bookTypeAlias = null; var restriction = Restrictions.Disjunction(); if (projectIds.Count > 0) { restriction.Add(Restrictions.InG(Projections.Property(() => projectAlias.Id), projectIds)); } if (bookType != null) { restriction.Add(() => bookTypeAlias.Type == bookType.Value); } var query = GetSession().QueryOver(() => favoriteItemAlias) .JoinAlias(() => favoriteItemAlias.FavoriteLabel, () => favoriteLabelAlias) .JoinAlias(() => favoriteItemAlias.Project, () => projectAlias) .JoinAlias(() => projectAlias.LatestPublishedSnapshot, () => latestSnapshotAlias) .JoinAlias(() => latestSnapshotAlias.BookTypes, () => bookTypeAlias) .Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .Where(restriction) .And(() => favoriteLabelAlias.User.Id == userId && projectAlias.IsRemoved == false); if (projectType != null) { query.And(() => projectAlias.ProjectType == projectType.Value); } return(query.OrderBy(() => favoriteLabelAlias.Name).Asc .OrderBy(() => favoriteItemAlias.Title).Asc .TransformUsing(Transformers.DistinctRootEntity) .List()); }
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 virtual IList <FavoriteProject> GetFavoriteBooksWithLabel(BookTypeEnum bookType, ProjectTypeEnum?projectType, int userId) { FavoriteLabel favoriteLabelAlias = null; Project projectAlias = null; Snapshot latestSnapshotAlias = null; BookType bookTypeAlias = null; var query = GetSession().QueryOver <FavoriteProject>() .JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias) .JoinAlias(x => x.Project, () => projectAlias) .JoinAlias(() => projectAlias.LatestPublishedSnapshot, () => latestSnapshotAlias) .JoinAlias(() => latestSnapshotAlias.BookTypes, () => bookTypeAlias) .Where(() => favoriteLabelAlias.User.Id == userId && bookTypeAlias.Type == bookType && projectAlias.IsRemoved == false); if (projectType != null) { query.And(() => projectAlias.ProjectType == projectType.Value); } return(query.Fetch(SelectMode.Fetch, x => x.FavoriteLabel) .OrderBy(x => x.Title).Asc .List()); }
protected override long ExecuteWorkImplementation() { var now = DateTime.UtcNow; var user = m_favoritesRepository.Load <User>(m_userId); FavoriteLabel favoriteLabel; if (m_favoriteLabelId == null) { favoriteLabel = new FavoriteLabel { IsDefault = m_createDefault, User = user, // Other properties are set outside IF block }; } else { favoriteLabel = m_favoritesRepository.FindById <FavoriteLabel>(m_favoriteLabelId.Value); OwnershipHelper.CheckItemOwnership(favoriteLabel.User.Id, m_userId); if (favoriteLabel.IsDefault) { throw new MainServiceException(MainServiceErrorCode.CannotModifyDefaultFavoriteLabel, "User can't modify default favorite label"); } } favoriteLabel.Name = m_data.Name; favoriteLabel.Color = m_data.Color; favoriteLabel.LastUseTime = now; m_favoritesRepository.Save(favoriteLabel); return(favoriteLabel.Id); }
private FavoriteLabelWithBooksAndCategories CreateFavoriteLabelWithBooksAndCategories(FavoriteLabel favoriteLabelEntity) { return(new FavoriteLabelWithBooksAndCategories { BookIdList = new List <long>(), CategoryIdList = new List <int>(), Id = favoriteLabelEntity.Id, Name = favoriteLabelEntity.Name, Color = favoriteLabelEntity.Color }); }