Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 1a65a2c2

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

Added endpoints for subtag CRUD

Zobrazit rozdíly:

Backend/Core/Services/TagService/TagServiceEF.cs
71 71
                throw new InvalidOperationException("Category name or color empty");
72 72
            }
73 73

  
74
            CategoryNameUnusedOrThrow(request.Name);
74
            CategoryNameUnusedElseThrow(request.Name);
75 75

  
76 76
            databaseContext.TagCategories.Add(new Entities.TagCategory()
77 77
            {
......
85 85

  
86 86
        public void DeleteCategory(Guid categoryId)
87 87
        {
88
            CategoryExistsOrThrow(categoryId);
88
            CategoryExistsElseThrow(categoryId);
89 89

  
90 90
            var category = databaseContext.TagCategories.First(tc => tc.Id == categoryId);
91 91
            databaseContext.TagCategories.Remove(category);
......
94 94

  
95 95
        public void UpdateCategory(ModifyCategoryRequest request, Guid categoryId)
96 96
        {
97
            CategoryExistsOrThrow(categoryId);
97
            CategoryExistsElseThrow(categoryId);
98 98
            var category = databaseContext.TagCategories.First(tc => tc.Id == categoryId);
99 99

  
100 100
            if (request.Name != null)
101 101
            {
102
                CategoryNameUnusedOrThrow(request.Name);
102
                CategoryNameUnusedElseThrow(request.Name);
103 103
                category.Name = request.Name;
104 104
            }
105 105

  
......
122 122

  
123 123
        public void CreateTag(CreateTagRequest request)
124 124
        {
125
            CategoryExistsOrThrow(request.CategoryId);
125
            CategoryExistsElseThrow(request.CategoryId);
126 126

  
127
            TagNameUnusedOrThrow(request.Name);
127
            TagNameUnusedElseThrow(request.Name);
128 128

  
129 129
            if (request.Color == "")
130 130
            {
......
146 146

  
147 147
        public void DeleteTag(Guid tagId)
148 148
        {
149
            TagExistsOrThrow(tagId);
149
            TagExistsElseThrow(tagId);
150 150
            var tag = databaseContext.Tags.First(t => t.Id == tagId);
151 151
            databaseContext.Tags.Remove(tag);
152
            databaseContext.SaveChanges();
152 153
        }
153 154

  
154 155
        public void UpdateTag(ModifyTagRequest request, Guid tagId)
155 156
        {
156
            TagExistsOrThrow(tagId);
157
            TagExistsElseThrow(tagId);
157 158
            var tag = databaseContext.Tags.First(t => t.Id == tagId);
158 159

  
159 160
            if (request.Name != null)
160 161
            {
161
                TagNameUnusedOrThrow(request.Name);
162
                TagNameUnusedElseThrow(request.Name);
162 163
                tag.Name = request.Name;
163 164
            }
164 165

  
......
179 180
            databaseContext.SaveChanges();
180 181
        }
181 182

  
183
        public void CreateSubTag(CreateSubTagRequest request)
184
        {
185
            if (request.Name == "")
186
            {
187
                throw new InvalidOperationException("Subtag name empty");
188
            }
182 189

  
190
            SubTagNameUnusedElseThrow(request.Name);
191
            
192
            TagExistsElseThrow(request.TagId);
193
            var tag = databaseContext.Tags.First(t => t.Id == request.TagId);
183 194

  
195
            databaseContext.SubTags.Add(new Entities.SubTag()
196
            {
197
                Name = request.Name,
198
                Description = request.Description,
199
                Tag = tag
200
            });
184 201

  
202
            databaseContext.SaveChanges();
203
        }
185 204

  
205
        public void DeleteSubTag(Guid subtagId)
206
        {
207
            SubTagExistsElseThrow(subtagId);
208
            var subtag = databaseContext.SubTags.First(st => st.Id == subtagId);
209
            databaseContext.SubTags.Remove(subtag);
210
            databaseContext.SaveChanges();
211
        }
186 212

  
187
        private void CategoryExistsOrThrow(Guid categoryId)
213
        public void UpdateSubTag(ModifySubTagRequest request, Guid subtagId)
214
        {
215
            SubTagExistsElseThrow(subtagId);
216
            var subtag = databaseContext.SubTags.First(st => st.Id == subtagId);
217

  
218
            if (request.Name != null)
219
            {
220
                SubTagNameUnusedElseThrow(request.Name);
221
                subtag.Name = request.Name;
222
            }     
223

  
224
            if (request.Description != null)
225
            {
226
                subtag.Description = request.Description;
227
            }
228

  
229
            databaseContext.SaveChanges();
230
        }
231

  
232

  
233

  
234

  
235

  
236
        private void CategoryExistsElseThrow(Guid categoryId)
188 237
        {
189 238
            if (!databaseContext.TagCategories.Any(tc => tc.Id == categoryId))
190 239
            {
......
192 241
            }
193 242
        }
194 243

  
195
        private void CategoryNameUnusedOrThrow(string name)
244
        private void CategoryNameUnusedElseThrow(string name)
196 245
        {
197 246
            if (databaseContext.TagCategories.Any(tc => tc.Name == name))
198 247
            {
......
200 249
            }
201 250
        }
202 251

  
203
        private void TagExistsOrThrow(Guid tagId)
252
        private void TagExistsElseThrow(Guid tagId)
204 253
        {
205 254
            if (!databaseContext.Tags.Any(t => t.Id == tagId))
206 255
            {
......
208 257
            }
209 258
        }
210 259

  
211
        private void TagNameUnusedOrThrow(string name)
260
        private void TagNameUnusedElseThrow(string name)
212 261
        {
213 262
            if (databaseContext.Tags.Any(t => t.Name == name))
214 263
            {
215 264
                throw new InvalidOperationException("Tag name already used");
216 265
            }
217 266
        }
267

  
268
        private void SubTagExistsElseThrow(Guid subtagId)
269
        {
270
            if (!databaseContext.SubTags.Any(st => st.Id == subtagId))
271
            {
272
                throw new InvalidOperationException("Subtag does not exist");
273
            }
274
        }
275

  
276
        private void SubTagNameUnusedElseThrow(string name)
277
        {
278
            if (databaseContext.SubTags.Any(st => st.Name == name))
279
            {
280
                throw new InvalidOperationException("Subtag name already used");
281
            }
282
        }
218 283
    }
219 284
}

Také k dispozici: Unified diff