예제 #1
0
        private void InitPartitions()
        {
            Template.Partitions.Clear();

            foreach (var item in lstPart.Items)
            {
                var part = new PartitionDefinition
                {
                    Name     = item.Cells[0].Value.ToStringSafely(),
                    FileName = item.Cells[1].Value.ToStringSafely(),
                    Output   = item.Cells[2].Value.ToStringSafely(),
                    Loop     = item.Cells[3].Value.ToStringSafely() == string.Empty ? PartitionLoop.None : (PartitionLoop)Enum.Parse(typeof(PartitionLoop), item.Cells[3].Value.ToStringSafely()),
                    Syntax   = item.Cells[4].Value.ToStringSafely()
                };

                if (string.IsNullOrEmpty(part.Name) ||
                    string.IsNullOrEmpty(part.FileName) ||
                    string.IsNullOrEmpty(part.Output))
                {
                    continue;
                }

                part.FilePath = Path.Combine(StaticUnity.TemplateProvider.WorkDir, Template.Id, part.FileName);

                Template.Partitions.Add(part);
            }
        }
예제 #2
0
        private GenerateResult ProcessPartitionCodeFile(PartitionDefinition part, TemplateHost host, object schema, object profile, TemplateOption option, string content)
        {
            if (host.Errors.HasErrors)
            {
                var sb = new StringBuilder();
                sb.AppendLine("生成 " + (schema ?? "全局") + " 的 " + part.Name + " 时出错。");
                foreach (CompilerError error in host.Errors)
                {
                    sb.AppendLine(error.ErrorText);
                }

                Console.WriteLine(sb.ToString());
                MessageBoxHelper.ShowError(sb.ToString());
                return(null);
            }
            else
            {
                var result = new GenerateResult(part, content);
                if (option.WriteToDisk && result.WriteToDisk)
                {
                    PartitionWriter.Write(result, schema, profile, option.OutputDirectory);
                }

                return(result);
            }
        }
예제 #3
0
        private GenerateResult ProcessPartitionCodeFile(PartitionDefinition part, object schema, object profile, TemplateOption option, string content)
        {
            var result = new GenerateResult(part, content);

            if (option.WriteToDisk && result.WriteToDisk)
            {
                PartitionWriter.Write(result, schema, profile, option.OutputDirectory);
            }

            return(result);
        }
		/// <summary>
		/// </summary>
		/// <param name="definition"></param>
		public PartitionDefinitionWriter(PartitionDefinition definition){
			Definition = definition;
			Parameters = definition;
		}
예제 #5
0
 public GenerateResult(PartitionDefinition part, string content)
 {
     Partition   = part;
     Content     = content;
     WriteToDisk = !string.IsNullOrEmpty(part.FilePath);
 }
예제 #6
0
 /// <summary>
 /// </summary>
 /// <param name="definition"></param>
 public PartitionDefinitionWriter(PartitionDefinition definition)
 {
     Definition = definition;
     Parameters = definition;
 }