Beispiel #1
0
        public async Task <IVertex> CreateVertexAsync(string vertexDefinition)
        {
            if (_dynamicLoadingEnabled)
            {
                using (Stream blobStream = await _blobStorage.GetReadStream(vertexDefinition + "/binaries"))
                {
                    try
                    {
                        AssemblyUtils.LoadAssembliesFromStream(blobStream);
                    }
                    catch (FileLoadException e)
                    {
                        Debug.WriteLine("Ignoring exception from assembly loading: " + e.Message);
                        Debug.WriteLine("If vertex creation fails, the caller will need to sideload the vertex.");
                    }
                }
            }
            else
            {
                Debug.WriteLine("Dynamic assembly loading is disabled. The caller will need to sideload the vertex.");
            }

            var row = await _vertexManager.VertexInfoProvider.GetRowForVertexDefinition(vertexDefinition);

            // CREATE THE VERTEX
            IVertex vertex = null;

            try
            {
                vertex = row.Value.GetVertexCreateAction()();
            }
            catch (Exception e)
            {
                Debug.WriteLine("Vertex creation failed: " + e.Message);
                Debug.WriteLine("The caller will need to sideload the vertex.");
            }
            return(vertex);
        }