protected override void Process(LinqExtender.Interface.IModify <People> items) { using (IPeopleRepository peopleRepositoryRepo = repositoryFactory.CreatePeopleRepository()) { string userId = (string)Bucket.Instance.For.Item(PeopleColumns.Id).Value; string username = (string)Bucket.Instance.For.Item(PeopleColumns.Username).Value; People people = null; if (!string.IsNullOrEmpty(userId)) { people = peopleRepositoryRepo.GetInfo(userId); } else if (!string.IsNullOrEmpty(username)) { people = peopleRepositoryRepo.GetByUsername(username); } else { // try to get autheticated person AuthToken token = peopleRepositoryRepo.GetAuthenticatedToken(); if (token != null) { people = peopleRepositoryRepo.GetInfo(token.UserId); } else { throw new Exception("Query must contain a valid user id or name"); } } items.Add(people); } }
protected override void Process(LinqExtender.Interface.IModify <Tag> items) { object tagList = Bucket.Instance.For.Item(TagColums.ListMode).Value; TagListMode tagListMode = tagList == null ? TagListMode.Popular : (TagListMode)tagList; if (tagListMode == TagListMode.Popular) { object tagsPeriod = Bucket.Instance.For.Item(TagColums.Period).Value; TagPeriod period = tagsPeriod == null ? TagPeriod.Day : (TagPeriod)tagsPeriod; int score = Convert.ToInt32(Bucket.Instance.For.Item(TagColums.Score).Value ?? "0"); int count = (int)Bucket.Instance.For.Item(TagColums.Count).Value; if (count > 200) { throw new Exception("Tag count should be less than 200"); } using (ITagRepository tagRepositoryRepo = repositoryFactory.CreateTagRepository()) { IEnumerable <Tag> tags = tagRepositoryRepo.GetPopularTags(period, count); // do the filter on score. if (score > 0) { tags = tags.Where(tag => tag.Score == score).Select(tag => tag); } items.AddRange(tags, true); } } else { object photoId = Bucket.Instance.For.Item(TagColums.PhotoId).Value; if (photoId == null) { throw new Exception("Must provide a valid photoId"); } using (ITagRepository tagRepositoryRepo = repositoryFactory.CreateTagRepository()) { items.AddRange(tagRepositoryRepo.GetTagsForPhoto((string)photoId)); } } }
protected override void Process(LinqExtender.Interface.IModify <Comment> items) { using (ICommentRepository commentRepositoryRepo = new CommentRepository(elementProxy)) { string photoId = (string)Bucket.Instance.For.Item(CommentColumns.PhotoId).Value; string commentId = (string)Bucket.Instance.For.Item(CommentColumns.Id).Value; if (string.IsNullOrEmpty(photoId)) { throw new Exception("Must have a valid photoId"); } int index = Bucket.Instance.Entity.ItemsToSkipFromStart; int itemsToTake = int.MaxValue; if (Bucket.Instance.Entity.ItemsToFetch != null) { itemsToTake = Bucket.Instance.Entity.ItemsToFetch.Value; } // get comments IEnumerable <Comment> comments = commentRepositoryRepo.GetComments(photoId); // filter if (!string.IsNullOrEmpty(commentId)) { var query = (from comment in comments where comment.Id == commentId select comment).Skip(index).Take(itemsToTake); comments = query; } else { var query = (from comment in comments select comment).Skip(index).Take(itemsToTake); comments = query; } items.AddRange(comments, true); } }