|
1 | 1 | using BExIS.Dim.Entities.Mappings; |
2 | 2 | using BExIS.Dim.Services.Mappings; |
| 3 | +using BExIS.Modules.Ddm.UI.Models; |
3 | 4 | using BExIS.Security.Entities.Authorization; |
4 | 5 | using BExIS.Security.Entities.Objects; |
5 | 6 | using BExIS.Security.Services.Authorization; |
6 | 7 | using BExIS.Security.Services.Objects; |
| 8 | +using System; |
7 | 9 | using System.Collections.Generic; |
8 | 10 | using System.Linq; |
9 | 11 | using Vaiona.Web.Mvc.Modularity; |
@@ -190,50 +192,78 @@ private void createCitationMappingConcept() |
190 | 192 | { |
191 | 193 | using (var conceptManager = new ConceptManager()) |
192 | 194 | { |
193 | | - // check if concept exist |
194 | | - var concept = conceptManager.MappingConceptRepository.Query(c => c.Name.Equals("Citation")).FirstOrDefault(); |
195 | | - |
196 | | - var keys = new List<MappingKey>(); |
197 | | - |
198 | | - if (concept == null) //if not create |
199 | | - concept = conceptManager.CreateMappingConcept("Citation", "The concept is needed to create a citation string", "", ""); |
200 | | - else // if exist load available keys |
| 195 | + foreach (CitationFormat value in Enum.GetValues(typeof(CitationFormat))) |
201 | 196 | { |
202 | | - keys = conceptManager.MappingKeyRepo.Query(k => k.Concept.Id.Equals(concept.Id)).ToList(); |
| 197 | + var keys = new List<MappingKey>(); |
| 198 | + // check if concept exist |
| 199 | + var concept = conceptManager.MappingConceptRepository.Query(c => c.Name.Equals("Citation_" + value)).FirstOrDefault(); |
| 200 | + if (concept == null) //if not create |
| 201 | + concept = conceptManager.CreateMappingConcept("Citation_"+ value, "The concept is needed to create a " + value + " citation string", "", ""); |
| 202 | + else // if exist load available keys |
| 203 | + { |
| 204 | + keys = conceptManager.MappingKeyRepo.Query(k => k.Concept.Id.Equals(concept.Id)).ToList(); |
| 205 | + } |
| 206 | + |
| 207 | + //title |
| 208 | + if (!keys.Any(k => k.Name.Equals("data/title"))) |
| 209 | + conceptManager.CreateMappingKey("Title", "", "", false, false, "data/title", concept); |
| 210 | + //version |
| 211 | + if (!keys.Any(k => k.Name.Equals("data/version"))) |
| 212 | + conceptManager.CreateMappingKey("Version", "", "", true, false, "data/version", concept); |
| 213 | + //year |
| 214 | + if (!keys.Any(k => k.Name.Equals("data/year"))) |
| 215 | + conceptManager.CreateMappingKey("Year", "", "", true, false, "data/year", concept); |
| 216 | + |
| 217 | + //entityType |
| 218 | + if (!keys.Any(k => k.Name.Equals("data/entityType"))) |
| 219 | + conceptManager.CreateMappingKey("EntityType", "", "", true, false, "data/entityType", concept); |
| 220 | + |
| 221 | + //entryType |
| 222 | + if (value == CitationFormat.Text) |
| 223 | + { |
| 224 | + if (!keys.Any(k => k.Name.Equals("data/entryType"))) |
| 225 | + conceptManager.CreateMappingKey("EntryType", "", "", true, false, "data/entryType", concept); |
| 226 | + } |
| 227 | + else |
| 228 | + { |
| 229 | + if (!keys.Any(k => k.Name.Equals("data/entryType"))) |
| 230 | + conceptManager.CreateMappingKey("EntryType", "", "", false, false, "data/entryType", concept); |
| 231 | + } |
| 232 | + |
| 233 | + //publisher |
| 234 | + if (!keys.Any(k => k.Name.Equals("data/publisher"))) |
| 235 | + conceptManager.CreateMappingKey("Publisher", "", "", false, false, "data/publisher", concept); |
| 236 | + |
| 237 | + if (value == CitationFormat.Bibtex) |
| 238 | + { |
| 239 | + if (!keys.Any(k => k.Name.Equals("data/keyword"))) |
| 240 | + conceptManager.CreateMappingKey("Keyword", "", "", false, false, "data/keyword", concept); |
| 241 | + } |
| 242 | + |
| 243 | + //note |
| 244 | + if (!keys.Any(k => k.Name.Equals("data/note"))) |
| 245 | + conceptManager.CreateMappingKey("Note", "", "", true, false, "data/note", concept); |
| 246 | + |
| 247 | + //doi |
| 248 | + if (!keys.Any(k => k.Name.Equals("data/doi"))) |
| 249 | + conceptManager.CreateMappingKey("DOI", "", "", true, false, "data/doi", concept); |
| 250 | + |
| 251 | + //projects |
| 252 | + MappingKey projects = null; |
| 253 | + if (!keys.Any(k => k.Name.Equals("data/projects"))) |
| 254 | + projects = conceptManager.CreateMappingKey("Projects", "", "", true, true, "data/projects", concept); |
| 255 | + |
| 256 | + if (!keys.Any(k => k.Name.Equals("data/projects/project"))) |
| 257 | + conceptManager.CreateMappingKey("Project", "", "", true, false, "data/projects/project", concept, projects); |
| 258 | + |
| 259 | + //authors |
| 260 | + MappingKey authors = null; |
| 261 | + if (!keys.Any(k => k.Name.Equals("data/authorNames"))) |
| 262 | + authors = conceptManager.CreateMappingKey("AuthorNames", "", "", false, true, "data/authorNames", concept); |
| 263 | + |
| 264 | + if (!keys.Any(k => k.Name.Equals("data/authorNames/authorName"))) |
| 265 | + conceptManager.CreateMappingKey("AuthorName", "", "", false, false, "data/authorNames/authorName", concept, authors); |
203 | 266 | } |
204 | | - |
205 | | - //title |
206 | | - if (!keys.Any(k => k.Name.Equals("data/title"))) |
207 | | - conceptManager.CreateMappingKey("Title", "", "", false, false, "data/title", concept); |
208 | | - //version |
209 | | - if (!keys.Any(k => k.Name.Equals("data/version"))) |
210 | | - conceptManager.CreateMappingKey("Version", "", "", true, false, "data/version", concept); |
211 | | - //year |
212 | | - if (!keys.Any(k => k.Name.Equals("data/year"))) |
213 | | - conceptManager.CreateMappingKey("Year", "", "", true, false, "data/year", concept); |
214 | | - //entityType |
215 | | - if (!keys.Any(k => k.Name.Equals("data/entityType"))) |
216 | | - conceptManager.CreateMappingKey("EntityType", "", "", true, false, "data/entityType", concept); |
217 | | - |
218 | | - //doi |
219 | | - if (!keys.Any(k => k.Name.Equals("data/doi"))) |
220 | | - conceptManager.CreateMappingKey("Doi", "", "", true, false, "data/doi", concept); |
221 | | - |
222 | | - //projects |
223 | | - MappingKey projects = null; |
224 | | - if (!keys.Any(k => k.Name.Equals("data/projects"))) |
225 | | - projects = conceptManager.CreateMappingKey("Projects", "", "", true, true, "data/projects", concept); |
226 | | - |
227 | | - if (!keys.Any(k => k.Name.Equals("data/projects/project"))) |
228 | | - conceptManager.CreateMappingKey("Project", "", "", true, false, "data/projects/project", concept, projects); |
229 | | - |
230 | | - //authors |
231 | | - MappingKey authors = null; |
232 | | - if (!keys.Any(k => k.Name.Equals("data/authorNames"))) |
233 | | - authors = conceptManager.CreateMappingKey("AuthorNames", "", "", false, true, "data/authorNames", concept); |
234 | | - |
235 | | - if (!keys.Any(k => k.Name.Equals("data/authorNames/authorName"))) |
236 | | - conceptManager.CreateMappingKey("AuthorName", "", "", false, false, "data/authorNames/authorName", concept, authors); |
237 | 267 | } |
238 | 268 | } |
239 | 269 | } |
|
0 commit comments