Beispiel #1
0
#pragma warning disable CS1591 // 缺少对公共可见类型或成员“TagController.TagController(IArticleTagService, ITagService, TagMapper)”的 XML 注释
        public TagController(IArticleTagService articleTagService, ITagService tagService, TagMapper tagMapper)
#pragma warning restore CS1591 // 缺少对公共可见类型或成员“TagController.TagController(IArticleTagService, ITagService, TagMapper)”的 XML 注释
        {
            this.articleTagService = articleTagService;
            this.tagService        = tagService;
            this.tagMapper         = tagMapper;
        }
Beispiel #2
0
        /// <summary>
        /// 通过路径获取标签bean
        /// </summary>
        /// <param name="isThis">该路径是否是标签所标注的路径</param>
        public static TagBean GetTagByPath(string path, out bool isThis)
        {
            DirTagBean[] dirTags = InternalStorage.Get(InternalStorage.Domain.tag, "tagSort") as DirTagBean[];
            uint         tagId   = 0;

            isThis = false;
            foreach (DirTagBean dirTag in dirTags)
            {
                if (path.IndexOf(dirTag.Path) != -1)
                {
                    tagId = dirTag.TagId;
                    if (dirTag.Path == path)
                    {
                        isThis = true;
                    }
                    break;
                }
            }
            if (tagId == 0)
            {
                return(null);
            }
            else
            {
                return(TagMapper.GetOneById(tagId));
            }
        }
Beispiel #3
0
        /// <summary>
        /// Add new Question
        /// </summary>
        /// <param name="questionDTO"></param>
        /// <returns></returns>
        public QuestionDTO Add(QuestionDTO questionDTO)
        {
            try
            {
                Question question = QuestionMapper.ToDB(questionDTO);
                question.Tags = new List <Tag>();
                foreach (var tag in questionDTO.Tags)
                {
                    tag.Id = Guid.NewGuid();
                    var currentTag = db.Tags.Where(x => x.Body == tag.Body).FirstOrDefault();
                    if (currentTag == null)
                    {
                        var tagsaved = db.Tags.Add(TagMapper.ToDB(tag));
                        question.Tags.Add(tagsaved);
                    }
                    else
                    {
                        question.Tags.Add(currentTag);
                    }
                }

                var questionAdded = db.Questions.Add(question);
                db.SaveChanges();
                var questionFound = db.Questions
                                    .Include("Author")
                                    .Where(s => s.Id == questionAdded.Id)
                                    .FirstOrDefault();

                return(QuestionMapper.ToDTO(questionFound));
            }
            catch
            {
                return(null);
            }
        }
 public TagsController(IEntityBaseRepository <Error> errorRepository,
                       IEntityBaseRepository <Tag> tagRepository,
                       TagMapper tagMapper)
     : base(errorRepository)
 {
     _tagRepository = tagRepository;
     _tagMapper     = tagMapper;
 }
Beispiel #5
0
 public static void LoadAttributes()
 {
     TransactionTypes = TransactionTypeMapper.ConvertToBusinessLogicEntitiesCollection(TransactionTypeAdapter.GetAll($"language_id={Language.Id}")).ToList();
     TransferTypes    = TransferTypeMapper.ConvertToBusinessLogicEntitiesCollection(TransferTypeAdapter.GetAll($"language_id={Language.Id}")).ToList();
     Frequencies      = FrequencyMapper.ConvertToBusinessLogicEntitiesCollection(FrequencyAdapter.GetAll($"language_id={Language.Id}")).ToList();
     Importances      = ImportanceMapper.ConvertToBusinessLogicEntitiesCollection(ImportanceAdapter.GetAll($"language_id={Language.Id}")).ToList();
     Tags             = TagMapper.ConvertToBusinessLogicEntitiesCollection(TagAdapter.GetAll($"language_id={Language.Id}")).ToList();
 }
 public TagsMapperTests()
 {
     this.mapper = new TagMapper();
     this.entityToMap = new Tag { Id = 1, Items = null, Name = "Tag", Readers = null };
     this.entityToCompareWith = new Tag { Id = 1, Items = null, Name = "Tag", Readers = null };
     this.modelToMap = new TagBusinessModel { id = 1, name = "Tag" };
     this.modelToCompareWith = new TagBusinessModel { id = 1, name = "Tag" };
 }
