public async Task<Info> GetInfo(IStorageFolder folder)
        {

            Info retval = null;
            bool found = true;
            StorageFile info = null;
            try
            {               
                info = await folder.GetFileAsync("Info.info");
            }
            catch(FileNotFoundException fnf)
            {
                found = false;
            }

            if (!found)
            {                             
                retval = Info.New(); 
                await SaveInfo(folder, retval);
            }
            else
            {
                using(var infoStream = await info.OpenReadAsync())
                using(Stream stream = infoStream.AsStream())
                {
                    XDocument document = XDocument.Load(stream);
                    retval = new Info(document);
                }       
            }

            return retval;
           
        }
        public async Task SaveInfo(IStorageFolder folder, Info info)
        { 
            Stream stream = new MemoryStream();
            info.Document.Save(stream);

            stream.Position = 0;

            await WriteFile("Info.info", folder, stream);
        }
示例#3
0
 public DatabaseInfo(IStorageFolder folder, Info info)
 {
     Folder = folder;
     Info = info;
 }