Пример #1
0
        public async Task <ActionResult> CleanDatabase()
        {
            var authRequestHeader = Request.Headers["AuthKey"];

            if (!string.IsNullOrEmpty(authRequestHeader) && ConfigurationManager.AppSettings["AuthKey"] == authRequestHeader)
            {
                // Cleanup up database
                await DocumentDBRepository.CleanUpAsync();

                // Cleanup TableStorage
                var storageAccountConnectionString = ConfigurationManager.AppSettings["AzureWebJobsStorage"];
                var storageAccount = CloudStorageAccount.Parse(storageAccountConnectionString);
                var tableClient    = storageAccount.CreateCloudTableClient();
                var table          = tableClient.GetTableReference("botdata");

                await table.DeleteIfExistsAsync();

                // Recreate DB Collection
                await DocumentDBRepository.InitializeAsync();

                await SafeCreateIfNotExists(table);

                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.OK));
            }
            else
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden, "Auth key does not match."));
            }
        }
Пример #2
0
        public async Task <ActionResult> CleanDatabase()
        {
            var authRequestHeader = Request.Headers["AuthKey"];

            if (!string.IsNullOrEmpty(authRequestHeader) && ConfigurationManager.AppSettings["AuthKey"] == authRequestHeader)
            {
                // Clean up Schedules
                await AnnouncementScheduler.CleanUpOldSchedules();

                // Cleanup up database
                await DocumentDBRepository.CleanUpAsync();

                // Cleanup cached.
                Cache.Clear();
                // Delete profile photos
                var baseDirectory = System.Web.Hosting.HostingEnvironment.MapPath($"~/ProfilePhotos/");
                if (System.IO.Directory.Exists(baseDirectory))
                {
                    // Delete directory and then create it.
                    System.IO.Directory.Delete(baseDirectory, true);
                    System.IO.Directory.CreateDirectory(baseDirectory);
                }

                // Cleanup TableStorage
                var storageAccountConnectionString = ConfigurationManager.AppSettings["AzureWebJobsStorage"];
                var storageAccount = CloudStorageAccount.Parse(storageAccountConnectionString);
                var tableClient    = storageAccount.CreateCloudTableClient();
                var table          = tableClient.GetTableReference("botdata");
                await table.DeleteIfExistsAsync();

                // Recreate DB Collection
                await DocumentDBRepository.Initialize();
                await SafeCreateIfNotExists(table);

                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.OK));
            }
            else
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden, "Auth key does not match."));
            }
        }