From 31fff706c36a18e60020ea80a6778e914bd43bcc Mon Sep 17 00:00:00 2001 From: Marcel Nellesen <nellesen@itc.rwth-aachen.de> Date: Wed, 6 Nov 2019 09:26:39 +0100 Subject: [PATCH] New: Change the Apps in order to incorporate the bilingual compatibility (coscine/issues#432) --- src/Project.Tests/DefaultControllerTests.cs | 3 ++- src/Project.Tests/ProjectControllerTests.cs | 12 ++++++------ src/Project.Tests/ResourceControllerTests.cs | 2 +- src/Project/Controllers/DisciplineController.cs | 2 +- src/Project/Models/ProjectModel.cs | 4 ++-- src/Project/Models/ResourceModel.cs | 2 +- src/Project/ReturnObjects/DisciplineObject.cs | 9 ++++++--- 7 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Project.Tests/DefaultControllerTests.cs b/src/Project.Tests/DefaultControllerTests.cs index 146d757..23a03e8 100644 --- a/src/Project.Tests/DefaultControllerTests.cs +++ b/src/Project.Tests/DefaultControllerTests.cs @@ -46,7 +46,8 @@ namespace Coscine.Api.Project.Tests DisciplineModel disciplineModel = new DisciplineModel(); Discipline = new Discipline() { - DisplayName = "TestDiscipline", + DisplayNameDe = "TestDiscipline", + DisplayNameEn = "TestDiscipline", Url = "http://rwth-aachen.de" }; disciplineModel.Insert(Discipline); diff --git a/src/Project.Tests/ProjectControllerTests.cs b/src/Project.Tests/ProjectControllerTests.cs index d589250..d779293 100644 --- a/src/Project.Tests/ProjectControllerTests.cs +++ b/src/Project.Tests/ProjectControllerTests.cs @@ -105,7 +105,7 @@ namespace Coscine.Api.Project.Tests public void TestControllerStore() { ProjectObject newProjectObject = new ProjectObject(Guid.NewGuid(), "NewProject", "NewDisplayName", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName)); @@ -140,7 +140,7 @@ namespace Coscine.Api.Project.Tests public void TestControllerDelete() { ProjectObject newProjectObject = new ProjectObject(Guid.NewGuid(), "NewProject", "NewDisplayName", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName)); @@ -174,7 +174,7 @@ namespace Coscine.Api.Project.Tests public void TestControllerDeleteWithSubProjects() { ProjectObject newProjectObject = new ProjectObject(Guid.NewGuid(), "NewProject", "NewDisplayName", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName)); @@ -189,7 +189,7 @@ namespace Coscine.Api.Project.Tests stream.Close(); newProjectObject = new ProjectObject(Guid.NewGuid(), "NewProject", "NewDisplayName", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName), createdProjectObject.Id); @@ -217,7 +217,7 @@ namespace Coscine.Api.Project.Tests public void TestControllerStoreWithSubProject() { ProjectObject newProjectObject = new ProjectObject(Guid.NewGuid(), "NewProject", "NewDisplayName", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName)); @@ -229,7 +229,7 @@ namespace Coscine.Api.Project.Tests ProjectObject createdProjectObject = (ProjectObject)okObjectResult.Value; ProjectObject newSubProjectObject = new ProjectObject(Guid.NewGuid(), "NewSubProject", "NewDisplayNameSub", DateTime.Now, DateTime.Now.AddYears(1), "test2;test3", "abc", "investigator", "grandId", - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new List<InstituteObject>() { new InstituteObject(Institute.Id, Institute.IKZ, Institute.DisplayName) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName), createdProjectObject.Id); diff --git a/src/Project.Tests/ResourceControllerTests.cs b/src/Project.Tests/ResourceControllerTests.cs index 1cb88c3..6e5736a 100644 --- a/src/Project.Tests/ResourceControllerTests.cs +++ b/src/Project.Tests/ResourceControllerTests.cs @@ -94,7 +94,7 @@ namespace Coscine.Api.Project.Tests "keys", "usageR", new ResourceTypeObject(Resources[0].Type.Id, Resources[0].Type.DisplayName), - new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) }, + new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayNameDe, Discipline.DisplayNameEn) }, new VisibilityObject(Visibility.Id, Visibility.DisplayName), new LicenseObject(License.Id, License.DisplayName), JObject.FromObject(new RDSResourceTypeObject(Guid.NewGuid(), "PITLABTTEST", "accesskey", "secretkey")) diff --git a/src/Project/Controllers/DisciplineController.cs b/src/Project/Controllers/DisciplineController.cs index ec9f932..62c1ea0 100644 --- a/src/Project/Controllers/DisciplineController.cs +++ b/src/Project/Controllers/DisciplineController.cs @@ -26,7 +26,7 @@ namespace Coscine.Api.Project.Controllers { return Ok(_authenticator.ValidateAndExecute((user) => { - return _disciplineModel.GetAll().Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayName)); + return _disciplineModel.GetAll().OrderBy(discipline => discipline.DisplayNameDe.Substring(discipline.DisplayNameDe.Length - 3)).Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayNameDe, discipline.DisplayNameEn)); })); } } diff --git a/src/Project/Models/ProjectModel.cs b/src/Project/Models/ProjectModel.cs index eb76800..97b533d 100644 --- a/src/Project/Models/ProjectModel.cs +++ b/src/Project/Models/ProjectModel.cs @@ -172,11 +172,11 @@ namespace Coscine.Api.Project.Models { DisciplineModel disciplineModel = new DisciplineModel(); disciplines = disciplineModel.GetAllWhere((discipline) => (from relation in discipline.ProjectDisciplineDisciplineIdIds where relation.ProjectId == project.Id select relation).Any()) - .Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayName)); + .Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayNameDe, discipline.DisplayNameEn)); } else { - disciplines = project.ProjectDisciplineProjectIdIds.Select((discipline) => new DisciplineObject(discipline.Discipline.Id, discipline.Discipline.Url, discipline.Discipline.DisplayName)); + disciplines = project.ProjectDisciplineProjectIdIds.Select((discipline) => new DisciplineObject(discipline.Discipline.Id, discipline.Discipline.Url, discipline.Discipline.DisplayNameDe, discipline.Discipline.DisplayNameEn)); } IEnumerable<InstituteObject> institutes = new List<InstituteObject>(); if (project.ProjectInstituteProjectIdIds == null) diff --git a/src/Project/Models/ResourceModel.cs b/src/Project/Models/ResourceModel.cs index ae1b6d7..e273892 100644 --- a/src/Project/Models/ResourceModel.cs +++ b/src/Project/Models/ResourceModel.cs @@ -234,7 +234,7 @@ namespace Coscine.Api.Project.Models (from relation in discipline.ResourceDisciplineDisciplineIdIds where relation.ResourceId == resource.Id select relation).Any()) - .Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayName)); + .Select((discipline) => new DisciplineObject(discipline.Id, discipline.Url, discipline.DisplayNameDe, discipline.DisplayNameEn)); if (resource.Visibility == null && resource.VisibilityId != null) { diff --git a/src/Project/ReturnObjects/DisciplineObject.cs b/src/Project/ReturnObjects/DisciplineObject.cs index 9352f5e..5a2fed7 100644 --- a/src/Project/ReturnObjects/DisciplineObject.cs +++ b/src/Project/ReturnObjects/DisciplineObject.cs @@ -13,13 +13,16 @@ namespace Coscine.Api.Project.ReturnObjects public Guid Id { get; set; } public string Url { get; set; } - public string DisplayName { get; set; } + public string DisplayNameDe { get; set; } - public DisciplineObject(Guid id, string url, string displayName) + public string DisplayNameEn { get; set; } + + public DisciplineObject(Guid id, string url, string displayNameDe, string displayNameEn) { Id = id; Url = url; - DisplayName = displayName; + DisplayNameDe = displayNameDe; + DisplayNameEn = displayNameEn; } } } -- GitLab