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); } }
public void Test_CreateUpdateDeleteSystemProfileImageFile() { IUserBasic userBasic = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager); SystemProfileImageManager manager = new SystemProfileImageManager(this.DataStore); SystemProfileImage record = Test_SystemProfileImages.CreateSystemProfileImage(this.DataStore, this.Application.ApplicationId, this.Random); SystemProfileImage recordToCompare; for (int i = 0; i < this.DefaultUpdateTestIterations; i++) { PopulateWithRandomValues(record, this.DummyDataManager, this.Random); recordToCompare = record; manager.Update(record); record = manager.GetSystemProfileImage(record.ImageId); string errors = string.Empty; // TODO (Roman): relax datetime comparisons Assert.IsTrue(DebugUtility.ArePropertyValuesEqual(record, recordToCompare, out errors), errors); Trace.WriteLine("Update test successfull."); } Delete(this.DataStore, record); }
internal static SystemProfileImage CreateSystemProfileImage(IDataStore dataStore, int applicationId, Random random) { SystemProfileImageManager manager = new SystemProfileImageManager(dataStore); SystemProfileImage file = new SystemProfileImage(applicationId); ASCIIEncoding encoding = new ASCIIEncoding(); string contentString = "Some String " + random.Next(1000000, 10000000); file.Height = random.Next(10, 1000); file.Width = random.Next(10, 1000); file.Content = encoding.GetBytes(contentString); file.ContentSize = file.Content.Length; file.ContentType = "TEXT " + random.Next(1000, 10000); file.FriendlyFileName = "Some Name " + random.Next(1000000, 10000000); file.IsTemporary = false; BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.Create(file); Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status); SystemProfileImage dsFile = manager.GetSystemProfileImage(file.ImageId); Assert.IsNotNull(dsFile); Assert.AreEqual(contentString, encoding.GetString(dsFile.Content)); return(dsFile); }
internal static void Delete(IDataStore dataStore, SystemProfileImage file) { SystemProfileImageManager manager = new SystemProfileImageManager(dataStore); BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.Delete(file); Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status); Assert.IsNull(manager.GetSystemProfileImage(file.ImageId)); Trace.WriteLine("Successfully deleted file " + file.FriendlyFileName ?? string.Empty); }
internal static void PopulateWithRandomValues(SystemProfileImage record, DummyDataManager dtm, Random random) { ASCIIEncoding encoding = new ASCIIEncoding(); string contentString = "Some String " + random.Next(1000000, 10000000); record.Height = random.Next(10, 1000); record.Width = random.Next(10, 1000); record.Content = encoding.GetBytes(contentString); record.ContentSize = record.Content.Length; record.ContentType = "TEXT " + random.Next(1000, 10000); record.FriendlyFileName = "Some Name " + random.Next(1000000, 10000000); }
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); }
public BusinessObjectActionReport <DataRepositoryActionStatus> Delete(SystemProfileImage systemProfileImage) { return(this._CMSFileManager.Delete(systemProfileImage.CMSFile)); }