From 1a8219ca809e3b51b75e8048518ca9847618d0a7 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Mon, 4 Nov 2013 10:09:49 -0800 Subject: [PATCH] Shifting Media parts --- .../Orchard.MediaLibrary/Models/MediaPart.cs | 20 ++-- .../Upgrade/Controllers/InfosetController.cs | 93 ++++++++++++++----- .../Upgrade/Views/Infoset/Index.cshtml | 6 ++ 3 files changed, 88 insertions(+), 31 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Models/MediaPart.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Models/MediaPart.cs index 8800bdfbb..fddcb8ad1 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Models/MediaPart.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Models/MediaPart.cs @@ -21,32 +21,32 @@ namespace Orchard.MediaLibrary.Models { /// Gets or sets the mime type of the media. /// public string MimeType { - get { return Record.MimeType; } - set { Record.MimeType = value; } + get { return Retrieve(x => x.MimeType); } + set { Store(x => x.MimeType, value); } } /// /// Gets or sets the caption of the media. /// public string Caption { - get { return Record.Caption; } - set { Record.Caption = value; } + get { return Retrieve(x => x.Caption); } + set { Store(x => x.Caption, value); } } /// /// Gets or sets the alternate text of the media. /// public string AlternateText { - get { return Record.AlternateText; } - set { Record.AlternateText = value; } + get { return Retrieve(x => x.AlternateText); } + set { Store(x => x.AlternateText, value); } } /// /// Gets or sets the hierarchical location of the media. /// public string FolderPath { - get { return Record.FolderPath; } - set { Record.FolderPath = value; } + get { return Retrieve(x => x.FolderPath); } + set { Store(x => x.FolderPath, value); } } /// @@ -55,8 +55,8 @@ namespace Orchard.MediaLibrary.Models { /// with a local file. /// public string FileName { - get { return Record.FileName; } - set { Record.FileName = value; } + get { return Retrieve(x => x.FileName); } + set { Store(x => x.FileName, value); } } /// diff --git a/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs b/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs index 727769c31..9bbeee587 100644 --- a/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs +++ b/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs @@ -10,6 +10,7 @@ using Orchard.Core.Common.Models; using Orchard.Core.Settings.Models; using Orchard.Localization; using Orchard.Logging; +using Orchard.MediaLibrary.Models; using Orchard.Security; using Orchard.Settings; using Orchard.UI.Admin; @@ -47,7 +48,7 @@ namespace Upgrade.Controllers { var site = _orchardServices.WorkContext.CurrentSite.As(); - // SiteSettingsPartRecord + #region SiteSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Settings_SiteSettingsPartRecord"), (reader, connection) => { site.HomePage = (string)reader["HomePage"]; @@ -63,7 +64,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Settings_SiteSettingsPartRecord"), null); - // SiteSettings2PartRecord + #endregion + + #region SiteSettings2PartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Settings_SiteSettings2PartRecord"), (reader, connection) => { site.BaseUrl = (string)reader["BaseUrl"]; @@ -71,14 +74,18 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Settings_SiteSettings2PartRecord"), null); - // ThemeSiteSettingsPartRecord + #endregion + + #region ThemeSiteSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Themes_ThemeSiteSettingsPartRecord"), (reader, connection) => site.As().Store("ThemeSiteSettingsPart", "CurrentThemeName", (string)reader["CurrentThemeName"])); _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Themes_ThemeSiteSettingsPartRecord"), null); - // AkismetSettingsPartRecord + #endregion + + #region AkismetSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_AkismetSettingsPartRecord"), (reader, connection) => { site.As().Store("AkismetSettingsPart", "TrustAuthenticatedUsers", (bool)reader["TrustAuthenticatedUsers"]); @@ -87,7 +94,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_AkismetSettingsPartRecord"), null); - // ReCaptchaSettingsPartRecord + #endregion + + #region ReCaptchaSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_ReCaptchaSettingsPartRecord"), (reader, connection) => { site.As().Store("ReCaptchaSettingsPart", "PublicKey", reader["PublicKey"].ToString()); @@ -97,16 +106,20 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_ReCaptchaSettingsPartRecord"), null); - // TypePadSettingsPartRecord + #endregion + + #region TypePadSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_TypePadSettingsPartRecord"), (reader, connection) => { site.As().Store("TypePadSettingsPart", "ApiKey", reader["ApiKey"].ToString()); - site.As().Store("ReCaptchaSettingsPart", "TrustAuthenticatedUsers", (bool)reader["TrustAuthenticatedUsers"]); + site.As().Store("TypePadSettingsPart", "TrustAuthenticatedUsers", (bool)reader["TrustAuthenticatedUsers"]); }); _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_TypePadSettingsPartRecord"), null); - // CacheSettingsPartRecord + #endregion + + #region CacheSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_OutputCache_CacheSettingsPartRecord"), (reader, connection) => { site.As().Store("CacheSettingsPart", "DefaultCacheDuration", (int)reader["DefaultCacheDuration"]); @@ -119,16 +132,18 @@ namespace Upgrade.Controllers { }); _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_OutputCache_CacheSettingsPartRecord"), null); + #endregion - // CommentSettingsPartRecord - _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Comment_CommentSettingsPartRecord"), + #region CommentSettingsPartRecord + _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Comments_CommentSettingsPartRecord"), (reader, connection) => { site.As().Store("CommentSettingsPart", "ModerateComments", (bool)reader["ModerateComments"]); }); - _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Comment_CommentSettingsPartRecord"), null); + _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Comments_CommentSettingsPartRecord"), null); + #endregion - // MessageSettingsPartRecord + #region MessageSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Messaging_MessageSettingsPartRecord"), (reader, connection) => { site.As().Store("MessageSettingsPart", "DefaultChannelService", (bool)reader["DefaultChannelService"]); @@ -136,7 +151,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Messaging_MessageSettingsPartRecord"), null); - // SearchSettingsPartRecord + #endregion + + #region SearchSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Search_SearchSettingsPartRecord"), (reader, connection) => { site.As().Store("SearchSettingsPart", "SearchedFields", (string)reader["SearchedFields"]); @@ -146,7 +163,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Search_SearchSettingsPartRecord"), null); - // RegistrationSettingsPartRecord + #endregion + + #region RegistrationSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Users_RegistrationSettingsPartRecord"), (reader, connection) => { site.As().Store("RegistrationSettingsPart", "UsersCanRegister", (bool)reader["UsersCanRegister"]); @@ -162,7 +181,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Users_RegistrationSettingsPartRecord"), null); - // SmtpSettingsPartRecord + #endregion + + #region SmtpSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Email_SmtpSettingsPartRecord"), (reader, connection) => { site.As().Store("SmtpSettingsPart", "Address", (string)reader["Address"]); @@ -176,7 +197,9 @@ namespace Upgrade.Controllers { _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Email_SmtpSettingsPartRecord"), null); - // WarmupSettingsPartRecord + #endregion + + #region WarmupSettingsPartRecord _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Warmup_WarmupSettingsPartRecord"), (reader, connection) => { site.As().Store("WarmupSettingsPart", "Urls", (string)reader["Urls"]); @@ -186,7 +209,8 @@ namespace Upgrade.Controllers { }); _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Warmup_WarmupSettingsPartRecord"), null); - + #endregion + _orchardServices.Notifier.Information(T("Site Settings migrated successfully")); return View(); @@ -197,20 +221,47 @@ namespace Upgrade.Controllers { if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner)) throw new AuthenticationException(""); - var contentItems = _orchardServices.ContentManager + var parts = _orchardServices.ContentManager .Query() .Where(x => x.Id > id) .OrderBy(x => x.Id) .Slice(0, BATCH).ToList(); - foreach (var contentItem in contentItems) { - contentItem.Text = contentItem.Text; + var lastContentItemId = id; + + foreach (var part in parts) { + part.Text = part.Text; + lastContentItemId = part.Id; } - return new JsonResult { Data = contentItems.Last().Id }; + return new JsonResult { Data = lastContentItemId }; } + [HttpPost] + public JsonResult MigrateMedia(int id) { + if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner)) + throw new AuthenticationException(""); + var parts = _orchardServices.ContentManager + .Query() + .Where(x => x.Id > id) + .OrderBy(x => x.Id) + .Slice(0, BATCH).ToList(); + + var lastContentItemId = id; + + foreach (var part in parts) { + part.MimeType = part.MimeType; + part.Caption = part.Caption; + part.AlternateText = part.AlternateText; + part.FolderPath = part.FolderPath; + part.FileName = part.FileName; + lastContentItemId = part.Id; + } + + return new JsonResult { Data = lastContentItemId }; + } + [HttpPost] public JsonResult MigrateContentPermissionsPart(int id) { if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner)) diff --git a/src/Orchard.Web/Modules/Upgrade/Views/Infoset/Index.cshtml b/src/Orchard.Web/Modules/Upgrade/Views/Infoset/Index.cshtml index 80f3c6253..a492cb05d 100644 --- a/src/Orchard.Web/Modules/Upgrade/Views/Infoset/Index.cshtml +++ b/src/Orchard.Web/Modules/Upgrade/Views/Infoset/Index.cshtml @@ -21,6 +21,12 @@ +
+ @T("Migrating Media Parts:") + @T("This migration step will copy all Media Parts to Infosets.") + +
+
@T("Migrating Content Item Permissions Parts:") @T("This migration step will copy all Content Item Permissions parts to Infosets.")