Esempio n. 1
0
        public override async Task <IViewProviderResult> BuildEditAsync(Comment comment, IViewProviderContext updater)
        {
            var feature = await _featureFacade.GetFeatureByIdAsync(ModuleId);

            if (feature == null)
            {
                return(default(IViewProviderResult));
            }

            var tagsJson   = "";
            var entityTags = await GetEntityTagsByEntityReplyIdAsync(comment.Id);

            if (entityTags != null)
            {
                var tags = await _tagStore.QueryAsync()
                           .Select <TagQueryParams>(q =>
                {
                    q.Id.IsIn(entityTags.Select(e => e.TagId).ToArray());
                })
                           .OrderBy("Name")
                           .ToList();

                List <TagApiResult> tagsToSerialize = null;
                if (tags != null)
                {
                    tagsToSerialize = new List <TagApiResult>();
                    foreach (var tag in tags.Data)
                    {
                        tagsToSerialize.Add(new TagApiResult()
                        {
                            Id   = tag.Id,
                            Name = tag.Name
                        });
                    }
                }

                if (tagsToSerialize != null)
                {
                    tagsJson = tagsToSerialize.Serialize();
                }
            }

            var viewModel = new EditEntityTagsViewModel()
            {
                Tags       = tagsJson,
                HtmlName   = TagsHtmlName,
                FeatureId  = feature?.Id ?? 0,
                Permission = comment.Id == 0
                    ? Permissions.PostArticleCommentTags
                    : Permissions.EditArticleCommentTags
            };

            return(Views(
                       View <EditEntityTagsViewModel>("Article.Tags.Edit.Footer", model => viewModel).Zone("content")
                       .Order(int.MaxValue)
                       ));
        }
Esempio n. 2
0
        public override async Task <IViewProviderResult> BuildEditAsync(Reply reply, IViewProviderContext updater)
        {
            var tagsJson   = "";
            var entityTags = await GetEntityTagsByEntityReplyIdAsync(reply.Id);

            if (entityTags != null)
            {
                var tags = await _tagStore.QueryAsync()
                           .Select <TagQueryParams>(q =>
                {
                    q.Id.IsIn(entityTags.Select(e => e.TagId).ToArray());
                })
                           .OrderBy("Name")
                           .ToList();

                List <TagApiResult> tagsToSerialize = null;
                if (tags != null)
                {
                    tagsToSerialize = new List <TagApiResult>();
                    foreach (var tag in tags.Data)
                    {
                        tagsToSerialize.Add(new TagApiResult()
                        {
                            Id   = tag.Id,
                            Name = tag.Name
                        });
                    }
                }

                if (tagsToSerialize != null)
                {
                    tagsJson = tagsToSerialize.Serialize();
                }
            }

            var viewModel = new EditEntityTagsViewModel()
            {
                Tags       = tagsJson,
                HtmlName   = TagsHtmlName,
                Permission = reply.Id == 0
                    ? Permissions.PostReplyTags
                    : Permissions.EditReplyTags
            };

            return(Views(
                       View <EditEntityTagsViewModel>("Topic.Tags.Edit.Footer", model => viewModel).Zone("content")
                       .Order(int.MaxValue)
                       ));
        }