using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace API.Data.ManualMigrations; /// /// Introduced in v0.7.5.6 and v0.7.6, Ratings > 0 need to have "HasRatingSet" /// /// Added in v0.7.5.6 // ReSharper disable once InconsistentNaming public static class MigrateExistingRatings { public static async Task Migrate(DataContext context, ILogger logger) { logger.LogCritical("Running MigrateExistingRatings migration - Please be patient, this may take some time. This is not an error"); foreach (var r in context.AppUserRating.Where(r => r.Rating > 0f)) { r.HasBeenRated = true; context.Entry(r).State = EntityState.Modified; } if (context.ChangeTracker.HasChanges()) { await context.SaveChangesAsync(); } logger.LogCritical("Running MigrateExistingRatings migration - Completed. This is not an error"); } }