Microsoft.Zing.Splicer.SetSourceStrings C# (CSharp) Method

SetSourceStrings() private method

private SetSourceStrings ( Compilation compilation ) : void
compilation Compilation
return void
        private void SetSourceStrings(Compilation compilation)
        {
            Field sourceField = (Field)Templates.GetMemberByName(appClass.Members, "sources");
            Field filesField = (Field)Templates.GetMemberByName(appClass.Members, "sourceFiles");

            Debug.Assert(sourceField.Initializer is ConstructArray);
            ExpressionList sourceList = ((ConstructArray)sourceField.Initializer).Initializers;

            Debug.Assert(filesField.Initializer is ConstructArray);
            ExpressionList filesList = ((ConstructArray)filesField.Initializer).Initializers;

            string source = string.Empty;
            string file = string.Empty;

            for (int i = 0, n = compilation.CompilationUnits.Count; i < n; i++)
            {
                CompilationUnit cu = compilation.CompilationUnits[i];

                if (((Namespace)cu.Nodes[0]).Types.Count > 0)
                {
                    if (((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document != null)
                    {
                        this.sourceDocuments.Add(((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document, i);
                        DocumentText sourceText = ((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document.Text;
                        source = sourceText.Substring(0, sourceText.Length);
                        file = ((Namespace)cu.Nodes[0]).Types[0].SourceContext.Document.Name;
                        sourceList.Add(new Literal(source, SystemTypes.String));
                        filesList.Add(new Literal(file, SystemTypes.String));
                    }
                }
            }
        }