Projekt

Obecné

Profil

Stáhnout (4.68 KB) Statistiky
| Větev: | Tag: | Revize:
1
using Core.Contexts;
2
using Core.Entities;
3
using Models.Enums;
4
using Microsoft.EntityFrameworkCore;
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.Seeding
12
{
13
    public class Seeder
14
    {
15
        public static void SeedDevelopment(DatabaseContext context)
16
        {
17
            if (!context.Users.Any(u => u.Role == ERole.ADMINISTRATOR))
18
            {
19
                var users = AddUsers(context);
20
                var classes = AddClasses(context);
21
                DummyTags.AddDummyTags(context);
22
                context.SaveChanges();
23

    
24
                AddTagInstance(context);
25
                context.SaveChanges();
26
            }
27
           
28
        }
29

    
30
        private static void AddTagInstance(DatabaseContext context)
31
        {
32
            var tag = context.Tags.Where(t => context.SubTags.Any(st => st.Tag == t)).First();
33
            var subtag = context.SubTags.Where(st => st.Tag == tag).First();
34
            var annotation = context.Annotations.First();
35
            AnnotationTag at = new AnnotationTag()
36
            {
37
                Annotation = annotation,
38
                Instance = 1,
39
                Length = 10,
40
                Position = 0,
41
                SubTag = subtag,
42
                Note = "asdasdasd",
43
                Tag = tag
44
            };
45
            context.AnnotationTags.Add(at);
46
        }
47

    
48
        public static void SeedProduction(DatabaseContext context)
49
        {
50
            if (!context.Users.Any(u => u.Role == ERole.ADMINISTRATOR))
51
            {
52
                User admin = new User()
53
                {
54
                    Name = "Admin",
55
                    Surname = "Admin",
56
                    Role = ERole.ADMINISTRATOR,
57
                    Username = "admin",
58
                    Password = BCrypt.Net.BCrypt.HashPassword("123a456b789c")
59
                };
60
                context.Users.Add(admin);
61
                context.SaveChanges();
62
            }
63
        }
64

    
65
        private static List<Class> AddClasses(DatabaseContext context)
66
        {
67
            List<Class> classes = new List<Class>();
68
            Class class1 = new Class()
69
            {
70
                Name = "Class1",
71
                Description = "Class1 description",
72
                Color = "Class 1 color"
73
            };
74
            context.Classes.Add(class1);
75
            classes.Add(class1);
76
            return classes;
77
        }
78

    
79
        private static List<User> AddUsers(DatabaseContext context)
80
        {
81
            List<User> users = new List<User>();
82
            User annotator1 = new User()
83
            {
84
                Username = "annotator1",
85
                Name = "Anno",
86
                Surname = "Tator1",
87
                Password = BCrypt.Net.BCrypt.HashPassword("password"),
88
                Role = ERole.ANNOTATOR
89
            };
90
            context.Users.Add(annotator1);
91
            users.Add(annotator1);
92

    
93
            User annotator2 = new User()
94
            {
95
                Username = "annotator2",
96
                Name = "Anno",
97
                Surname = "Tator2",
98
                Password = BCrypt.Net.BCrypt.HashPassword("password"),
99
                Role = ERole.ANNOTATOR
100
            };
101
            context.Users.Add(annotator2);
102
            users.Add(annotator2);
103

    
104
            User annotator3 = new User()
105
            {
106
                Username = "annotator3",
107
                Name = "Anno",
108
                Surname = "Tator3",
109
                Password = BCrypt.Net.BCrypt.HashPassword("password"),
110
                Role = ERole.ANNOTATOR
111
            };
112
            context.Users.Add(annotator3);
113
            users.Add(annotator3);
114

    
115
            User annotator4 = new User()
116
            {
117
                Username = "annotator4",
118
                Name = "Anno",
119
                Surname = "Tator4",
120
                Password = BCrypt.Net.BCrypt.HashPassword("password"),
121
                Role = ERole.ANNOTATOR
122
            };
123
            context.Users.Add(annotator4);
124
            users.Add(annotator4);
125

    
126
            User annotator5 = new User()
127
            {
128
                Username = "annotator5",
129
                Name = "Anno",
130
                Surname = "Tator5",
131
                Password = BCrypt.Net.BCrypt.HashPassword("password"),
132
                Role = ERole.ANNOTATOR
133
            };
134
            context.Users.Add(annotator5);
135
            users.Add(annotator5);
136

    
137
            User admin = new User()
138
            {
139
                Username = "admin",
140
                Name = "Admin",
141
                Surname = "User",
142
                Password = BCrypt.Net.BCrypt.HashPassword("admin"),
143
                Role = ERole.ADMINISTRATOR
144
            };
145
            context.Users.Add(admin);
146
            users.Add(admin);
147

    
148
            return users;
149
        }
150
    }
151
}
(2-2/2)