コード例 #1
0
        public async Task OpenGraphItFile(InputFileChangeEventArgs e, bool overwrite)
        {
            Overwrite = overwrite;
            try
            {
                byte[]  temp;
                Options newOptions = new Options();
                using (var streamReader = new MemoryStream())
                {
                    await e.File.OpenReadStream().CopyToAsync(streamReader);

                    temp = streamReader.ToArray();
                }
                OpenPreference = false;
                string      graph   = DecodeAndInflate(temp);
                XmlDocument xmlData = new XmlDocument();
                xmlData.LoadXml(graph);
                if (Overwrite)
                {
                    Graph = new Graph();
                }
                Traverse(xmlData, NodeService.NextId(Graph.Nodes), EdgeService.NextId(Graph.Edges));
                await GraphChanged.InvokeAsync(Graph);

                if (Overwrite)
                {
                    await OptionsChanged.InvokeAsync(Options);
                }
            }
            catch (ObjectDisposedException)
            {
                ErrorOpening = true;
            }
        }