Fixing typo, module uninstallation and error message (also typo).

--HG--
branch : 1.x
This commit is contained in:
Andre Rodrigues
2011-01-07 08:30:29 -08:00
parent 4bb4889f99
commit 6e1f0122b8
4 changed files with 38 additions and 17 deletions

View File

@@ -39,11 +39,10 @@ namespace Orchard.Packaging.Commands {
}
// append "Orchard.[ExtensionType]" to prevent conflicts with other packages (e.g, TinyMce, jQuery, ...)
string extensionPrefix = DefaultExtensionTypes.IsTheme(packageData.ExtensionType) ?
PackagingSourceManager.ThemesPrefix :
PackagingSourceManager.ModulesPrefix;
var filename = string.Format("{0}{1}.{2}.nupkg", extensionPrefix, packageData.ExtensionName, packageData.ExtensionVersion);
var filename = string.Format("{0}{1}.{2}.nupkg",
PackagingSourceManager.GetExtensionPrefix(packageData.ExtensionType),
packageData.ExtensionName,
packageData.ExtensionVersion);
if ( !Directory.Exists(path) ) {
Directory.CreateDirectory(path);

View File

@@ -63,11 +63,7 @@ namespace Orchard.Packaging.Services {
}
private static void SetCoreProperties(CreateContext context, ExtensionDescriptor extensionDescriptor) {
string idPrefix = DefaultExtensionTypes.IsTheme(extensionDescriptor.ExtensionType) ?
PackagingSourceManager.ThemesPrefix :
PackagingSourceManager.ModulesPrefix;
context.Builder.Id = idPrefix + extensionDescriptor.Id;
context.Builder.Id = PackagingSourceManager.GetExtensionPrefix(extensionDescriptor.ExtensionType) + extensionDescriptor.Id;
context.Builder.Version = new Version(extensionDescriptor.Version);
context.Builder.Title = extensionDescriptor.Name ?? extensionDescriptor.Id;
context.Builder.Description = extensionDescriptor.Description;

View File

@@ -99,6 +99,8 @@ namespace Orchard.Packaging.Services {
}
public void Uninstall(string packageId, string applicationPath) {
bool removed = false;
// this logger is used to render NuGet's log on the notifier
var logger = new NugetLogger(_notifier);
@@ -133,24 +135,37 @@ namespace Orchard.Packaging.Services {
) {Logger = logger};
packageManager.UninstallPackage(packageId);
removed = true;
}
catch {
// Package doesnt exist anymore
}
}
// Make sure folder is deleted (themes scenario where there is no project)
string extensionPath = packageId.StartsWith(PackagingSourceManager.ThemesPrefix)
? "~/Themes/" + packageId.Substring(PackagingSourceManager.ThemesPrefix.Length)
: "~/Modules/" + packageId.Substring(PackagingSourceManager.ThemesPrefix.Length);
// If the package was not installed through nuget we still need to try to uninstall it by removing its directory
string extensionFullPath = HostingEnvironment.MapPath(extensionPath);
// Remove theme if found
string extensionFullPath = packageId.StartsWith(PackagingSourceManager.ThemesPrefix)
? HostingEnvironment.MapPath("~/Themes/" + packageId.Substring(PackagingSourceManager.ThemesPrefix.Length))
: HostingEnvironment.MapPath("~/Themes/" + packageId);
if (Directory.Exists(extensionFullPath)) {
Directory.Delete(extensionFullPath, true);
removed = true;
}
else {
throw new OrchardException(T("Package not found: ", packageId));
// Remove module if found
extensionFullPath = packageId.StartsWith(PackagingSourceManager.ModulesPrefix)
? HostingEnvironment.MapPath("~/Modules/" + packageId.Substring(PackagingSourceManager.ModulesPrefix.Length))
: HostingEnvironment.MapPath("~/Modules/" + packageId);
if (Directory.Exists(extensionFullPath)) {
Directory.Delete(extensionFullPath, true);
removed = true;
}
if (!removed) {
throw new OrchardException(T("Package not found: {0}", packageId));
}
}

View File

@@ -15,6 +15,17 @@ namespace Orchard.Packaging.Services {
public const string ThemesPrefix = "Orchard.Themes.";
public const string ModulesPrefix = "Orchard.Modules.";
public static string GetExtensionPrefix(string extensionType) {
switch (extensionType) {
case DefaultExtensionTypes.Theme:
return ThemesPrefix;
case DefaultExtensionTypes.Module:
return ModulesPrefix;
default:
throw new ArgumentException();
}
}
private readonly IRepository<PackagingSource> _packagingSourceRecordRepository;
public PackagingSourceManager(IRepository<PackagingSource> packagingSourceRecordRepository) {