private void ProcessMigrations(IVersionMigrationHelper migrationHelper, string direction) { Version.TryParse(_options.RequestedApiVersion(migrationHelper.GetHttpContext()), out var requestedVersion); var currentVersion = Version.Parse(_options.CurrentApiVersion); if (requestedVersion == null || currentVersion.Equals(requestedVersion)) { return; } var migrations = GetMigrations(); if (direction == "up") { migrations = migrations.Reverse(); } foreach (var migration in migrations) { if (!ShouldApply(requestedVersion, migration.GetVersionTag(), direction)) { continue; } if (direction == "up") { migration.Up(migrationHelper); } else { migration.Down(migrationHelper); } } }
private static async Task InitializeRequestBody(HttpContext context, IVersionMigrationHelper migrationHelper) { var request = context.Request; var requestStream = request.Body; var content = await new StreamReader(requestStream).ReadToEndAsync(); migrationHelper.SetRequestBody(content); }
private static async Task <Stream> RewriteRequest(IVersionMigrationHelper migrationHelper) { var json = JsonConvert.SerializeObject(migrationHelper.GetRequestBody <object>()); var requestContent = new StringContent(json, Encoding.UTF8, "application/json"); var stream = await requestContent.ReadAsStreamAsync().ConfigureAwait(false); return(stream); }
public void Up(IVersionMigrationHelper migrationHelper) { if (ShouldApply(migrationHelper.GetHttpContext())) { var user = migrationHelper.GetRequestBody <dynamic>(); if (user.userId == null) { user.userId = user.id; } migrationHelper.SetRequestBody(user); } }
public void Down(IVersionMigrationHelper migrationHelper) { if (ShouldApply(migrationHelper.GetHttpContext())) { var user = migrationHelper.GetResponseBody <dynamic>(); var oldFormat = new { id = user.userId, user.email, user.name }; migrationHelper.SetResponseBody(oldFormat); } }
public void Up(IVersionMigrationHelper migrationHelper) { }
public void Down(IVersionMigrationHelper migrationHelper) { }