Esempio n. 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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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));
 }