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); } }
/// <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); }
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); }