Ampere.BuildInstance.Start C# (CSharp) Метод

Start() публичный Метод

public Start ( string name ) : Task
name string
Результат Task
        public Task<BuildInstance> Start(string name)
        {
            Dependencies.Add(name);
            return context.Start(name);
        }

Usage Example

Пример #1
0
        public IEnumerable<object> Run(BuildInstance instance, IEnumerable<object> inputs)
        {
            // parse the material as XML
            var stream = inputs.First() as Stream;
            if (stream == null)
            {
                instance.Log(LogLevel.Error, "Inputs to TestParser must be a single Stream object.");
                return null;
            }

            var document = XDocument.Load(stream);
            var root = document.Element("Test");
            if (root == null)
            {
                instance.Log(LogLevel.Error, "Test file must start with a <Test> node.");
                return null;
            }

            string data = null;
            var dataElement = root.Element("Data");
            if (dataElement != null)
                data = dataElement.Value;

            // example of finding all "dependencies" of this asset and kicking off builds for them
            var dependencies = root.Element("Dependencies");
            if (dependencies != null)
            {
                foreach (var element in dependencies.Elements())
                    instance.Start((string)element.Attribute("Name"));
            }

            // example of a "temporary" build, one that you can embed the results into this asset
            var embed = (string)root.Attribute("Embed");
            string embeddedData = null;

            if (embed != null)
            {
                var tempBuild = instance.StartTemp(embed);
                if (tempBuild == null)  // some error ocurred while trying to build it
                    return null;

                var tempStream = tempBuild.Results.First() as Stream;
                embeddedData = string.Concat(ToByteArray(tempStream));
            }

            var output = new MemoryStream();
            var writer = new StreamWriter(output) { AutoFlush = true };
            writer.WriteLine("This is my asset data! Woohoo!");
            if (data != null)
                writer.WriteLine(data);
            if (embeddedData != null)
                writer.WriteLine("Some embedded data: " + embeddedData);

            return new[] { output };
        }