Пример #1
0
        private List <TagItem> selectTagItems(Guid guid, SelectTagItemByType selectTagItemType)
        {
            var tagItems = new List <TagItem>();

            switch (selectTagItemType)
            {
            case SelectTagItemByType.RelatedItem:
                tagItems = TagRepository.GetTagItemsByRelatedItemGuid(siteSettings.SiteGuid, guid);
                break;

            case SelectTagItemByType.Extra:
                tagItems = TagRepository.GetTagItemsByExtraGuid(siteSettings.SiteGuid, guid);
                break;
            }

            return(tagItems);
        }
Пример #2
0
        /// <summary>
        /// Gets list of TagModel which has the tag text, guid, and selected properties.
        /// </summary>
        /// <param name="guid">The RelatedItemGuid or ExtraGuid.</param>
        /// <param name="selectTagItemType">RelatedItem or Extra</param>
        /// <returns>List<TagModel></returns>
        public List <TagModel> GetTagListWithSelections(Guid guid, SelectTagItemByType selectTagItemType)
        {
            var tags        = selectTags();
            var tagItems    = selectTagItems(guid, selectTagItemType);
            var returnModel = new List <TagModel>();

            foreach (var tag in tags)
            {
                var tagModel = new TagModel
                {
                    TagText  = tag.TagText,
                    TagGuid  = tag.Guid,
                    Selected = tagItems.Where(tagItem => tagItem.TagGuid == tag.Guid).Count() > 0
                };

                returnModel.Add(tagModel);
            }

            return(returnModel);
        }
Пример #3
0
        /// <summary>
        /// Creates new TagItem
        /// </summary>
        /// <param name="tagGuid">The related TagGuid of the TagItem to create.</param>
        /// <param name="guid">The RelatedItemGuid or ExtraGuid.</param>
        /// <param name="selectTagItemType">RelatedItem or Extra</param>
        public void CreateTagItem(Guid tagGuid, Guid guid, SelectTagItemByType selectTagItemType)
        {
            if (!allowed)
            {
                return;
            }

            var tagItem = new TagItem
            {
                SiteGuid        = siteSettings.SiteGuid,
                FeatureGuid     = _featureGuid,
                ModuleGuid      = _moduleGuid,
                RelatedItemGuid = (selectTagItemType == SelectTagItemByType.RelatedItem) ? guid : Guid.Empty,
                ExtraGuid       = (selectTagItemType == SelectTagItemByType.Extra) ? guid : Guid.Empty,
                TagGuid         = tagGuid,
                TaggedBy        = currentUser.UserGuid
            };

            TagRepository.SaveTagItem(tagItem, out bool result);
        }
Пример #4
0
        /// <summary>
        /// Takes a list of TagModel and creates/deletes any tags based on what already exists in the DB.
        /// </summary>
        /// <param name="guid">The RelatedItemGuid or ExtraGuid.</param>
        /// <param name="selectTagItemType">RelatedItem or Extra</param>
        /// <param name="returnedTags">List of the tags returned to this method.</param>
        public void UpdateTags(Guid guid, SelectTagItemByType selectTagItemType, List <TagModel> returnedTags)
        {
            if (!allowed)
            {
                return;
            }

            var tagItems         = selectTagItems(guid, selectTagItemType);
            var selectedTags     = returnedTags.Where(tag => tag.Selected).ToList();
            var tagItemsToSave   = getTagsToSave(selectedTags, tagItems);
            var tagItemsToDelete = getTagItemsToDelete(selectedTags, tagItems);

            // Create new TagItems
            foreach (var tag in tagItemsToSave)
            {
                CreateTagItem(tag.TagGuid, guid, selectTagItemType);
            }

            // Delete TagItems
            foreach (var tag in tagItemsToDelete)
            {
                DeleteTagItem(tag.TagItemGuid);
            }
        }