diff --git a/Project/adminBlazor/adminBlazor/Factories/TranslationFactory.cs b/Project/adminBlazor/adminBlazor/Factories/TranslationFactory.cs
new file mode 100644
index 0000000..6920e13
--- /dev/null
+++ b/Project/adminBlazor/adminBlazor/Factories/TranslationFactory.cs
@@ -0,0 +1,35 @@
+using adminBlazor.Models;
+
+namespace adminBlazor.Factories;
+
+public class TranslationFactory
+{
+ public static Translation Create(TranslationModel model)
+ {
+ return new Translation
+ {
+ Id = model.Id,
+ FirstWord = model.FirstWord,
+ SecondWord = model.SecondWord
+ };
+ }
+
+ public static TranslationModel ToModel(Translation translation)
+ {
+ return new TranslationModel
+ {
+ Id = translation.Id,
+ FirstWord = translation.FirstWord,
+ SecondWord = translation.SecondWord
+ };
+ }
+
+ public static void Update(Translation item, TranslationModel model)
+ {
+ if (!string.IsNullOrEmpty(model.FirstWord))
+ item.FirstWord = model.FirstWord;
+
+ if (!string.IsNullOrEmpty(model.SecondWord))
+ item.SecondWord = model.SecondWord;
+ }
+}
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs b/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs
index 2e99be6..89d9ecc 100644
--- a/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs
+++ b/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs
@@ -11,7 +11,7 @@ namespace adminBlazor.Factories
{
public static VocabularyListModel ToModel(VocabularyList voc, byte[] imageContent)
{
- return new VocabularyListModel
+ VocabularyListModel model = new VocabularyListModel
{
Id = voc.Id,
Name = voc.Name,
@@ -19,11 +19,22 @@ namespace adminBlazor.Factories
Aut = voc.Aut,
ImageBase64 = string.IsNullOrWhiteSpace(voc.ImageBase64) ? Convert.ToBase64String(imageContent) : voc.ImageBase64
};
+ model.Translations = new List();
+ foreach (var item in voc.Translations)
+ {
+ model.Translations.Add(new TranslationModel
+ {
+ Id = item.Id,
+ FirstWord = item.FirstWord,
+ SecondWord = item.SecondWord
+ });
+ }
+ return model;
}
public static VocabularyList Create(VocabularyListModel voc)
{
- return new VocabularyList
+ VocabularyList model = new VocabularyList
{
Id = voc.Id,
Name = voc.Name,
@@ -31,6 +42,17 @@ namespace adminBlazor.Factories
Aut = voc.Aut,
ImageBase64 = voc.Image != null ? Convert.ToBase64String(voc.Image) : null
};
+ model.Translations = new List();
+ foreach (var item in voc.Translations)
+ {
+ model.Translations.Add(new Translation
+ {
+ Id = item.Id,
+ FirstWord = item.FirstWord,
+ SecondWord = item.SecondWord
+ });
+ }
+ return model;
}
public static void Update(VocabularyList item, VocabularyListModel voc)
{
@@ -42,6 +64,18 @@ namespace adminBlazor.Factories
if (voc.Aut != null)
item.Aut = voc.Aut;
+
+ if (voc.Translations == null) return;
+ item.Translations = new List();
+ foreach (var translation in voc.Translations)
+ {
+ item.Translations.Add(new Translation
+ {
+ Id = translation.Id,
+ FirstWord = translation.FirstWord,
+ SecondWord = translation.SecondWord
+ });
+ }
}
}
diff --git a/Project/adminBlazor/adminBlazor/Models/Translation.cs b/Project/adminBlazor/adminBlazor/Models/Translation.cs
index 10bcbfb..c78bb55 100644
--- a/Project/adminBlazor/adminBlazor/Models/Translation.cs
+++ b/Project/adminBlazor/adminBlazor/Models/Translation.cs
@@ -3,9 +3,9 @@ namespace adminBlazor.Models
{
public class Translation
{
- private int Id { get; set; }
- private string FirstWord { get; set; }
- private string SecondWord { get; set; }
+ public int Id { get; set; }
+ public string FirstWord { get; set; }
+ public string SecondWord { get; set; }
}
}
diff --git a/Project/adminBlazor/adminBlazor/Models/TranslationModel.cs b/Project/adminBlazor/adminBlazor/Models/TranslationModel.cs
new file mode 100644
index 0000000..9bd4176
--- /dev/null
+++ b/Project/adminBlazor/adminBlazor/Models/TranslationModel.cs
@@ -0,0 +1,11 @@
+using System;
+namespace adminBlazor.Models
+{
+ public class TranslationModel
+ {
+ public int Id { get; set; }
+ public string FirstWord { get; set; }
+ public string SecondWord { get; set; }
+ }
+}
+
diff --git a/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs b/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs
index 1146ef1..6a238df 100644
--- a/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs
+++ b/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs
@@ -9,6 +9,7 @@ namespace adminBlazor.Models
public int? Aut { get; set; }
public string? ImageBase64 { get; set; }
- }
+ public List? Translations { get; set; }
+ }
}
diff --git a/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs b/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs
index 82ed127..ea6e894 100644
--- a/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs
+++ b/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs
@@ -15,6 +15,7 @@ namespace adminBlazor.Models
public int? Aut { get; set; }
public string ImageBase64 { get; set; }
+ public List? Translations { get; set; }
}
}
diff --git a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor
index 1f7773f..0b5e049 100644
--- a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor
+++ b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor
@@ -1,6 +1,7 @@
@page "/editVoc/{Id:int}"
@attribute [Authorize(Roles = "teacher")]
@using adminBlazor.Models
+@using Blazorise.Extensions
Edit
@@ -10,32 +11,41 @@
-
-<<<<<<< HEAD
+
-
-=======
-
-
- Name:
-
-
-
-
-
-
-
- Author
-
-
-
-
->>>>>>> e13ce594471ea79c152b246fc51c65544632624d
+
+
+ Words:
+ @if (voc.Translations.IsNullOrEmpty() == false)
+ {
+ foreach (var word in voc.Translations)
+ {
+ {
+
+
+ First Word:
+
+
+
+ Second Word:
+
+
+
+
+ }
+ }
+ }
+ else
+ {
+ No words
+ }
+
}
diff --git a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs
index b619aa5..b75b188 100644
--- a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs
+++ b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs
@@ -5,6 +5,9 @@ using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Hosting;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
namespace adminBlazor.Pages
@@ -23,8 +26,6 @@ namespace adminBlazor.Pages
[Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; }
- public VocabularyList currVoc;
-
private VocabularyListModel voc = new VocabularyListModel();
private async void HandleValidSubmit()
@@ -44,8 +45,21 @@ namespace adminBlazor.Pages
}
}
+ private void AddWord()
+ {
+ if (voc.Translations == null)
+ {
+ voc.Translations = new List();
+ }
+ voc.Translations.Add(new TranslationModel());
+ }
+
+ private void RemoveWord(TranslationModel word)
+ {
+ voc.Translations.Remove(word);
+ }
- protected async Task OnInitializedAsync()
+ protected override async Task OnInitializedAsync()
{
var item = await VocListService.GetById(Id);
@@ -54,4 +68,4 @@ namespace adminBlazor.Pages
voc = VocListFactory.ToModel(item,fileContent);
}
}
-}
+}
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Pages/Voc.razor b/Project/adminBlazor/adminBlazor/Pages/Voc.razor
index c4025b8..be569a1 100644
--- a/Project/adminBlazor/adminBlazor/Pages/Voc.razor
+++ b/Project/adminBlazor/adminBlazor/Pages/Voc.razor
@@ -26,7 +26,7 @@
}
else
{
-
+
}
diff --git a/Project/adminBlazor/adminBlazor/Services/VocListLocalService.cs b/Project/adminBlazor/adminBlazor/Services/VocListLocalService.cs
index b441006..bd5474d 100644
--- a/Project/adminBlazor/adminBlazor/Services/VocListLocalService.cs
+++ b/Project/adminBlazor/adminBlazor/Services/VocListLocalService.cs
@@ -49,7 +49,7 @@ namespace adminBlazor.Services
var originalList = await _http.GetFromJsonAsync($"{_navigationManager.BaseUri}voc.json");
await _localStorage.SetItemAsync("voc", originalList);
}
-
+
return (await _localStorage.GetItemAsync("voc")).Length;
}
@@ -62,6 +62,7 @@ namespace adminBlazor.Services
{
// this code add in the local storage the fake data
var originalData = await _http.GetFromJsonAsync($"{_navigationManager.BaseUri}voc.json");
+
await _localStorage.SetItemAsync("voc", originalData);
}
diff --git a/Project/adminBlazor/adminBlazor/wwwroot/images/words.jpg b/Project/adminBlazor/adminBlazor/wwwroot/images/words.jpg
new file mode 100644
index 0000000..2cb2170
Binary files /dev/null and b/Project/adminBlazor/adminBlazor/wwwroot/images/words.jpg differ
diff --git a/Project/adminBlazor/adminBlazor/wwwroot/voc.json b/Project/adminBlazor/adminBlazor/wwwroot/voc.json
index 22145e7..57e3328 100644
--- a/Project/adminBlazor/adminBlazor/wwwroot/voc.json
+++ b/Project/adminBlazor/adminBlazor/wwwroot/voc.json
@@ -2,20 +2,24 @@
{
"id": 1,
"name": "Entreprise",
- "image": "link",
+ "image": null,
"aut": null,
- "words" : [{
+ "translations" : [{
"id": 1,
- "firstWord" : "baguette",
- "secondWord" : "pain"
- }]
+ "firstWord" : "pain",
+ "secondWord" : "bread"
+ },
+ {"id": 1,
+ "firstWord" : "vin",
+ "secondWord" : "wine"
+ }]
},
{
"id": 2,
"name": "Animaux",
- "image": "link",
+ "image": null,
"aut" : 1,
- "words": [{
+ "translations": [{
"id": 1,
"firstWord" : "baguette",
"secondWord" : "pain"