Beispiel #7
0
        public void Create(TagViewModel entity)
        {
            TagMapper _tagMapper = new TagMapper();

            Tag tag = _tagMapper.Map(entity);

            _blogpostContext.Tag.Add(tag);
            _blogpostContext.SaveChanges();
        }
Beispiel #8
0
 /// <summary>
 /// 递归删除标签及其所有子标签
 /// </summary>
 /// <param name="tagId"></param>
 public static void DeleteTag(uint tagId)
 {
     TagBean[] beanList = TagMapper.GetChildTag(tagId);
     foreach (TagBean bean in beanList)
     {
         DeleteTag(bean.Id);
     }
     TagMapper.DeleteOne(tagId);
     DirTagMapper.DeleteByTagId(tagId);
 }
Beispiel #9
0
 /// <summary>
 /// 获得标签列表
 /// </summary>
 /// <param name="parentId">所需标签的父级id</param>
 public static TagBean[] GetTagItemSource(uint parentId)
 {
     if (parentId == 0)
     {
         return(TagMapper.GetRootTag());
     }
     else
     {
         return(TagMapper.GetChildTag(parentId));
     }
 }
Beispiel #10
0
        //修改标签
        public void EditTag_Click(TagBean bean)
        {
            TagWindow window = new TagWindow("修改标签", bean);
            bool?     result = window.ShowDialog();

            if (result == true)
            {
                TagMapper.UpdataOne(bean);
                RefreshAll();
            }
        }
Beispiel #11
0
        /// <summary>
        /// Lists all soft-deleted tags from the context.
        /// </summary>
        /// <returns>ICollection of TagModels</returns>
        public async Task <ICollection <TagModel> > GetDeletedTags()
        {
            var tagDTOs = await _context.Tags
                          .Where(t => t.IsDeleted)
                          .Include(t => t.ReportTags)
                          .ThenInclude(rt => rt.Report)
                          .Select(t => TagMapper.MapModelFromEntity(t))
                          .ToListAsync();

            return(tagDTOs);
        }
Beispiel #12
0
        public TagModel GetById(string id)
        {
            var tag = _tagRepository.GetById(id);

            if (tag == null)
            {
                throw new NotFoundException(Messages.InvalidTagId);
            }

            return(TagMapper.ToTagModel(tag));
        }
Beispiel #13
0
        public List<TagBusinessModel> GetReaderPreferences(int readerId)
        {
            var reader = this.libraryUow.Readers.GetById(readerId);
            TagMapper tagMapper = new TagMapper();
            List<TagBusinessModel> preferences = new List<TagBusinessModel>();
            foreach (var tag in reader.Preferences)
            {
                preferences.Add(tagMapper.Map(tag));
            }

            return preferences;
        }
Beispiel #14
0
        public List<TagBusinessModel> GetTags(string filter)
        {
            var tags = this.libraryUow.Tags.GetAll().Where(t => t.Name.Contains(filter)).ToList();
            var tagsBusinessModels = new List<TagBusinessModel>();
            TagMapper mapper = new TagMapper();
            foreach (var tag in tags)
            {
                tagsBusinessModels.Add(mapper.Map(tag));
            }

            return tagsBusinessModels;
        }
Beispiel #15
0
        public void MapTags_Should_Convert_List_Of_Tags_To_List_Of_TagDtos()
        {
            //Arrange
            var tagIds = CreateSomeTagId(3);
            var tags   = new TagTestBuilder().BuildList(tagIds.Count);

            //Act
            var tagDtos = TagMapper.MapTags(tagIds, tags);

            //Assert
            tagDtos.Count.Should().Be(tags.Count);
        }
Beispiel #16
0
        public void MapTag_Should_Convert_Tag_To_TagDto()
        {
            //Arrange
            var tags = new TagTestBuilder().BuildList(3);

            //Act
            var tagDto = TagMapper.MapTag(tags.First().Id, tags);

            //Assert
            tagDto.Id.Should().Be(tagDto.Id);
            tagDto.Name.Should().Be(tagDto.Name);
        }
