C# Class SIL.FieldWorks.FDO.DomainServices.DataMigration.DataMigration7000019

Migrates from 7000018 to 7000019. JohnT: In this migration, at least, the model Writing System objects go away. Therefore it is important to preserve as much information as possible from them in LDML files which replace them. If there is already a relevant LDML in the folder we leave it alone. Otherwise if there is an appropriate one in the set we shipped with FieldWorks, we copy the relevant information from that. Otherwise we make one the best we can from the old writing system FDO object. This all gets more difficult as FieldWorks moves further away from version 7000019. The first version of this migration made the new LDML by creating an actual PalasoWritingSystem object, initializing it with the relevant data, and letting it save itself. This stopped working in July 2011, when WritingSystemDefn got more picky about what IDs it would accept. We could no longer use it for a data migration which does not include fixing the IDs. So far, we can still extract the information we want from the current LDML files in the release. This too may change.
Inheritance: IDataMigration
Afficher le fichier Open project: sillsdev/FieldWorks

Méthodes publiques

Méthode Description
PerformMigration ( IDomainObjectDTORepository domainObjectDtoRepository ) : void

Perform one increment migration step.

The method must add/remove/update the DTOs to the repository, as it adds/removes objects as part of it work. Implementors of this interface should ensure the Repository's starting model version number is correct for the step. Implementors must also increment the Repository's model version number at the end of its migration work. The method also should normally modify the xml string(s) of relevant DTOs, since that string will be used by the main data migration calling client (ie. BEP).

Private Methods

Méthode Description
ConvertAllIcuLocalesToLangTags ( IDomainObjectDTORepository domainObjectDtoRepository, string className, HashSet referencedWsIds ) : void
ConvertAllRefsToStrings ( IDomainObjectDTORepository domainObjectDtoRepository, string className, Dictionary guidToWsInfo, HashSet referencedWsIds ) : void
ConvertRefToString ( System.Xml.Linq.XElement refElem, Dictionary guidToWsInfo, HashSet referencedWsIds ) : bool
FillWritingSystemFromFDO ( IDomainObjectDTORepository domainObjectDtoRepository, System.Xml.Linq.XElement wsElem, Version19WritingSystemDefn ws ) : void
GetMultiUnicode ( System.Xml.Linq.XElement elem, string propName ) : string
GetUnicode ( System.Xml.Linq.XElement elem, string propName ) : string
UpdateFontAttribute ( System.Xml.Linq.XElement elem ) : bool
UpdateStringsAndProps ( IDomainObjectDTORepository domainObjectDtoRepository, DomainObjectDTO dto, HashSet referencedWsIds ) : void
UpdateWsAttribute ( System.Xml.Linq.XElement elem, HashSet referencedWsIds ) : bool

Method Details

PerformMigration() public méthode

Perform one increment migration step.
The method must add/remove/update the DTOs to the repository, as it adds/removes objects as part of it work. Implementors of this interface should ensure the Repository's starting model version number is correct for the step. Implementors must also increment the Repository's model version number at the end of its migration work. The method also should normally modify the xml string(s) of relevant DTOs, since that string will be used by the main data migration calling client (ie. BEP).
public PerformMigration ( IDomainObjectDTORepository domainObjectDtoRepository ) : void
domainObjectDtoRepository IDomainObjectDTORepository Repository of all CmObject DTOs available for one migration step.
Résultat void