public object Post(InsertCatalog request) { var entity = request.ConvertTo <Catalog>(); return(InTransaction(db => { Logic.Add(entity); return new CommonResponse(Logic.GetById(entity.Id)); })); }
internal static TrackingTable GenerateNewTrackingTable(string schema, string tableName, List <SchemaDataSet.ColumnsRow> targetTableColumns, AuditUpdateParameters updateParameters, StringBuilder sqlBuilder, Action <string, float?> reportProgress) { int version; SchemaDataSet schemaDataSet = updateParameters.SchemaDataSet; if (schemaDataSet.SchemaTables.TableExists(updateParameters.AuditingSchema, "Catalog")) { EntityConnectionStringBuilder connectionStringBuilder = Generator.GetEntityConnectionStringBuilder(updateParameters); AuditFrameworkEntities context = new AuditFrameworkEntities(connectionStringBuilder.ToString()); var catalogQuery = from catalog in context.Catalogs where catalog.AuditedSchema.Equals(schema, StringComparison.OrdinalIgnoreCase) && catalog.AuditedTableName.Equals(tableName, StringComparison.OrdinalIgnoreCase) orderby catalog.Version descending select catalog; var latestCatalog = catalogQuery.FirstOrDefault(); if (null == latestCatalog) { version = 0; } else { version = latestCatalog.Version + 1; } } else { version = 0; } TrackingTable trackingTable = new TrackingTable(schema, tableName, version); string trackingTableName = trackingTable.ToString(); InsertCatalog insertCatalogTemplate = new InsertCatalog(schema, tableName, version, updateParameters.AuditingSchema, trackingTableName); string sql = insertCatalogTemplate.TransformText(); sqlBuilder.AppendLine(sql); CreateTrackingTable createTrackingTableTemplate = new CreateTrackingTable(schema, tableName, trackingTableName, targetTableColumns, updateParameters); sql = createTrackingTableTemplate.TransformText(); sqlBuilder.AppendLine(sql); return(trackingTable); }