Example #1
0
        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;
        }
Example #2
0
 public object Generate(ReportData data)
 {
     return(ModelToXml.Convert(data));
 }