public bool InstallSamplePackage(string packageFilePath) { if (!File.Exists(packageFilePath)) { return(false); // do nothing } //get temporary directory to extract the package var tempDirectory = _localFileProvider.GetTemporaryDirectory(); try { //first extract the zip _localFileProvider.ExtractArchive(packageFilePath, tempDirectory); //now copy the image files to the uploads directory var wwwroot = ServerHelper.MapPath("~/", true); var uploadsDirectory = _localFileProvider.CombinePaths(wwwroot, "content", "Uploads"); var sourceFilesDirectory = _localFileProvider.CombinePaths(tempDirectory, "images"); var files = _localFileProvider.GetFiles(sourceFilesDirectory); foreach (var file in files) { //copy the file var fileName = _localFileProvider.GetFileName(file); _localFileProvider.CopyFile(file, Path.Combine(uploadsDirectory, fileName)); } //sql path if any var sqlFile = _localFileProvider.CombinePaths(tempDirectory, "data.sql"); if (File.Exists(sqlFile)) { var sql = _localFileProvider.ReadAllText(sqlFile); //execute the query file using (EntitySet.Query(sql, null)) { } } //delete the temporary directory _localFileProvider.DeleteDirectory(tempDirectory, true); return(true); } catch (Exception ex) { _logger.Log <InstallationService>(LogLevel.Error, ex.Message, ex); return(false); } finally { _localFileProvider.DeleteDirectory(tempDirectory, true); } }
public ThemeInfo GetActiveTheme() { var defaultThemeDirectoryName = "Default"; if (!DatabaseManager.IsDatabaseInstalled()) { return(GetThemeInfo(new DirectoryInfo(defaultThemeDirectoryName))); } var generalSettings = DependencyResolver.Resolve <GeneralSettings>(); if (_cachedThemeInfo != null && _cachedThemeInfo.DirectoryName == generalSettings.ActiveTheme) { return(_cachedThemeInfo); } var themeDirectoryName = generalSettings.ActiveTheme; if (themeDirectoryName.IsNullEmptyOrWhiteSpace()) { themeDirectoryName = defaultThemeDirectoryName; } //does theme directory exist var themePath = GetThemePath(themeDirectoryName); if (!_localFileProvider.DirectoryExists(themePath)) { //reset theme path to default themePath = GetThemePath(defaultThemeDirectoryName); } _cachedThemeInfo = GetThemeInfo(new DirectoryInfo(themePath)); //load if there are any templates var templatesDirectory = _localFileProvider.CombinePaths(themePath, "Views", "Templates"); if (_localFileProvider.DirectoryExists(templatesDirectory)) { //get all the files var templateFiles = _localFileProvider.GetFiles(templatesDirectory, "*.html"); foreach (var templateFile in templateFiles) { var fileName = _localFileProvider.GetFileNameWithoutExtension(templateFile); _cachedThemeInfo.Templates.TryAdd(fileName, $"Templates/{fileName}"); } } return(_cachedThemeInfo); }
public string GetPictureUrl(Media picture, int width = 0, int height = 0, bool returnDefaultIfNotFound = false) { if (picture == null) { return(returnDefaultIfNotFound ? ApplicationEngine.MapUrl(ApplicationConfig.DefaultImagePath, true) : null); } var serveFileDirectory = ServerHelper.MapPath(ApplicationConfig.MediaServeDirectory, true); //abc var fileNameWithoutExtension = _localFileProvider.GetFileNameWithoutExtension(picture.SystemName); //.jpg var extension = _localFileProvider.GetExtension(picture.SystemName); //abc_150_150.jpg var fileName = string.Format(PictureFileNameFormat, fileNameWithoutExtension, width, height, extension); //c:\\www\\abc_150_150.jpg var fileNameWithDirectory = _localFileProvider.CombinePaths(serveFileDirectory, fileName); if (_localFileProvider.FileExists(fileNameWithDirectory)) { return(ApplicationEngine.MapUrl(fileNameWithDirectory)); // /abc_150_150.jpg } //we'll need to create a file //first resize the image from actual file var mediaFileDirectory = ServerHelper.MapPath(ApplicationConfig.MediaDirectory, true); var originalFile = _localFileProvider.CombinePaths(mediaFileDirectory, picture.SystemName); //does the original file exist? if (!_localFileProvider.FileExists(originalFile)) { return(returnDefaultIfNotFound ? ApplicationEngine.MapUrl(ApplicationConfig.DefaultImagePath, true) : null); } //read original file var originalFileBytes = _localFileProvider.ReadBytes(originalFile); //resize the image var resizedBytes = _imageProcessor.ResizeImage(originalFileBytes, width, height); //write this to disk var resizedFileName = SafeWriteBytesToFile(fileName, serveFileDirectory, resizedBytes); fileNameWithDirectory = _localFileProvider.CombinePaths(serveFileDirectory, resizedFileName); //now return return(ApplicationEngine.MapUrl(fileNameWithDirectory)); // /abc_150_150.jpg }
public string GetThemeViewPath(string viewName, bool ignoreAdminViews = false) { viewName = ValidateViewName(viewName); return(GetViewLocations(ignoreAdminViews) .Select(x => _localFileProvider.CombinePaths(x, viewName)) .FirstOrDefault(x => _localFileProvider.FileExists(x))); }