private bool TrySaveProfileImage(SystemProfileImage systemProfileImage, IApplicationThemeInfo applicationThemeInfo , string folder, Size size) { if (!Directory.Exists(applicationThemeInfo.Images.DefaultThemeImageFolderServerPath + folder)) { try { Directory.CreateDirectory(applicationThemeInfo.Images.DefaultThemeImageFolderServerPath + folder); } catch (Exception err) { _Log.Error("Unable to create directory " + applicationThemeInfo.Images.DefaultThemeImageFolderServerPath + folder + ". See inner exception for further details", err); return(false); } } using (MemoryStream ms = new MemoryStream(systemProfileImage.Content)) { ms.Position = 0; Image image = Image.FromStream(ms); if (image.Width != size.Width || image.Height != size.Height) { image = ImageHelper.Resize(image, size); } try { image.Save(applicationThemeInfo.Images.DefaultThemeImageFolderServerPath + folder + MagicStrings.FILE_PROFILEIMAGE_PREFIX + systemProfileImage.ImageId + ".png" , ImageFormat.Png); } catch (Exception err) { _Log.Error("Unable to save write profile image to disk. See inner exception for further details", err); return(false); } } return(true); }
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); } }