namespace etoy { static class CommandGroupFactory { public static Command[] Create(Context context) { Command[] orderCommands; var type = (PipelineType)context.Option.PipelineType; switch (type) { case PipelineType.All: orderCommands = new Command[] { new CmdCheckEnvironment(), new CmdExcelToCsv(), new CmdReadKeyValueTable(), new CmdReadMetadataTable(), new CmdReadCommonTable(), new CmdKsonToJson(), new CmdCheckDataIntegrity(), new CmdGenerateVersionCode(), new CmdExportClientCode(), new CmdExportBytesDatabase(), //TODO 服务端 new CmdExportServerCode(), new CmdExportJsonDatabase(), }; break; case PipelineType.Client: orderCommands = new Command[] { new CmdCheckEnvironment(), new CmdExcelToCsv(), new CmdReadKeyValueTable(), new CmdReadMetadataTable(), new CmdReadCommonTable(), new CmdKsonToJson(), new CmdCheckDataIntegrity(), new CmdGenerateVersionCode(), new CmdExportClientCode(), new CmdExportBytesDatabase(), }; break; case PipelineType.Server: orderCommands = new Command[] { new CmdCheckEnvironment(), new CmdExcelToCsv(), new CmdReadKeyValueTable(), new CmdReadMetadataTable(), new CmdReadCommonTable(), new CmdKsonToJson(), new CmdCheckDataIntegrity(), new CmdGenerateVersionCode(), //TODO 服务端 new CmdExportServerCode(), new CmdExportJsonDatabase(), }; break; //case PipelineType.Excel2Csv: // orderCommands = new Command[] // { // new CmdExcelToCsv(), // new CmdReadKeyValueTable(), // new CmdReadMetadataTable(), // new CmdReadCommonTable(), // new CmdKsonToJson(), // new CmdCheckDataIntegrity() // }; // break; //case PipelineType.Csv2Final: // orderCommands = new Command[] // { // new CmdCheckEnvironment(), // new CmdReadKeyValueTable(), // new CmdReadMetadataTable(), // new CmdReadCommonTable(), // new CmdKsonToJson(), // new CmdCheckDataIntegrity(), // new CmdGenerateVersionCode(), // new CmdExportClientCode(), // new CmdExportBytesDatabase(), // }; // break; default: orderCommands = Array.Empty(); break; } foreach (var command in orderCommands) if (command is IContextSetter setter) setter.SetContext(context); return orderCommands; } } }