public Resource ConvertElementToResource(EAAPI.Element eaElement) { Resource result; result = new Resource(); if (eaElement != null) { result.ID = EaSpecIfGuidConverter.ConvertEaGuidToSpecIfGuid(eaElement.ElementGUID); result.Revision = "1"; result.ChangedAt = eaElement.Modified; result.ChangedBy = eaElement.Author; result.Class = new Key("RC-Requirement", "1"); result.Properties = new List <Property>(); string name = eaElement.Name; string classifierName = eaElement.GetClassifierName(_repository); if (!string.IsNullOrEmpty(classifierName)) { if (name == "") { name = classifierName; } else { name += " : " + classifierName; } } result.Title = new Value(name); Property nameProperty = new Property { Title = new Value("dcterms:title"), PropertyClass = new Key("AT-Req-Name", "1"), Value = new Value { LanguageValues = new List <LanguageValue> { new LanguageValue { Text = name } } }, ID = EaSpecIfGuidConverter.ConvertEaGuidToSpecIfGuid(eaElement.ElementGUID + "_NAME"), ChangedAt = eaElement.Modified, ChangedBy = eaElement.Author }; result.Properties.Add(nameProperty); Property notesProperty = new Property { Title = new Value("dcterms:description"), PropertyClass = new Key("PC-Text", "1"), Value = new Value { LanguageValues = new List <LanguageValue> { new LanguageValue { Text = eaElement.Notes } } }, ID = EaSpecIfGuidConverter.ConvertEaGuidToSpecIfGuid(eaElement.ElementGUID + "_NOTES"), ChangedAt = eaElement.Modified, ChangedBy = eaElement.Author }; result.Properties.Add(notesProperty); string stereotype = eaElement.Stereotype; if (eaElement.Type == "Requirement") { result.Class = new Key("RC-Requirement", "1"); string identifier = eaElement.GetTaggedValueString("Identifier"); if (!string.IsNullOrEmpty(identifier)) { Property identifierProperty = new Property { Title = new Value("dcterms:identifier"), PropertyClass = new Key("PC-VisibleId", "1"), Value = new Value { LanguageValues = new List <LanguageValue> { new LanguageValue { Text = identifier } } }, ID = EaSpecIfGuidConverter.ConvertEaGuidToSpecIfGuid(eaElement.ElementGUID + "_IDENTIFIER"), ChangedAt = eaElement.Modified, ChangedBy = eaElement.Author }; result.Properties.Add(identifierProperty); } string status = eaElement.Status; string statusID = ""; switch (status) { case "00_rejected": statusID = "V-Status-1"; break; case "10_initial": statusID = "V-Status-2"; break; case "20_drafted": statusID = "V-Status-3"; break; case "30_submitted": statusID = "V-Status-4"; break; case "40_approved": statusID = "V-Req-Status-3"; break; } if (!string.IsNullOrEmpty(statusID)) { Property statusProperty = new Property { Title = new Value("SpecIF:Status"), PropertyClass = new Key("PC-Status", "1"), Value = new Value { LanguageValues = new List <LanguageValue> { new LanguageValue { Text = statusID } } }, ID = EaSpecIfGuidConverter.ConvertEaGuidToSpecIfGuid(eaElement.ElementGUID + "_STATUS"), ChangedAt = eaElement.Modified, ChangedBy = eaElement.Author }; result.Properties.Add(statusProperty); } } else if (eaElement.Type == "Package") { result.Class = new Key("RC-Folder", "1"); } else if (eaElement.Type == "Object") { if (stereotype == "agent" || stereotype == "human agent") { result.Class = new Key("RC-Actor", "1"); } else if (stereotype == "storage") { result.Class = new Key("RC-State", "1"); } else if (stereotype == "heading") { result.Class = new Key("RC-Folder", "1"); } } else if (eaElement.Type == "Actor") { result.Class = new Key("RC-Actor", "1"); } else if (eaElement.Type == "Port") { if (stereotype == "channel") { //result.ResourceClass = "OT-Channel"; } } } return(result); }