Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 055ef5b5

Přidáno uživatelem Vojtěch Bartička před asi 2 roky(ů)

Created TagService, implemented GetTagTree

Zobrazit rozdíly:

Backend/Core/Services/Registration.cs
1 1
using Core.Authentication;
2 2
using Core.Services.DocumentService;
3
using Core.Services.TagService;
3 4
using Microsoft.AspNetCore.Builder;
4 5
using Microsoft.Extensions.DependencyInjection;
5 6

  
......
12 13
            builder.Services.AddScoped<IUserService, UserServiceEF>();
13 14
            builder.Services.AddScoped<IDocumentService, DocumentServiceEF>();
14 15
            builder.Services.AddScoped<IAuthService, AuthService>();
16
            builder.Services.AddScoped<ITagService, TagServiceEF>();
15 17
            
16 18
            builder.Services.AddScoped<IJwtUtils, JwtUtils>();
17 19
        }
Backend/Core/Services/TagService/ITagService.cs
1
using Models.Tags;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7

  
8
namespace Core.Services.TagService
9
{
10
    public interface ITagService
11
    {
12
        public TagTreeResponse GetTagTree();
13
    }
14
}
Backend/Core/Services/TagService/TagServiceEF.cs
1
using AutoMapper;
2
using Core.Contexts;
3
using Models.Tags;
4
using Serilog;
5
using System;
6
using System.Collections.Generic;
7
using System.Linq;
8
using System.Text;
9
using System.Threading.Tasks;
10

  
11
namespace Core.Services.TagService
12
{
13
    public class TagServiceEF : ITagService
14
    {
15
        private readonly DatabaseContext databaseContext;
16
        private readonly ILogger logger;
17
        private readonly IMapper mapper;
18

  
19
        public TagServiceEF(DatabaseContext databaseContext, ILogger logger, IMapper mapper)
20
        {
21
            this.databaseContext = databaseContext;
22
            this.logger = logger;
23
            this.mapper = mapper;
24
        }
25

  
26
        public TagTreeResponse GetTagTree()
27
        {
28
            var tagCategories = databaseContext.TagCategories.Select(tc => tc).ToList();
29
            var tagCategoriesDTOs = new List<TagCategoryInfo>();
30
            foreach (var tagCategory in tagCategories)
31
            {
32
                var tagCategoryDTO = mapper.Map<TagCategoryInfo>(tagCategory);
33
                var tags = databaseContext.Tags.Where(t => t.Category == tagCategory).ToList();
34
                var tagDTOs = new List<TagInfo>();
35

  
36
                foreach (var tag in tags)
37
                {
38
                    var tagDTO = mapper.Map<TagInfo>(tag);
39
                    var subTags = databaseContext.SubTags.Where(st => st.Tag == tag).ToList();
40
                    var subTagDTOs = new List<SubTagInfo>();
41

  
42
                    if (subTags.Count() != 0)
43
                    {
44
                        foreach (var subTag in subTags)
45
                        {
46
                            subTagDTOs.Add(mapper.Map<SubTagInfo>(subTag));
47
                        }
48
                    }
49
                    tagDTO.SubTags = subTagDTOs;
50
                    tagDTOs.Add(tagDTO);
51
                }
52

  
53
                tagCategoryDTO.Tags = tagDTOs;
54
                tagCategoriesDTOs.Add(tagCategoryDTO);
55
            }
56

  
57
            return new TagTreeResponse()
58
            {
59
                TagCategories = tagCategoriesDTOs
60
            };
61
        }
62
    }
63
}

Také k dispozici: Unified diff