Beispiel #17
0
        public List <TagBusinessModel> GetTags(string filter)
        {
            var       tags = this.libraryUow.Tags.GetAll().Where(t => t.Name.Contains(filter)).ToList();
            var       tagsBusinessModels = new List <TagBusinessModel>();
            TagMapper mapper             = new TagMapper();

            foreach (var tag in tags)
            {
                tagsBusinessModels.Add(mapper.Map(tag));
            }

            return(tagsBusinessModels);
        }
Beispiel #18
0
        /// <summary>
        /// Gets a tag from the context by its ID.
        /// </summary>
        /// <param name="id">The ID of the target Tag.</param>
        /// <returns>Tag Model on success. Throws ArgumentNullException if Tag does not exist.</returns>
        public async Task <TagModel> GetTag(int id)
        {
            var tag = await _context.Tags
                      .Include(t => t.ReportTags)
                      .ThenInclude(rt => rt.Report)
                      .FirstOrDefaultAsync(t => t.Id == id);

            ValidateTagExists(tag);

            var tagDTO = TagMapper.MapModelFromEntity(tag);

            return(tagDTO);
        }
Beispiel #19
0
        public List <TagBusinessModel> GetReaderPreferences(int readerId)
        {
            var       reader    = this.libraryUow.Readers.GetById(readerId);
            TagMapper tagMapper = new TagMapper();
            List <TagBusinessModel> preferences = new List <TagBusinessModel>();

            foreach (var tag in reader.Preferences)
            {
                preferences.Add(tagMapper.Map(tag));
            }

            return(preferences);
        }
        /// <summary>
        /// Method GetAllTags()
        /// </summary>
        /// <returns>The TagBusinessModel list</returns>
        public List<TagBusinessModel> GetAllTags()
        {
            List<TagBusinessModel> tagsBusinessModels = new List<TagBusinessModel>();
            List<Tag> tags = uow.Tags.GetAll().OrderBy(x => x.Name).ToList();

            TagMapper mapper = new TagMapper();
            foreach (var tag in tags)
            {
                tagsBusinessModels.Add(mapper.Map(tag));
            }

            return tagsBusinessModels;
        }
Beispiel #21
0
        /// <summary>
        /// Method GetAllTags()
        /// </summary>
        /// <returns>The TagBusinessModel list</returns>
        public List <TagBusinessModel> GetAllTags()
        {
            List <TagBusinessModel> tagsBusinessModels = new List <TagBusinessModel>();
            List <Tag> tags = uow.Tags.GetAll().OrderBy(x => x.Name).ToList();

            TagMapper mapper = new TagMapper();

            foreach (var tag in tags)
            {
                tagsBusinessModels.Add(mapper.Map(tag));
            }

            return(tagsBusinessModels);
        }
 public RecentsController(ICategoryProvider categoryProvider, ICommentProvider commentProvider,
                          IPostProvider postProvider, ITagProvider tagProvider, TagMapper tagMapper,
                          CommentMapper commentMapper, CategoryMapper categoryMapper,
                          PostMapper postMapper, RecentContentMapper recentContentMapper)
 {
     _categoryProvider    = categoryProvider;
     _commentProvider     = commentProvider;
     _postProvider        = postProvider;
     _tagProvider         = tagProvider;
     _postMapper          = postMapper;
     _categoryMapper      = categoryMapper;
     _commentMapper       = commentMapper;
     _tagMapper           = tagMapper;
     _recentContentMapper = recentContentMapper;
 }
Beispiel #23
0
        /// <summary>
        /// Lists all active Tags from the context. Tags must not be soft-deleted.
        /// </summary>
        /// <param name="sort">The property to sort the resulting tags by.</param>
        /// <param name="search">Searches tags by their name.</param>
        /// <returns>ICollection of Tag Models.</returns>
        public async Task <ICollection <TagModel> > GetTags(string sort, string search)
        {
            var tagModels = await _context.Tags
                            .Where(t => !t.IsDeleted)
                            .Include(t => t.ReportTags)
                            .ThenInclude(rt => rt.Report)
                            .Select(t => TagMapper.MapModelFromEntity(t))
                            .ToListAsync();

            tagModels = SortTags(sort, tagModels).ToList();

            tagModels = SearchTags(search, tagModels).ToList();

            return(tagModels);
        }
