public Library Load(string fileName) { XmlSerializer ser = new XmlSerializer(typeof (SokobanLibrary)); SokobanLibrary xmlLib = null; using (StreamReader reader = File.OpenText(fileName)) { xmlLib = (SokobanLibrary) ser.Deserialize(reader); } if (xmlLib == null) throw new ArgumentNullException("cannot load library"); ModelToXml converter = new ModelToXml(); converter.model = new Library(Guid.Empty); converter.model.Details = xmlLib.Details; converter.model.Rating = xmlLib.Rating; converter.model.LibraryID = xmlLib.LibraryID; converter.model.IdProvider = new IDProvider(xmlLib.MaxID); List<Category> categories = new List<SokobanLibraryCategory>(xmlLib.Categories).ConvertAll<Category>(converter.ConvertCategory); converter.model.CategoryTree = TreeAssembler.Create<Category>(categories, ModelToXml.GetID, ModelToXml.GetFK); converter.model.Puzzles = new List<SokobanLibraryPuzzle>(xmlLib.Puzzles).ConvertAll<Puzzle>(converter.ConvertPuzzle); // Keep track of where this came from converter.model.FileName = fileName; // Make sure order is unique converter.model.EnsureOrder(); return converter.model; }
public object Generate(ReportData data) { return(ModelToXml.Convert(data)); }