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);
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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)));
 }