Beispiel #24
0
 public TagsMapperTests()
 {
     this.mapper      = new TagMapper();
     this.entityToMap = new Tag {
         Id = 1, Items = null, Name = "Tag", Readers = null
     };
     this.entityToCompareWith = new Tag {
         Id = 1, Items = null, Name = "Tag", Readers = null
     };
     this.modelToMap = new TagBusinessModel {
         id = 1, name = "Tag"
     };
     this.modelToCompareWith = new TagBusinessModel {
         id = 1, name = "Tag"
     };
 }
Beispiel #25
0
        /// <summary>
        /// Creates a new Tag in the context.
        /// </summary>
        /// <param name="name">The name of the new Tag.</param>
        /// <returns>Tag Model on success. Throws ArgumentException if a Tag with this name already exists.</returns>
        public async Task <TagModel> CreateTag(string name)
        {
            name = name.Trim();
            var tagDTO = TagMapper.MapModelFromInput(name);

            if (!await _context.Tags.AnyAsync(t => t.Name.ToLower() == name.ToLower()))
            {
                var tag = TagMapper.MapEntityFromModel(tagDTO);
                await _context.Tags.AddAsync(tag);

                await _context.SaveChangesAsync();

                tagDTO = TagMapper.MapModelFromEntity(tag);
                return(tagDTO);
            }
            throw new ArgumentException($"Tag with name {name} already exists.");
        }
Beispiel #26
0
        public ApiAdapter(IDataBaseManagerFactory dbEngine, string address, string port, string table, string login, string password)
        {
            DbManager   = new DatabaseManager(dbEngine, address, port, table, login, password);
            DbConnector = new DbConnector(DbManager);

            LanguageAdapter                = new LanguageAdapter(DbConnector);
            UserAdapter                    = new UserAdapter(DbConnector);
            UserDetailsAdapter             = new UserDetailsAdapter(DbConnector);
            TransactionTypeAdapter         = new TransactionTypeAdapter(DbConnector);
            TransferTypeAdapter            = new TransferTypeAdapter(DbConnector);
            FrequencyAdapter               = new FrequencyAdapter(DbConnector);
            ImportanceAdapter              = new ImportanceAdapter(DbConnector);
            TagAdapter                     = new TagAdapter(DbConnector);
            OperationAdapter               = new OperationAdapter(DbConnector);
            OperationDetailsAdapter        = new OperationDetailsAdapter(DbConnector);
            OperationTagRelationAdapter    = new OperationTagAdapter(DbConnector);
            OperationsGroupAdapter         = new OperationsGroupAdapter(DbConnector);
            OperationsGroupRelationAdapter = new OperationsGroupTagAdapter(DbConnector);
            FilterAdapter                  = new FilterAdapter(DbConnector);
            DashboardAdapter               = new DashboardAdapter(DbConnector);
            DashboardFilterRelationAdapter = new DashboardFilterRelationAdapter(DbConnector);
            BankAdapter                    = new BankAdapter(DbConnector);
            SettingsAdapter                = new SettingsAdapter(DbConnector);
            SchematicTypeAdapter           = new SchematicTypeAdapter(DbConnector);
            SchematicAdapter               = new SchematicAdapter(DbConnector);

            LanguageMapper        = new LanguageMapper();
            UserMapper            = new UserMapper();
            UserDetailsMapper     = new UserDetailsMapper();
            TransactionTypeMapper = new TransactionTypeMapper();
            TransferTypeMapper    = new TransferTypeMapper();
            FrequencyMapper       = new FrequencyMapper();
            ImportanceMapper      = new ImportanceMapper();
            TagMapper             = new TagMapper();
            TagRelationMapper     = new RelationTagMapper();
            OperationMapper       = new OperationMapper();
            OperationsGroupMapper = new OperationsGroupMapper();
            FilterMapper          = new FilterMapper();
            DashboardMapper       = new DashboardMapper();
            DashboardFilterMapper = new DashboardFilterMapper();
            BankMapper            = new BankMapper();
            SettingsMapper        = new SettingsMapper();
            SchematicTypeMapper   = new SchematicTypeMapper();
            SchematicMapper       = new SchematicMapper();
        }
