public static string Render(DbContextTemplate configuration) { var template = new Template(TemplateContent.DbContext, StartDelimiter, EndDelimiter); template.Add(SharedTemplateKeys.GeneratedCodeDisclaimer, TemplateContent.GeneratedCodeDisclaimer); template.Add(SharedTemplateKeys.ObjectNamespace, configuration.Namespace); template.Add(SharedTemplateKeys.ObjectTypeName, configuration.TypeName); var dbSetBuilder = new StringBuilder(); foreach (var dbSet in configuration.DbSets) { dbSetBuilder.AppendLine($"{Tab}{Tab}public DbSet<{dbSet.Namespace}.{dbSet.TypeName}> {dbSet.Namespace}_{dbSet.TypeName} {{ get; set; }}"); } template.Add(SharedTemplateKeys.DbSets, dbSetBuilder.ToString()); var keysBuilder = new StringBuilder(); foreach (var dbSet in configuration.DbSets) { var text = dbSet.Keys.Count == 1 ? $"{Tab}{Tab}{Tab}modelBuilder.Entity<{dbSet.Namespace}.{dbSet.TypeName}>().HasKey(x => x.{dbSet.Keys.First().LegalCsharpName});" : $"{Tab}{Tab}{Tab}modelBuilder.Entity<{dbSet.Namespace}.{dbSet.TypeName}>().HasKey(x => new {{{string.Join(",", dbSet.Keys.Select(x => $"x.{x.LegalCsharpName}"))}}});"; keysBuilder.AppendLine(text); } template.Add(SharedTemplateKeys.ModelBuilderKeys, keysBuilder.ToString()); return(template.Render()); }
public virtual void TransactionInterceptorManager_ExecuteTransaction_InterceptorExecuted() { DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { LogService.Log += "Z"; }); }
public void TransactionInterceptorManager_ExecuteTransaction_InterceptorExecuted() { DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { DbContextTemplate.RegisterTransactionCallback(() => Logger.Log += "A"); Logger.Log += "B"; DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { DbContextTemplate.RegisterTransactionCallback(() => Logger.Log += "C"); Logger.Log += "D"; DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { DbContextTemplate.RegisterTransactionCallback(() => Logger.Log += "E"); Logger.Log += "F"; }); }); }); Assert.Equal("BDFACE", Logger.Log); }
public static void GenerateDbContext() { var tableList = generateDal.GetTableList(); DbContextTemplate dbContextTemplate = new DbContextTemplate(tableList); String contentDbContext = dbContextTemplate.TransformText(); System.IO.File.WriteAllText(Config.DataAccessPath + "\\" + Config.DBContextName, contentDbContext, Encoding.UTF8); }
public virtual void TransactionInterceptorManager_ExecuteTransactionWithException_InterceptorExecuted() { Assert.Throws <InvalidOperationException>(() => DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { LogService.Log += "Z"; throw new InvalidOperationException(); })); }
public void TransactionInterceptorManager_ExecuteTransaction_InterceptorExecuted() { DbContextTemplate.ExecuteTransaction <TestDbContext>(tx => { LogService.Log += "Z"; }); Assert.Equal("AZB", LogService.Log); }
public void ScanHangfireComponentsOnClient() { DbContextTemplate.ExecuteTransaction <TestDbContext, object>(ctx => { ThumbnailTaskClient.CreateThumbnail(); return(null); }); HfClientMock.Verify(x => x.Create( It.Is <Job>(job => job.Method.Name == "CreateThumbnail"), It.IsAny <EnqueuedState>())); }
private void GenerateDataContext(EntityContext entityContext) { var directory = this.Options.Data.Context.Directory; var file = entityContext.ContextClass + ".cs"; var path = Path.Combine(directory, file); this._logger.LogInformation(File.Exists(path) ? $"Updating data context class: {file}" : $"Creating data context class: {file}"); var template = new DbContextTemplate(entityContext, this.Options); template.WriteCode(path); }
public override void Transform() { CreateFolders(projectName); CopyFiles(SourceLibrary); // traverse every file in the API folder and replace namespace GenerateGeneralFiles(projectName); // create Global.asax var gat = new GlobalAsaxTemplate(projectName, Modules); TransformText(gat, $"{OutputFolder}\\{projectName}\\Global.asax.cs"); // create web api .csproj file var webApiCsProjTemplate = new WebApiCsProjTemplate(projectName, Modules); TransformText(webApiCsProjTemplate, $"{OutputFolder}\\{projectName}\\{projectName}.csproj"); // create business .csproj file var businessCsProjTemplate = new BusinessCsProjTemplate(projectName, Modules); TransformText(businessCsProjTemplate, $"{OutputFolder}\\{projectName}.Business\\{projectName}.Business.csproj"); // create contracts .csproj file var contractsCsProjTemplate = new ContractsCsProjTemplate(projectName, Modules); TransformText(contractsCsProjTemplate, $"{OutputFolder}\\{projectName}.Contracts\\{projectName}.Contracts.csproj"); // create data access .csproj file var dataAccessCsProjTemplate = new DataAccessCsProjTemplate(projectName); TransformText(dataAccessCsProjTemplate, $"{OutputFolder}\\{projectName}.DataAccess\\{projectName}.DataAccess.csproj"); // create DbContext file var dbContextTemplate = new DbContextTemplate(projectName, Modules); TransformText(dbContextTemplate, $"{OutputFolder}\\{projectName}.DataAccess\\{projectName}Context.cs"); CreateModules(); }
public DomainEventsDbContextDecorator(DbContextTemplate template) { _template = template; }
public IdentityDbContextDecorator(DbContextTemplate template, Engine.IApplication application) { _template = template; _application = application; }