public void SaveRevoked(RevokedApp revokedApp) { string inserRevokedAppBrief = @"insert into `RevokedAppBrief` ( `Id`, `DeveloperId`, `DeveloperName`, `DeveloperViewUrl`, `Price`, `Currency`, `Version`, `ReleaseDate`, `Name`, `Introduction`, `ReleaseNotes`, `PrimaryCategory`, `ViewUrl`, `IconUrl`, `FileSize`, `AverageUserRatingForCurrentVersion`, `UserRatingCountForCurrentVersion`, `SupportedDevices`, `Features`, `IsGameCenterEnabled`, `DeviceType`, `LastValidUpdateTime`, `LastValidUpdateType`, `LastValidUpdateOldValue`, `LastValidUpdateNewValue`, `LanguagePriority`, `RevokeTime` ) values ( ?Id, ?DeveloperId, ?DeveloperName, ?DeveloperViewUrl, ?Price, ?Currency, ?Version, ?ReleaseDate, ?Name, ?Introduction, ?ReleaseNotes, ?PrimaryCategory, ?ViewUrl, ?IconUrl, ?FileSize, ?AverageUserRatingForCurrentVersion, ?UserRatingCountForCurrentVersion, ?SupportedDevices, ?Features, ?IsGameCenterEnabled, ?DeviceType, ?LastValidUpdateTime, ?LastValidUpdateType, ?LastValidUpdateOldValue, ?LastValidUpdateNewValue, ?LanguagePriority, ?RevokeTime );"; MySqlCommand commandForRevokedAppBrief = connection.CreateCommand(); commandForRevokedAppBrief.CommandText = inserRevokedAppBrief; AddParametersForApp(revokedApp, commandForRevokedAppBrief); commandForRevokedAppBrief.Parameters.AddWithValue("?RevokeTime", revokedApp.RevokeTime); commandForRevokedAppBrief.ExecuteNonQuery(); string insertApp = @"insert into `RevokedApp` ( `Id`, `CensoredName`, `Description`, `LargeIconUrl`, `SellerName`, `SellerViewUrl`, `ReleaseNotes`, `ContentAdvisoryRating`, `ContentRating`, `AverageUserRating`, `UserRatingCount`, `Languages`, `Categories`, `ScreenshotUrls`, `IPadScreenshotUrls` ) values ( ?Id, ?CensoredName, ?Description, ?LargeIconUrl, ?SellerName, ?SellerViewUrl, ?ReleaseNotes, ?ContentAdvisoryRating, ?ContentRating, ?AverageUserRating, ?UserRatingCount, ?Languages, ?Categories, ?ScreenshotUrls, ?IPadScreenshotUrl );"; MySqlCommand commandForRevokedApp = connection.CreateCommand(); commandForRevokedApp.CommandText = insertApp; AddParametersForAppBrief(revokedApp, commandForRevokedApp); commandForRevokedApp.ExecuteNonQuery(); }
public void SaveRevoked(RevokedApp revokedApp) { revokedApps.Save(revokedApp); }
public static RevokedApp ToRevokedApp(this IDataRecord record) { App app = record.ToApp(); RevokedApp revoked = new RevokedApp(app); revoked.RevokeTime = record.GetDateTime("RevokeTime"); return revoked; }
private void RevokeApps(RepositoryEmitter repository) { Stopwatch watch = new Stopwatch(); watch.Start(); foreach (App app in revokedApps) { // 添加下架信息 AppUpdate update = new AppUpdate() { App = app.Id, Type = AppUpdateType.Revoke, OldValue = app.Brief.Version + ", " + app.Brief.PriceWithSymbol, Time = DateTime.Now }; repository.AppUpdate.Save(update); // 从在售应用中移除 repository.App.Delete(app.Id); // 添加到下架应用中 RevokedApp revoked = new RevokedApp(app); revoked.RevokeTime = DateTime.Now; repository.App.SaveRevoked(revoked); // 移除全文索引 indexer.DeleteApp(app); logger.Trace("Set app {0}-{1} to be revoked", app.Id, app.Brief.Name); } watch.Stop(); logger.Info("Revoked {0} apps using {1}ms", revokedApps.Count, watch.ElapsedMilliseconds); watch.Reset(); watch.Stop(); indexer.Flush(); watch.Stop(); logger.Info("Deleted index for {0} apps using {1}ms", revokedApps.Count, watch.ElapsedMilliseconds); }