Beispiel #27
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            CommentMapper.Map(modelBuilder.Entity <Comment>());
            IngredientMapper.Map(modelBuilder.Entity <Ingredient>());
            LikeMapper.Map(modelBuilder.Entity <Like>());
            MeasureMapper.Map(modelBuilder.Entity <Measure>());
            RecipeTagMapper.Map(modelBuilder.Entity <RecipeTag>());
            TagMapper.Map(modelBuilder.Entity <Tag>());
            RecipeMapper.Map(modelBuilder.Entity <Recipe>());
            UserMapper.Map(modelBuilder.Entity <User>());

            foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
            {
                relationship.DeleteBehavior = DeleteBehavior.Restrict;
            }
        }
Beispiel #28
0
        public TagUsageForApiContract[] GetTagSuggestions(int albumId)
        {
            var maxResults = 3;

            return(repository.HandleQuery(ctx => {
                var album = ctx.Load <Album>(albumId);
                var albumTags = album.Tags.Tags.Select(t => t.Id);

                var songUsages = ctx.Query <SongTagUsage>()
                                 .Where(u => !albumTags.Contains(u.Tag.Id) &&
                                        !u.Tag.Deleted &&
                                        !u.Tag.HideFromSuggestions &&
                                        u.Song.AllAlbums.Any(a => a.Album.Id == albumId))
                                 .WhereTagHasTarget(TagTargetTypes.Album)
                                 .GroupBy(t => t.Tag.Id)
                                 .Select(t => new { TagId = t.Key, Count = t.Count() })
                                 .Where(t => t.Count > 1)
                                 .OrderByDescending(t => t.Count)
                                 .Take(maxResults)
                                 .ToArray();

                var tags = ctx.LoadMultiple <Tag>(songUsages.Select(t => t.TagId)).ToDictionary(t => t.Id);

                var results = songUsages.Select(t => new TagUsageForApiContract(tags[t.TagId], t.Count, LanguagePreference));

                if (songUsages.Length < 3)
                {
                    var pvResults = album.PVs
                                    .Where(pv => pv.Service == PVService.NicoNicoDouga)
                                    .Select(pv => pvParser.ParseByUrl(pv.Url, true, permissionContext))
                                    .Where(p => p != null);

                    var nicoTags = pvResults.SelectMany(pv => pv.Tags).Distinct().ToArray();
                    var mappedTags = new TagMapper().MapTags(ctx, nicoTags)
                                     .Where(tag => !albumTags.Contains(tag.Id) && !tags.ContainsKey(tag.Id));

                    results = results
                              .Concat(mappedTags.Select(tag => new TagUsageForApiContract(tag, 0, LanguagePreference)))
                              .Take(maxResults);
                }

                return results.ToArray();
            }));
        }
Beispiel #29
0
 /// <summary>
 /// Edit question
 /// </summary>
 /// <param name="questionDTO"></param>
 /// <returns></returns>
 public QuestionDTO Edit(QuestionDTO questionDTO)
 {
     try
     {
         QuestionDTO questionUpdated = new QuestionDTO();
         var         questionFound   = db.Questions.Where(x => x.Id == questionDTO.Id).FirstOrDefault();
         if (questionFound == null)
         {
             throw new NoSuchQuestionFound();
         }
         questionFound.Description = questionDTO.Description;
         questionFound.Title       = questionDTO.Title;
         List <Tag> tags = new List <Tag>();
         foreach (var tag in questionDTO.Tags)
         {
             tag.Id = Guid.NewGuid();
             var currentTag = db.Tags.Where(x => x.Body == tag.Body).FirstOrDefault();
             if (currentTag == null)
             {
                 var tagsaved = db.Tags.Add(TagMapper.ToDB(tag));
                 tags.Add(tagsaved);
             }
             else
             {
                 tags.Add(currentTag);
             }
         }
         questionFound.Tags     = tags;
         questionFound.Image    = questionDTO.Image;
         questionFound.EditDate = DateTime.Now;
         questionUpdated        = QuestionMapper.ToDTO(questionFound);
         db.SaveChanges();
         return(questionUpdated);
     }
     catch (NoSuchQuestionFound)
     {
         throw new NoSuchQuestionFound();
     }
     catch
     {
         return(null);
     }
 }
