public OutputModelBase(string type, INamespace ns, IDesignModel designModel = null, IProjectFile file = null, OutputModelMergeMode mergeMode = OutputModelMergeMode.Skip) { Type = type; Namespace = ns; DesignModel = designModel; File = file; OutputConfiguration = new OutputConfiguration.OutputConfiguration(Namespace?.OutputConfiguration); MergeMode = mergeMode; }
public void SetOutputFile(IOutputConfiguration outputConfiguration, IClassNamingConvention namingConvention, string fileExtension, OutputModelMergeMode mergeMode = OutputModelMergeMode.Skip) { CheckOutputModel(); var outputFolder = outputConfiguration.GetOutputFolder(_outputModel.Type); var outputFile = namingConvention.GetOutputFolderPath(_outputModel.Namespace) + "/" + _outputModel.ClassName + fileExtension; _outputModel.File = outputFolder.GetFile(outputFile); _outputModel.MergeMode = mergeMode; }
/// <summary> /// Return the FileMerger to use based on the merge mode /// </summary> /// <param name="outputModelMergeMode"></param> /// <returns></returns> /// <exception cref="ArgumentOutOfRangeException"></exception> public static IFileMerger GetForMode(OutputModelMergeMode outputModelMergeMode) { switch (outputModelMergeMode) { case OutputModelMergeMode.Replace: return(new ReplaceFileMerger()); case OutputModelMergeMode.Skip: return(new SkipFileMerger()); case OutputModelMergeMode.MergeUpdateRegions: throw new NotImplementedException($"File merger for mode {OutputModelMergeMode.MergeUpdateRegions} is not yet implemented"); case OutputModelMergeMode.MergePreserveRegions: throw new NotImplementedException($"File merger for mode {OutputModelMergeMode.MergePreserveRegions} is not yet implemented"); default: throw new ArgumentOutOfRangeException(nameof(outputModelMergeMode), outputModelMergeMode, null); } }