protected override void Add1ToNRelation(IRelationAdditionOptions options) { // From string fromImportStatementPath = $"src/app/model/{StringConverter.PascalToKebabCase(options.DomainTo)}" + $"/{StringConverter.PascalToKebabCase(options.EntityNamePluralTo)}" + $"/dtos/i-{StringConverter.PascalToKebabCase(options.EntityNameTo)}"; IRelationSideAdditionOptions fromOptions = RelationAdditionOptions.GetPropertyForFrom(options, $"I{options.EntityNameTo}[]"); this.frontendDtoRelationAddition.AddPropertyToDTO(fromOptions, ModelProjectGeneration.DomainFolder, FileName, $"{options.EntityNameTo}, I{options.EntityNameTo}", fromImportStatementPath); frontendDtoPropertyFromMethodAddition.AddPropertyToDTO(options, ModelProjectGeneration.DomainFolder, FileName); // To string toImportStatementPath = $"src/app/model/{StringConverter.PascalToKebabCase(options.DomainFrom)}" + $"/{StringConverter.PascalToKebabCase(options.EntityNamePluralFrom)}" + $"/dtos/i-{StringConverter.PascalToKebabCase(options.EntityNameFrom)}"; IRelationSideAdditionOptions toOptions = RelationAdditionOptions.GetPropertyForTo(options, $"I{options.EntityNameFrom}"); this.frontendDtoRelationAddition.AddPropertyToDTO(toOptions, ModelProjectGeneration.DomainFolder, FileName, $"{options.EntityNameFrom}, I{options.EntityNameFrom}", toImportStatementPath); frontendDtoPropertyToMethodAddition.AddPropertyToDTO(options, ModelProjectGeneration.DomainFolder, FileName); }
private string AddProperty(string file, IRelationSideAdditionOptions options, bool forInterface) { StringEditor stringEditor = new StringEditor(file); FindStartingLineForNewProperty(file, options, stringEditor); if (!stringEditor.GetLine().Contains("}")) { stringEditor.Prev(); } if (ContainsProperty(file)) { stringEditor.InsertNewLine(); } if (forInterface) { stringEditor.InsertLine($" {options.PropertyType} {options.PropertyName} {{ get; set; }}"); } else { stringEditor.InsertLine($" public {options.PropertyType} {options.PropertyName} {{ get; set; }}"); } return(stringEditor.GetText()); }
public void AddPropertyToDTO(IRelationSideAdditionOptions options, string domainFolder, string templateFileName) { string filePath = GetFilePath(options, domainFolder, templateFileName); string fileData = UpdateFileData(options, filePath); TypescriptClassWriter.Write(filePath, fileData); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { IRelationSideAdditionOptions guidPropertyOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); PropertyAdditionOptions propertyAdditionOptions = new PropertyAdditionOptions(guidPropertyOptions); this.propertyAddition.AddPropertyToDTO(propertyAdditionOptions, LogicTestsProjectGeneration.DomainFolder, FileName); this.logicDbDtoTestMethodsAddition.Add(propertyAdditionOptions, LogicTestsProjectGeneration.DomainFolder, FileName); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // To IRelationSideAdditionOptions optionsTo = RelationAdditionOptions .GetPropertyForTo(options, "Guid"); this.relationAddition.AddRelationToDTO(optionsTo, LogicProjectGeneration.DomainFolder, FileName); }
private string GetFilePath(IRelationSideAdditionOptions options, string domainFolder, string templateFileName) { string absolutePathForDTOs = this.pathService.GetAbsolutePathForDTOs(options, domainFolder); string fileName = templateFileName.Replace("Entity", options.EntityName); string filePath = Path.Combine(absolutePathForDTOs, fileName); return(filePath); }
private string GetFilePath(IRelationSideAdditionOptions options, string domainFolder, string templateFileName) { string absolutePathForDTOs = this.pathService.GetAbsolutePathForFrontendModel(options, domainFolder); string fileName = templateFileName.Replace("entity-kebab", StringConverter.PascalToKebabCase(options.EntityName)); string filePath = Path.Combine(absolutePathForDTOs, fileName); return(filePath); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { IRelationSideAdditionOptions relationAdditionOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); PropertyAdditionOptions propertyAdditionOptions = new PropertyAdditionOptions(relationAdditionOptions); this.apiPropertyAddition.AddPropertyToDTO(propertyAdditionOptions, ApiProjectGeneration.DomainFolder, FileName); }
private string UpdateFileData(IRelationSideAdditionOptions options, string filePath, bool forInterface) { string fileData = File.ReadAllText(filePath); fileData = AddUsingStatements(options, fileData); fileData = AddProperty(fileData, options, forInterface); return(fileData); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { IRelationSideAdditionOptions toOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); PropertyAdditionOptions propertyAdditionOptions = new PropertyAdditionOptions(toOptions); this.frontendDtoPropertyAddition.AddPropertyToDTO(propertyAdditionOptions, ModelProjectGeneration.DomainFolder, FileName); this.frontendDtoPropertyMethodAddition.AddPropertyToDTO(propertyAdditionOptions, "fromApiEntity", "apiEntity", ModelProjectGeneration.DomainFolder, FileName); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // To IRelationSideAdditionOptions relationSideAdditionOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); PropertyAdditionOptions propertyAdditionOptions = new PropertyAdditionOptions(relationSideAdditionOptions); this.dbTablePropertyAddition.AddProperty(propertyAdditionOptions, DBProjectGeneration.DomainFolder, FileName); this.dbTableRelationContraintAddition.AddContraint(options, DBProjectGeneration.DomainFolder, FileName); }
internal PropertyAdditionOptions(IRelationSideAdditionOptions options) : base(options) { this.PropertyName = options.PropertyName; this.IsOptional = options.IsOptional; switch (options.PropertyType) { case "Guid": this.PropertyType = PropertyTypes.Guid; break; }; }
public void AddRelationToDTO(IRelationSideAdditionOptions options, string domainFolder, string templateFileName, bool forInterface, string namespaceToAdd) { string filePath = GetFilePath(options, domainFolder, templateFileName); string fileData = UpdateFileData(options, filePath, forInterface); if (namespaceToAdd != null) { fileData = UsingStatements.Add(fileData, namespaceToAdd); } CsharpClassWriter.Write(filePath, fileData); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // To IRelationSideAdditionOptions guidPropertyOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); this.relationAddition.AddRelationToDTO(guidPropertyOptions, PersistenceTestsProjectGeneration.DomainFolder, FileName); PropertyAdditionOptions propertyAdditionOptions = new PropertyAdditionOptions(guidPropertyOptions); this.dbDtoTestMethodsAddition.Add(propertyAdditionOptions, PersistenceTestsProjectGeneration.DomainFolder, FileName); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // From IRelationSideAdditionOptions dtoFromOptions = RelationAdditionOptions.GetPropertyForFrom(options, $"IEnumerable<I{options.EntityNameTo}>"); this.relationAddition.AddRelationToDTO(dtoFromOptions, LogicTestsProjectGeneration.DomainFolder, FileName); this.logicDtoDetailTestFromAssertAddition.Add(options, LogicTestsProjectGeneration.DomainFolder, FileName); // To IRelationSideAdditionOptions dtoToOptions = RelationAdditionOptions.GetPropertyForTo(options, $"I{options.EntityNameFrom}"); this.relationAddition.AddRelationToDTO(dtoToOptions, LogicTestsProjectGeneration.DomainFolder, FileName); this.logicDtoDetailTestToAssertAddition.Add(options, LogicTestsProjectGeneration.DomainFolder, FileName); }
private string AddUsingStatements(IRelationSideAdditionOptions options, string fileData) { if (options.PropertyType == "Guid") { fileData = UsingStatements.Add(fileData, "System"); } if (options.PropertyType.Contains("Enumerable")) { fileData = UsingStatements.Add(fileData, "System.Collections.Generic"); } return(fileData); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // From IRelationSideAdditionOptions optionsFrom = RelationAdditionOptions.GetPropertyForFrom(options, $"IEnumerable<IDb{options.EntityNameTo}>"); this.relationAddition.AddRelationToDTO(optionsFrom, ContractPersistenceProjectGeneration.DomainFolder, FileName, true, $"{options.ProjectName}.Contract.Persistence.Modules.{options.DomainTo}.{options.EntityNamePluralTo}"); // To IRelationSideAdditionOptions optionsTo = RelationAdditionOptions.GetPropertyForTo(options, $"IDb{options.EntityNameFrom}"); this.relationAddition.AddRelationToDTO(optionsTo, ContractPersistenceProjectGeneration.DomainFolder, FileName, true, $"{options.ProjectName}.Contract.Persistence.Modules.{options.DomainFrom}.{options.EntityNamePluralFrom}"); }
private string UpdateFileData(IRelationSideAdditionOptions options, string filePath) { string fileData = File.ReadAllText(filePath); StringEditor stringEditor = new StringEditor(fileData); if (!stringEditor.GetLine().Contains("export interface")) { stringEditor.NextThatContains($"export interface"); } stringEditor.NextThatContains("}"); stringEditor.InsertLine($" {options.PropertyName.LowerFirstChar()}: {options.PropertyType};"); return(stringEditor.GetText()); }
private void FindStartingLineForNewProperty(string file, IRelationSideAdditionOptions options, StringEditor stringEditor) { bool hasConstructor = Regex.IsMatch(file, $"public .*{options.EntityName}.*\\("); bool hasProperty = file.Contains("{ get; set; }"); if (hasConstructor && hasProperty) { stringEditor.NextThatContains("{ get; set; }"); } else { stringEditor.NextThatContains("{") .NextThatContains("{"); } stringEditor.Next(line => !IsLineEmpty(line) && !ContainsProperty(line)); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // From IRelationSideAdditionOptions relationAdditionOptionsFrom = RelationAdditionOptions. GetPropertyForFrom(options, $"IEnumerable<I{options.EntityNameTo}>"); this.relationAddition.AddRelationToDTO(relationAdditionOptionsFrom, LogicProjectGeneration.DomainFolder, FileName, $"{options.ProjectName}.Contract.Logic.Modules.{options.DomainTo}.{options.EntityNamePluralTo}"); this.dtoDetailFromMethodsAddition.Add(options, LogicProjectGeneration.DomainFolder, FileName, $"{options.ProjectName}.Logic.Modules.{options.DomainTo}.{options.EntityNamePluralTo}"); // To IRelationSideAdditionOptions relationAdditionOptionsTo = RelationAdditionOptions. GetPropertyForTo(options, $"I{options.EntityNameFrom}"); this.relationAddition.AddRelationToDTO(relationAdditionOptionsTo, LogicProjectGeneration.DomainFolder, FileName, $"{options.ProjectName}.Contract.Logic.Modules.{options.DomainFrom}.{options.EntityNamePluralFrom}"); this.dtoDetailToMethodsAddition.Add(options, LogicProjectGeneration.DomainFolder, FileName); }
protected override void Add1ToNRelation(IRelationAdditionOptions options) { // From IRelationSideAdditionOptions optionsFrom = RelationAdditionOptions.GetPropertyForFrom(options, $"virtual ICollection<Ef{options.EntityNameTo}>"); this.relationAddition.AddRelationToDTO(optionsFrom, PersistenceProjectGeneration.DomainFolder, FileName); this.efDtoContructorHashSetAddition.Add(options, PersistenceProjectGeneration.DomainFolder, FileName, $"{options.ProjectName}.Persistence.Modules.{options.DomainTo}.{options.EntityNamePluralTo}"); // To IRelationSideAdditionOptions propertyAdditionOptions = RelationAdditionOptions.GetPropertyForTo(options, "Guid"); this.relationAddition.AddRelationToDTO(propertyAdditionOptions, PersistenceProjectGeneration.DomainFolder, FileName); IRelationSideAdditionOptions optionsTo2 = RelationAdditionOptions.GetPropertyForTo(options, $"virtual Ef{options.EntityNameFrom}"); this.relationAddition.AddRelationToDTO(optionsTo2, PersistenceProjectGeneration.DomainFolder, FileName, $"{options.ProjectName}.Persistence.Modules.{options.DomainFrom}.{options.EntityNamePluralFrom}"); }
public void AddRelationToDTO(IRelationSideAdditionOptions options, string domainFolder, string templateFileName, bool forInterface) { AddRelationToDTO(options, domainFolder, templateFileName, forInterface, null); }
public void AddRelationToDTO(IRelationSideAdditionOptions options, string domainFolder, string templateFileName, string namespaceToAdd) { AddRelationToDTO(options, domainFolder, templateFileName, false, namespaceToAdd); }