Beispiel #30
0
        public void Add(TagModel tagModel)
        {
            if (string.IsNullOrEmpty(tagModel.Name))
            {
                throw new ValidationException(Messages.TagNameRequired);
            }

            var tagByName = _tagRepository.GetByName(tagModel.Name);

            if (tagByName != null)
            {
                throw new ConflictException(Messages.TagNameAlreadyExists);
            }

            var tag = TagMapper.ToTag(tagModel);

            tag.Id = SecurityUtils.GenerateEntityId();

            _tagRepository.Add(tag);
        }
Beispiel #31
0
        //新建标签
        public void NewTag_Click(ListBox sender)
        {
            int plies = GetPliesByName(sender.Name);

            if (nodeParentId[plies] == -1)
            {
                MessageBox.Show("未选择父级标签", "提示", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            uint      patentId = Convert.ToUInt32(nodeParentId[plies]);
            TagWindow window   = new TagWindow("新建标签");
            bool?     result   = window.ShowDialog();

            if (result == true)
            {
                TagBean bean = window.DataContext as TagBean;
                bean.ParentId = patentId;
                TagMapper.AddOne(bean);
                RefreshAll();
            }
        }
Beispiel #32
0
        public static QuestionDTO ToDTO(Question question)
        {
            List <TagDTO> tags = new List <TagDTO>();

            foreach (var tagItem in question.Tags)
            {
                tags.Add(TagMapper.ToDTO(tagItem));
            }
            QuestionDTO questionDTO = new QuestionDTO()
            {
                Id          = question.Id,
                Title       = question.Title,
                Description = question.Description,
                Image       = question.Image,
                Tags        = tags,
                Author      = UserMapper.ToDTO(question.Author),
                UploadDate  = question.UploadDate,
                EditDate    = question.EditDate
            };

            return(questionDTO);
        }
Beispiel #33
0
        /// <summary>
        /// Updates the properties of an existing Tag.
        /// </summary>
        /// <param name="id">The ID of the target Tag.</param>
        /// <param name="name">The new Name of the Tag.</param>
        /// <returns>Throws ArgumentNullException if Tag does not exist. Throws ArgumentException if a Tag with the new provided name already exists.</returns>
        public async Task <TagModel> UpdateTag(int id, string name)
        {
            var tag = await _context.Tags.FirstOrDefaultAsync(t => t.Id == id);

            ValidateTagExists(tag);

            if (await _context.Tags.AnyAsync(t => t.Name.ToLower() == name.ToLower() && t.Id != id))
            {
                throw new ArgumentException($"Tag with name {name} already exists.");
            }

            if (name != null && name != string.Empty)
            {
                tag.Name = name;
            }
            tag.ModifiedOn = DateTime.UtcNow;

            var tagDTO = TagMapper.MapModelFromEntity(tag);
            await _context.SaveChangesAsync();

            return(tagDTO);
        }
Beispiel #34
0
        public static Question ToDB(QuestionDTO questionDTO)
        {
            List <Tag> tags = new List <Tag>();

            foreach (var tagItem in questionDTO.Tags)
            {
                tags.Add(TagMapper.ToDB(tagItem));
            }
            Question question = new Question()
            {
                Id          = questionDTO.Id,
                Title       = questionDTO.Title,
                Description = questionDTO.Description,
                AuthorId    = questionDTO.Author.Id,
                Image       = questionDTO.Image,
                Tags        = tags,
                UploadDate  = questionDTO.UploadDate,
                EditDate    = questionDTO.EditDate
            };

            return(question);
        }
Beispiel #35
0
 public TagBusinessModel GetTag(int id)
 {
     TagMapper tagMapper = new TagMapper();
     return tagMapper.Map(this.libraryUow.Tags.GetById(id));
 }