コード例 #1
0
ファイル: AppRepository.cs プロジェクト: kahinke/PingApp
        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();
        }
コード例 #2
0
ファイル: AppRepository.cs プロジェクト: kahinke/PingApp
 public void SaveRevoked(RevokedApp revokedApp) {
     revokedApps.Save(revokedApp);
 }
コード例 #3
0
ファイル: Map.cs プロジェクト: kahinke/PingApp
 public static RevokedApp ToRevokedApp(this IDataRecord record) {
     App app = record.ToApp();
     RevokedApp revoked = new RevokedApp(app);
     revoked.RevokeTime = record.GetDateTime("RevokeTime");
     return revoked;
 }
コード例 #4
0
ファイル: UpdateTask.cs プロジェクト: kahinke/PingApp
        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);
        }