Пример #1
0
        private bool TryCreateSystemProfileImage(IThemeFolderLookup themeFolderLookup, IApplicationThemeInfo applicationThemeInfo
                                                 , string imageFilePath, string fileName)
        {
            SystemProfileImage systemProfileImage = new SystemProfileImage(applicationThemeInfo.ApplicationId);

            Image image = Image.FromFile(imageFilePath);

            systemProfileImage.Content          = File.ReadAllBytes(imageFilePath);
            systemProfileImage.ContentSize      = systemProfileImage.Content.Length;
            systemProfileImage.ContentType      = ImageHelper.GetMimeType(fileName);
            systemProfileImage.FriendlyFileName = fileName;
            systemProfileImage.Height           = image.Height;
            systemProfileImage.Width            = image.Width;
            systemProfileImage.IsTemporary      = false;

            var report = InstanceContainer.SystemProfileImageManager.Create(systemProfileImage);

            switch (report.Status)
            {
            case DataRepositoryActionStatus.Success:
            case DataRepositoryActionStatus.UniqueKeyConstraint:
                return(true);

            default:
                _Log.ErrorFormat("Unble to create system profile image for application {0} (ID: {1}) from file {2}"
                                 , applicationThemeInfo.ApplicationName
                                 , applicationThemeInfo.ApplicationId
                                 , imageFilePath);
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// Formats a specified string replacing placeholders with content
        /// </summary>
        /// <param name="theme"></param>
        /// <param name="content"></param>
        /// <param name="formatMode"></param>
        /// <param name="staticContentLookup"></param>
        /// <param name="themeFolderLookup"></param>
        /// <returns></returns>
        public static string Format(
            string theme
            , string content
            , IStaticContentLookup staticContentLookup
            , IThemeFolderLookup themeFolderLookup
            , FormatMode formatMode)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return(content);
            }
            // TODO (Roman): implement URL.RESOLVE to be able to resolve url root folders, not only theme paths...
            string value;

            foreach (Match match in _ContentRegex.Matches(content))
            {
                value = staticContentLookup.GetContent(theme, match.Groups[1].Value);
                if ((formatMode & FormatMode.EscapeSingleQuotes) != 0)
                {
                    value = value.Replace("'", @"\'");
                }
                if ((formatMode & FormatMode.EscapeDoubleQuotes) != 0)
                {
                    value = value.Replace("\"", @"\""");
                }

                content = content.Replace(match.Value, value);
            }
            foreach (Match match in _UrlRegex.Matches(content))
            {
                value = themeFolderLookup.GetAbsoluteThemePath(theme, match.Groups[1].Value);
                if ((formatMode & FormatMode.EscapeSingleQuotes) != 0)
                {
                    value = value.Replace("'", @"\'");
                }
                if ((formatMode & FormatMode.EscapeDoubleQuotes) != 0)
                {
                    value = value.Replace("\"", @"\""");
                }

                content = content.Replace(match.Value, value);
            }

            return(content);
        }
Пример #3
0
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            // TODO (Roman): errorhandling, cleanup, upper/lower case stuff
            RequestContextData  requestContextData = InstanceContainer.RequestHelper.GetRequestContextData(requestContext.HttpContext.Request);
            IApplicationContext applicationContext = InstanceContainer.ApplicationContext;

            IThemeFolderLookup   themeFolderLookup   = applicationContext.GetThemeFolderLookup(requestContextData.ApplicationThemeInfo.ApplicationGroup);
            IStaticContentLookup staticContentLookup = applicationContext.GetStaticContentLookup(requestContextData.ApplicationThemeInfo.ApplicationGroup);

            string text = ContentFormatUtility.Format(
                requestContextData.Theme
                , staticContentLookup.GetContent(requestContextData.Theme, "js_globals")
                , staticContentLookup
                , themeFolderLookup
                , ContentFormatUtility.FormatMode.EscapeSingleQuotes);

            requestContext.HttpContext.Response.Clear();
            requestContext.HttpContext.Response.Write(text);
            requestContext.HttpContext.Response.End();

            return(null);
        }